freenode/#sicl - IRC Chatlog
Search
11:55:57
scymtym
yeah, i call those character syntax, s-expression syntax, abstract syntax. not sure if that's standard or even makes sense
11:57:32
scymtym
but i wouldn't want your cleavir work to get sidetracked because of the custom symbol issue
11:57:57
beach
So I am thinking that the user won't expect any significant feedback on code that contains undefined packages, or non-existing symbols.
12:01:01
scymtym
the problem i'm seeing is that typing (let ((my-variable-name involves the "symbols" m, my, my-, my-v, etc.
12:03:30
scymtym
ok, yeah, but i count that as custom symbol representation. maybe depending on the host the code is running in
12:04:35
scymtym
i think making the whole pipeline work with an abstraction of symbols is feasible. but maybe there's a better way
12:04:55
beach
Sure. And I don't know whether it would be possible to have package functions trampoline to environment functions.
12:05:21
beach
If that is possible, then just baking out the top-layer of the environment would undo the symbol interns.
12:06:24
scymtym
yes, eclector with my environments already behaves like that. it might just be a lot of work to make the rest of the pipeline work with this representation
12:07:52
beach
If I add that functionality (trampolines for package functions) to the first-class global environments protocol, and create a layered implementation of the protocol, it should just work.
12:08:54
scymtym
yes, that part is not too scary. i'm worried about places in the compiler that assume names are objects of type CL:SYMBOL
12:10:46
beach
The current top-level form will be process in an initially empty layer of the first-class global environments.
12:11:56
beach
The layer that corresponds to the top-level form you are editing would be destroyed, and the one that precedes that form is used with a fresh new layer on top.
12:12:48
beach
All that provided that I can make package functions trampoline to environment functions.
12:15:18
scymtym
i completely follow regarding adding and discarding the environment entry and so on
12:15:21
scymtym
my question is: is the mapping in the leaf environment (<current-package> "M") -> <custom-symbol "M"> or (<current-package> "M") -> <cl:symbol "M">? in the latter case, you still affect the host's package system (the change could be undone, but it is a global change, and finicky to undo)
12:15:53
scymtym
but for the rest of the compiler to only see CL:SYMBOLs it would have to be the latter
12:18:42
beach
When you do (FIND-SYMBOL string package), it trampolines to (env:find-symbol environment string package).
12:19:49
scymtym
yes, i understand (that's what i meant with the "mapping" above), but does that FIND-SYMBOL return a CL:SYMBOL?
12:24:07
scymtym
yes, as long as you can make all symbol- and package-related functions go through the fcge version or all code explicitly calls fcge versions of the symbol- and package-related functions