From: William H. N. <wil...@ai...> - 2004-04-29 14:11:28
|
On Thu, Apr 29, 2004 at 01:16:13PM +0300, Nikodemus Siivola wrote: > 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". In case the point in doing this kind of thing is not obvious, consider running SBCL under Linux to build SBCL for OpenBSD. Various things are different between the SBCL which is performing the build and the SBCL which is being built. One example where the differences are conveniently listed side by side is the memory map, in src/compiler/x86/parms.lisp. During the build process on Linux we'd have sb-vm:dynamic-space-start = #x09000000 ; for host Linux sb!vm:dynamic-space-start = #x80000000 ; for target OpenBSD Then as Nikodemus notes, later once the host Linux is out of the picture, so the potential for conflict and confusion is gone, the packages are renamed so that in the running target OpenBSD we get sb-vm:dynamic-space-start = #x80000000. Things can be subject to this host-vs.-target distinction even if they don't have to do with physical differences between host and target. For example, if you change the definition of the PPRINT-LOGICAL-BLOCK macro or the layout of the PACKAGE structure, then use SBCL to rebuild SBCL, during the compilation the for-the-target macroexpansion of a PPRINT-LOGICAL-BLOCK form and the for-the-target address offsets for PACKAGE references will not be the same as those used in the host. -- William Harold Newman <wil...@ai...> Clan McCthulhu. In the end, there can be only one. -- Cael at Raytheon Systems Company PGP key fingerprint 85 CE 1C BA 79 8D 51 8C B9 25 FB EE E0 C3 E5 7C |
From: David S. <da...@da...> - 2004-04-29 16:01:55
|
William Harold Newman <wil...@ai...> writes: > Things can be subject to this host-vs.-target distinction even if they > don't have to do with physical differences between host and target. > For example, if you change the definition of the PPRINT-LOGICAL-BLOCK > macro or the layout of the PACKAGE structure, then use SBCL to rebuild > SBCL, during the compilation the for-the-target macroexpansion of a > PPRINT-LOGICAL-BLOCK form and the for-the-target address offsets for > PACKAGE references will not be the same as those used in the host. This all makes good sense. The only question that leaves me with then is where is the make-package to go with the in-package? I missed it with grep. As to the original subject, I was just thinking (due to a post from some moments ago) that the threads.impure.lisp test file has some good examples of using the sb-thread functions. Sometimes it takes me a while to realize the blindingly obvious. Whether that is tutorial worthy is another issue. After all, it's ment as a test harness, not an introduction to sb-thread. I just need to figure out why the test fails on my SMP box. -- I wouldn't mind the rat race so much if it wasn't for all the damn cats. |
From: William H. N. <wil...@ai...> - 2004-05-01 14:59:11
|
On Thu, Apr 29, 2004 at 12:01:51PM -0400, David Steuber wrote: > William Harold Newman <wil...@ai...> writes: > > > Things can be subject to this host-vs.-target distinction even if they > > don't have to do with physical differences between host and target. > > For example, if you change the definition of the PPRINT-LOGICAL-BLOCK > > macro or the layout of the PACKAGE structure, then use SBCL to rebuild > > SBCL, during the compilation the for-the-target macroexpansion of a > > PPRINT-LOGICAL-BLOCK form and the for-the-target address offsets for > > PACKAGE references will not be the same as those used in the host. > > This all makes good sense. The only question that leaves me with > then is where is the make-package to go with the in-package? I > missed it with grep. I'm not sure I understand the question; I find it confusing when you you write "the in-package" when there's no earlier reference to IN-PACKAGE in your text or the quoted text above. Perhaps you mean "OK, I see various forms like (IN-PACKAGE "SB!VM") in the sources, but I haven't been able to figure out where the corresponding packages like SB!VM are created." If that's what you mean, try looking at src/cold/set-up-cold-packages.lisp. -- William Harold Newman <wil...@ai...> Clan McCthulhu. In the end, there can be only one. -- Cael at Raytheon Systems Company PGP key fingerprint 85 CE 1C BA 79 8D 51 8C B9 25 FB EE E0 C3 E5 7C |