Re: Isolated: Sym gets 2 identities in a delivered app.
2010-09-01 11:46:49 GMT
On 29 Aug 2010, at 23:49, Matt Lamari wrote: > I'd like to understand if this is, by definition of how FASLs are > created and combined, expected behavior, or if something else is afoot. I think it's fairly clear that if you dump an uninterned symbol into a FASL file (or really anywhere that is outside the memory of the running Lisp) then when you load it back in you will get a new symbol, and further you'll get a new symbol each time you load it, even if you load the same FASL multiple times. That's pretty much a defining property of uninterned symbols in fact: the only way you can get at them is if you already have a handle onto them. Try something like the below: save it to a file, compile it, and then load it repeatedly and call (maybe-add) and (display-symbols) each time. You will see it stashing distinct gensyms with the same name in the table as it is loaded each time. --tim --(Continue reading)
cut-- ;;;; ;;; (in-package :cl-user) (defvar *symbols* (make-hash-table)) (defun display-symbols () (maphash #'(lambda (k v) (format t "~&~S -> ~S~%" k v))