From: Nikodemus S. <tsi...@cc...> - 2004-04-29 10:16:21
|
On Wed, 28 Apr 2004, David Steuber wrote: > I've resorted to looking through the source code now. I'm already > confused by what I assume are basic things like (in-package > "SB!THREAD") instead of (in-package "SB-THREAD") and not being able > to find an associated (make-package "SB!THREAD"). The "!" vs. "-" is a bootstrapping mechnism to keep packages being built separate from host packages -- towards the end of a build the "SB!FOO" is renamed to "SB-FOO". Similar explanations exist for various other mysterious beasts in the sources: if something looks almost but not quite like the name of a standard operator, then more likely then not it's part of the bootstrapping machinery and unless you're wading in hip-deep hacking on sbcl you can pretend it's the standard operator. > Do macros even take documentation strings? The CLHS mentions > compiler-macro as a type, but I don't think that is the same thing. > > * (documentation 'sb-thread:with-mutex 'function) From the CLHS pages: http://www.lispworks.com/reference/HyperSpec/Body/m_defmac.htm#defmacro "defmacro name lambda-list [[declaration* | documentation]] form*" So, yes. Macros take docstrings. http://www.lispworks.com/reference/HyperSpec/Body/f_docume.htm "The nature of the documentation string returned depends on the doc-type, as follows:" ... "function If x is a function name, returns the documentation string of the function, macro, or special operator whose name is x." So, the documentation of a macro is fetched by (documentation macro-name 'function) > http://www.caddr.com/macho/archives/sbcl-devel/2004-4/3337.html I'm under the impression that 2.4 kernels in general have threading problems, and fixing them is a lower priority eg. threadsafetyfing sbcl internals, and that for serious sb-thread use 2.6 kernels are recommended, but dunno. Cheers, -- Nikodemus |