|vagif||not manual run|
|hefner||I think you mean unattended.|
|Xach||vagif: i think screen can do that too, with command-line arguments. i don't use it that way, though.|
|bartel||with clisp can I compile into an executable or does it always run through the interpreter? </dumb>|
|kpreid||bartel: generating executables and compilation vs. interpretation are completelt independent.|
|kpreid||bartel: clisp can generate executables; it is also capable of (bytecode) compilation.|
bartel: sbcl and openmcl compile to native code.
|Modius||Is there already some sort of macro that does (let ((my-new-var nil)) (setf my-new-var ...))) <-- sounds silly but the setf result involves creating a lambda that refers to my-new-var|
Is this analogous to the y-combinator case?
|Xach||Modius: you lost me at "but"|
|lisppaste||tritchey_ pasted "this is how we run our lisp web server from rc.local" at http://paste.lisp.org/display/38986|
|tritchey_||Xach: would you do something similar with screen?|
|Modius||(let ((new nil)) (setf new (make-some-item (lambda () (sink-some-item new)))))|
|Riastradh||That is reasonable, Modius.|
Common Lisp has no direct analogue of Scheme's LETREC; LABELS serves only for function bindings, not variable bindings.
|Modius||I was wondering if there was some library goodie to handle the (let ((new nil)) (setf new. . . .)|
Makes sense, there's probably all manner of awful side-effects in CL of doing so. I was just wondering if there was something that macroed the let-nil-set, or if there was some cleaner way to achieve this (I can move the multiphase around but not eliminate it)
|hefner||you could avoid this by having whoever calls the lambda pass the object|
|Modius||But the object being created and stored in "new" is calling the lambda|
|hefner||objects don't make function calls|
this is some kind of callback associated with an object, right?
|Modius||To make "new", I call a function that takes a callback. That callback requires "new".|
|hefner||but, as you've learned, it is hard to close the callback over an object doesn't exist|
but easy to pass the object to the callback as a parameter later, when the object does exist, whenever the callback in invoked
tritchey_: i'm pretty manual.
|action||Xach should automate|
|Modius||It should work, it just looks dirty. This returns 69: (funcall (let ((blah nil)) (let ((r (lambda () blah))) (progn (setf blah 69) r))))|
|hefner||it would be the tiniest bit less digusting using let*|
I don't understand the intent, though.
|Modius||The example I just pasted was to show it could still capture correctly. I just don't like typing the nil, and asked originally if there was something that automated this out. Now - I'm guessing not.|
|hefner||I'm just advising you to avoid the situation, if you possibly can, by changing how the lambda is called so that it does not need to capture the reference.|
|eructate||you don't HAVE to type NIL|
|Riastradh||You can type (LET (BLAH) ...) to show that you mean to leave BLAH uninitialized (although it will have an initial value of NIL anyway).|
|eructate||you can also type (let ((blah))|
all means the same thing, initialize to nil
|rtoym||Yay! (complex double-double-float) now actually works on x86. Modulo some bug when something compiled with speed 3 and space 0 causes something bad to happen.|
|Modius||This was so that sub-elements can signal that they've changed and signal their "new" value up a chain. I think that this is the algorithm gods telling me this is messy, and that I should separate the signal from a "get".|