Search
Wednesday, 1st of December 2021, 11:39:32 UTC
11:40:13
pjb
mgl: which means that there may be more literals that become EQ, not fewer.
11:41:15
pdietz
COMPILE-FILE may copy or coalesce objects, but COMPILE is not allowed to.
11:41:35
specbot
Literal Objects in Compiled Files: http://www.lispworks.com/reference/HyperSpec/Body/03_bd.htm
11:44:41
pdietz
If you want to avoid (or ensure) coalescence with COMPILE-FILE, you can use LOAD-TIME-VALUE to get the behavior you want.
11:47:04
pdietz
Also, remember "The consequences are undefined if literal objects (including quoted objects) are destructively modified."
11:47:08
specbot
http://www.lispworks.com/reference/HyperSpec/Body/s_quote.htm
11:52:48
mgl
Thanks, everyone. So the compiler is not required to maintain the identity of literals, but it must not make EQ literals not EQ, so the linked bug report is valid.
11:55:09
specbot
Additional Constraints on Externalizable Objects: http://www.lispworks.com/reference/HyperSpec/Body/03_bdd.htm
11:55:32
pdietz
Yes (although look at that typo in the first sentence).
11:57:35
mgl
"Objects containing circular references can be externalizable objects. The file compiler is required to preserve eqlness of substructures within a file. Preserving eqlness means that subobjects that are the same in the source code must be the same in the corresponding compiled code."
13:08:47
jackdaniel
the next issue will be #666, I'm anxious
13:09:04
jackdaniel
mgl: thanks for the report
13:09:56
jackdaniel
is it still the case on develop branch? or latest release? some changes to literals were actually introduced after 20.x.x
13:10:18
jackdaniel
also, is it different for bytecodes compiler?
13:25:26
mgl
jackdaniel: I haven't tested those.
13:26:42
jackdaniel
I'll see when I have access to a computer and add a comment on the tracker
19:06:42
amazigh
I started with a big idea, then wrote 600 lines of shell, now when I look at it; it looks is so small compared to my Big Plan.
Wednesday, 1st of December 2021, 23:39:32 UTC