"J. Kean Johnston" <jkj(a)sco.com> writes:
To summarise, the three choices are:
(A) Use DSO specific macros such as CDEFUN(), CDEFVAR_LISP() etc.
(B) Use the existing DEFUN() and DEFVAR_() macros and have documentation
handled during task code 3, or
Please don't use this solution. We all know it's already rather
difficult to keep the docs up-to-date, and I think it would be better to use
mechanisms as close to the existing ones as possible anyway.
(C) Keep everything exactly as it is and extend the DSO build
scripts to
snarf the documentation strings correctly and construct a .c file.
One last thing. Do we want shared objects loaded from the normal Lisp
load
path, or do we want to set up a new variable to contain the shared objects,
perhaps having the default be in the OS dependant directory?
IMHO, it's important to put them somewhere else. I hope I have
convinced the package-stuff guys to move the packages under an
architecture-independant directory, namely under share/. However, lib/ is the
place to put object code.
OTOH, a new question arises: it's likely that many of those
"dynamically loadable packages" will come not only with shared objects, and
but with accompanying elisp code too. In that case, should we split the
installation under different places, eg share/ and lib/. Personally, I think
we can afford replicating the elisp code installation in that case.
Comments, suggestions and questions welcome.
One other general remark. I like this functionality very much, and I
think that in terms of user-interface, this and the current package system
should stay really synchronized. In particular, this means envision the
problems of loading/unloading, concurrent version management, custom-based
installation etc etc.
Otherwise, all of this sounds really neat.
--
/ / _ _ Didier Verna
http://www.inf.enst.fr/~verna/
- / / - / / /_/ / E.N.S.T. INF C201.1 mailto:vernaļ¼ inf.enst.fr
/_/ / /_/ / /__ / 46 rue Barrault Tel. (33) 01 45 81 73 46
75634 Paris cedex 13 Fax. (33) 01 45 81 31 19