freenode/#lisp - IRC Chatlog
Search
5:39:22
LdBeth
However if you want to change the default option there’s :save-runtime-options for save-lisp-and-die
11:00:56
trafaret1
how can I build lips project? I just download project from github want ot build it
11:03:15
no-defun-allowed
probably: put it in ~/quicklisp/local-projects, evaluate (ql:register-local-projects), then (ql:quickload :project-name)
11:03:38
no-defun-allowed
check the README for any possible alterations to this procedure too (and also check if it's not in Quicklisp to start with)
12:07:53
beach
What the author is referring to is what I call "copy semantics" and "reference semantics", so as not to confuse things.
12:11:10
beach
Call by value just means that an expression is evaluated before it is passed as an argument to a function.
12:16:20
LdBeth
Integers are cheap and can be fit into registers, so we just copy them, objects are however large thus expensive to copy, so we use a reference that can be easily passed around
12:17:07
beach
I didn't say anything about implementation. Here, "semantics" means "the language works as if".
12:19:23
LdBeth
It’s kind like monad, people talks that because they generally don’t know what that is and always needs explanation
12:20:12
beach
Call-by-value is a well established term, and it just means that, before a function is applied to its arguments, those arguments are evaluated.
12:21:09
beach
This terminology was certainly well defined in 1960, because Algol 60 talks about it.
12:22:57
beach
People should avoid redefining well defined terminology. If for nothing else to facilitate communication.
12:43:05
ggole
There's a very common confusion between call-by-value and pass-by-value, which mean quite different things
13:05:11
beach
Define well defined protocols, and write a test suite for the implementation of each one.
13:06:53
beach
Here, a "protocol" is a collection of (usually generic) functions and types (usually standard classes).
13:07:25
LdBeth
Nah, I just recalled call-by-reference in FORTRAN is now more commonly referred as out parameter
13:08:23
beach
ebrasca: I used "protocol" to mean what it means in the CLOS literature. Not as a wire protocol.
13:12:02
minion
ebrasca: please look at AMOP: AMOP: The Art of the Metaobject Protocol, an essential book for understanding the implementation of CLOS and advanced OO. See <http://metamodular.com/CLOS-MOP>
13:14:37
beach
If you look at the appendix of metamodular.com/SICL/environments.pdf you have a small example of a protocol.
13:17:46
beach
ebrasca: If you don't understand the concept of an interface or a protocol, you may end up writing some very messy software. I suggest you try to read up.
13:20:39
Josh_2
perhaps I should use this weekend to get started, you have made me worried now beach ʕ·͡ᴥ·ʔ
13:25:01
beach
risto: There is no obvious correlation between something being good and it being popular.
13:26:07
risto
I wanted to convert the :use to instead explicitly import everything using :import-from
13:26:41
beach
risto: I strongly recommend you not import from other packages (other than the COMMON-LISP package), and instead use explicit package prefixes. Your code will be much clearer, and it becomes much easier to refactor later.
13:27:44
LdBeth
And beach usually go against :use any package other than COMMON-LISP for the same reason
13:33:12
LdBeth
ebrasca: it’s more interesting that you can plug your custom type system/object system into CLOS
13:35:20
beach
ebrasca: Here is a very simple protocol for you: STACK [class]. PUSH object stack [generic function], POP stack [generic function], EMPTY-P stack [generic-function], TOP stack [generic function].
13:35:43
beach
ebrasca: Together with documentation about the return values and side effects of the generic functions, and the initargs of the class.
13:37:30
beach
ebrasca: Once you have that, and an implementation of it, you can then write a test suite making sure that your implementation does what your documentation says it should do.
13:38:22
beach
ebrasca: Like, the documentation should say that EMPTY-P returning false is a precondition for using POP and TOP.
13:45:40
beach
ebrasca: I don't understand your question. The person who defined this protocol will describe in the documentation what was intended. I suggest you structure your code the same way so that you have fewer bugs, and the ones you have are easier to find.
13:47:23
beach
ebrasca: Then, the author will make a test suite that checks that a newly created stack is empty, that if 234 is pushed, then the result is not the empty stack, and that if then TOP is called, it returns 234. Etc, etc. etc.
13:49:28
beach
ebrasca: What code are you planning to write that prompted you to ask how to make fewer bugs and easier to find ones?
13:50:19
ebrasca
beach: There is someting not ok with tcp in mezzano. I don't know if it is my mistake or not.
13:52:02
beach
ebrasca: But I am obviously not expressing myself very well, so I think I will be quiet for the time being.
13:52:15
LdBeth
ebrasca: in this case I recommend you do a version control and make regression test on every changes you’ve made to the original copy of code
13:59:50
risto
I still can't get the sexp.lisp example working without :use :esrap, I'm not sure what I'm doing wrong:
14:03:40
beach
risto: For that error, you need to consult the documentation for ESRAP, or ask scymtym or someone else who knows about DEFRULE.
14:09:29
beach
risto: It looks like it takes &bounds to be just another symbol, so then the lambda list has 4 required parameters.
14:11:19
beach
risto: Again, I am guessing, but COMMON-LISP:SECOND has a single (required) parameter, so it probably expects your lambda list to also have a single required parameter, as the error message suggests.
16:04:58
puchacz
hi, what's the recommended mathematical library please? I need linear regression, linear regression through origin, exponential regression, fixed power law regression etc.
16:39:27
francogrex
Hi, does anyone know if there is an android abcl lisp project? I am trying to tinker with it, the dexed class files run on dalvikvm... but that's just it
16:54:39
saturn2
all i've heard of is https://common-lisp.net/project/ecl/posts/Lisp-ECL-and-QML-Qt5-on-Android.html and of course mocl
17:04:27
francogrex
well, i've managed to run it on the command line as dalvikvm -Xmx256m -cp abcl.dex:abcl org.armedbear.lisp.Main where abcl.dex contains the dexed files and the abcl folder the .lisp files.
17:05:19
francogrex
I am running the ansi tests on it, but so far I know that it doesn't load compiled files (although it does compile functions and files)
17:09:07
francogrex
pjb: are I can try to tweek it to compile to android. it seems to work fine as interpreter only
17:09:40
pjb
francogrex: you will have to write an abcl compiler backend to generate dex instead of jvm.