[Ecls-list] Special symbols that might benefit from implicit locking or thread-local bindings
Juan Jose Garcia-Ripoll
juanjose.garciaripoll at googlemail.com
Mon Aug 1 18:50:29 UTC 2011
On Mon, Aug 1, 2011 at 8:39 PM, Matthew Mondor <mm_lists at pulsar-zone.net>wrote:
> contrib/defsystem/defsystem.lisp:4019: (setf *package*
> package)))))
> contrib/defsystem/defsystem.lisp:4100: (setf *package* (find-package
> old-package)))
>
External package. Probably wrong: they should have established a binding for
*package* outside.
> src/bare.lsp.in:34:(setq *package* (find-package "SYSTEM"))
> src/compile.lsp.in:13: (setq *package* (find-package "SYSTEM"))
>
Only used when building ECL. No problem.
> src/c/cinit.d:144: ECL_SET(@'*package*', cl_core.system_package);
>
Boot time.
> src/c/main.d:699: ECL_SET(@'*package*', cl_core.lisp_package);
> src/c/main.d:708: ECL_SET(@'*package*', cl_core.user_package);
>
Again initialization. Safe uses
> src/c/package.d:339: ECL_SETQ(env, @'*package*',
> cl_core.user_package);
>
This only happens when *package* had a bogus value.
> src/c/package.d:841: @(return (ECL_SETQ(the_env, @'*package*', p)))
>
These is the routine that actually implement IN-PACKAGE (saves some bytes).
> src/lsp/defpackage.lsp:202: (setf (documentation *package* t)
> documentation))
>
Nothing related to the *package* variable itself.
So it seems we are pretty safe.
Juanjo
--
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20110801/5e438281/attachment.html>
More information about the ecl-devel
mailing list