[Asdf-devel] startup times and initialize-source-registry
Robert P. Goldman
rpgoldman at sift.info
Mon Aug 25 16:28:58 UTC 2014
Faré wrote:
> On Thu, Aug 21, 2014 at 2:10 PM, Robert P. Goldman <rpgoldman at sift.info> wrote:
>> Quick PS: what mechanism do you think should be used to tweak this
>> setting? Should presumably be something easy to specify (i.e., not a
>> config file), so that one can quickly start a lisp script, without
>> messing up one's conventional lisp development environment.
>>
>> Environment variable? Since there's no portable way to do this by
>> command-line argument....
>>
> I'd like to avoid unnecessary environment variables.
>
> Once again, where under a hierarchy the .asd files are is ultimately
> the knowledge and responsibility of the curators of the respective
> source trees, not of the end-user. Therefore, the absence of recursion
> should be a matter of said source trees including a file
> cl-source-registry.conf or .cl-source-registry.conf (visible having
> priority over hidden), that specifies how (not) to recurse in that
> tree. A simple script could be provided for system writers to create
> or update said file. A year after all relevant packages have migrated,
> we can make it the default and people can drop said configuration file
> when they follow the default behavior of not having meaningful .asd
> files except directly under the top directory. Furthermore, with a
> :file directive, these configuration files can directly list the .asd
> files without any further filesystem access.
I don't think that this new behavior should ever be the default.
Scripting is the edge-case for CL, not building of large, complex
systems. Further, for some CL implementations (like ABCL, as Mark
points out), scripting use is *never* a good option.
>From a cost tradeoff PoV, there are few scripting configurations now,
and fixing them all is easy and cheap, since they are for
early-adopters. Fixing all systems that contain nested system
definitions is neither easy nor cheap.
When one wants scripting, it should be easy to specify a "scripting
lisp." For now, I suggest that people who want to script with CL should
build themselves a pre-configured image for the purpose. That image
could have a feature or ASDF configuration variable set so to change the
default behavior to cut off recursive ASDF search. Configuration files
in source trees would complement this behavior.
That approach would serve the purpose of making this behavior easy to
specify at the command-line or mouse-click. Later, if CL-based
scripting catches on, lisp implementations could ship with versions that
are intended for rapid start-up and scripting, avoiding the need for
scripters to build their own images. Or separate scripting packages
could be provided.
More information about the asdf-devel
mailing list