[asdf-devel] Make the CL syntax predictable
avodonosov at yandex.ru
Thu Mar 27 17:30:43 UTC 2014
27.03.2014, 18:44, "Robert P. Goldman" <rpgoldman at sift.info>:
> While I am very grateful to cl-test-grid, we need to be conscious of its
If anything, I personally do not insist on any changes to be done in ASDF.
But if developers want to test whether the libraries built OK on my system
previously remain OK after some change, I don't mind to test.
Robert asked to postpone the discussion, so I didn't speak. But Robert,
how about we continue the discusstion, and you can ignore it? When you finish
current tasks and are ready to consider this you can ask for summary and then decide,
Maybe right solution will evolve by that time, so you won't need to spend your
energy on analysis.
I think maybe some useful services are possible in regard to isolation
from readtable and other global state modification.
But not sure what exactly.
BTW, I haven't experienced problems like that, so
it's not a critical feature for me.
If I am a library author I write code from assumption
that standard CL syntax is used when the library is built.
If my user changes readtable and breaks the library - it's his problem,
he created this problem and he is able to fix it.
If my dependency breaks readtable for me, it is an inconvenient dependency,
I will try to find a better one.
If my dependency breaks readtable for my user - that's unfortunate.
The user need somehow to restore standard environment after loading me.
(Or consider me a bad dependency and try to find another one).
The user may somehow instruct ASDF: "when the application is built,
use standard CL syntax and isolate the application from any readtable, etc,
modifications done in REPL or by the app dependencies."
Another possible request: "Isolate the application, and every app dependency
from each other" - this allows the application to use dependencies
otherwise interfering via readtable.
As a library author I would try to not alter global readtable from
my library, but provide user with a function to enable my reader macros.
If ASDF wants to prevent the undesirable interferences, maybe
it's enough/most important to develop and recommend an easy way to keep
your readtable modifications scoped to your system?
What would be the recommended way to do so? ASDF around-compile hooks?
In CL we don't want to totally isolate systems from each other's global
modifications - each system creates some packages, defines functions
used by other systems. So the systems interact via global modifications...
Another question is when global modifications are done because there
is no easy way to keep them local.
It's a complex area. I think it will help if we step back and
formulate clearly what problem we are solving.
More information about the asdf-devel