freenode/#lisp - IRC Chatlog
Search
5:22:35
jasom
emaczen: if I had to guess I would say that's a logical pathname host defined by your implementation and, as such, is non-portable
5:32:47
emaczen
how can I debug an executable program? It just isn't working like it does in the REPL for some reason...
5:41:43
emaczen
the first action that my toplevel-function does is loads some 20MB files into memory
6:02:53
emaczen
Alright, I have a feeling these two issues are connected. With SBCL I get the "No more immobile pages error" from LDB when I try to load this 20MB file into memory. With CCL everything works fine in the REPL, but when I build an executable and try to run my program, it never prints out my (format t ....) that occurs immediately after loading the file. It does print a message immediately before it begins loading this file -- any
6:48:55
emaczen
pillton: load time? I did set the toplevel-function, it is called but it seems to "hang" somewhere
6:52:40
pillton
"it never prints out my (format t ....) that occurs immediately after loading the file"
6:53:55
emaczen
pillton: to clarify, my toplevel-function is loading the 20MB file and after it finishes, it is supposed to evaluate a format form.
9:28:50
flip214
hmmm, PLACEs are not first-order types.... and can't be passed to eg. (MAPCAR #'PUSH ...) [yeah, that specifically wouldn't make much sense.]
9:41:40
beach
A place is more like a form. To obtain the contents of the place, the form is evaluated. To alter the contents of the place, the form must be translated into a different form which, when evaluated, alters the contents of the place.
9:45:54
beach
By default, that translation is done by turning it into a SETQ (if the form is a variable) or into `(FUNCALL #'(SETF ,(CAR FORM) ...)) if the form is a CONS.
9:47:41
beach
But, when the form is a CONS, it might have its own rule for generating a form for altering the place, so that for example (CAR X) turns into (PROGN (RPLACA X value) value).
9:56:27
flip214
still, a class PLACE wouldn't work... it'd need a SYMBOL-MACROLET to fetch the value, but how would I provide a SETF?
10:05:49
beach
It's a bit complicated because it has to avoid evaluating the same form multiple times.
13:34:52
|3b|
emaczen: can you load that 20MB file ok if you don't save an image? what do you load it into and is there any processing/translation during loading or just read-sequence?
16:04:09
emaczen
|3b|: with CCL it works fine from the REPL, with SBCL from the REPL it drops me into LDB and tells me "No more immobile pages"
16:09:06
|3b|
emaczen: hmm, might try newer sbcl if you don't mind compiling it from source, sounds like something that needs fixed if it isn't already
16:20:41
|3b|
can you try current code from git? (easier to try that first than to try to reduce a test case and then find out it is already fixed :)
16:37:04
|3b|
maybe a paste somewhere with code + actual and desired output? (assuming you didn't figure out out already)
17:06:34
|3b|
shrdlu68: https://github.com/quicklisp/quicklisp-projects/blob/master/projects/ironclad/source.txt
17:07:15
emaczen
|3b|: I just git cloned the latest SBCL and I get the same "No more immobile pages available" fatal error and got dropped into LDB
17:08:28
|3b|
emaczen: can you describe how you are loading it? (or point to code if it is publicly available somewhere)
17:12:08
emaczen
|3b|: I'm reading a 20MB plist into a CLOS object, from a file using something like: (with-open-file (...) (apply #'make-instance (read ...)))
17:15:11
shrdlu68
emaczen: It's nothing wrong with SBCL (except maybe for the non self-explanatory error message, means you've run out of heap space.
17:16:22
emaczen
shrdlu68: I passed 2 gigabytes to the dynamic-space-size argument to start SBCL -- would you recommend something different? It is working in CCL and I haven't had to pass any command line arguments
17:18:26
|3b|
ACTION usually uses something close to the amount of ram in the system, so it will run out before everything in system is swapped out
17:19:11
|3b|
ccl by default either allocates some huge amount of address space by default or doesn't need to reserve it to start with, don't remember which
17:19:53
|3b|
might also see how much ram CCL is using (RES or similar in top rather than VIRT) after you load the data