From: John M. <jm...@ma...> - 2005-04-08 16:15:46
|
Hi; Short Version: sbcl built from source (current as of yesterday) is missing "bit-bash-copy" needed to asdf-install CLX. Long Version: I am trying to create a saved core of a reasonably large system, buildable both under CMUCL and SBCL. However, if I try to save an image containing the system (including XP-TEST, XMLS, McCLIM, and my own stuff), the SBCL one dies in the act of saving the core. CMUCL does not. W.r.t. versions: I am running Linxu FC2 (up-to-date via yum). This happens under RPM versions of SBCL including: sbcl-0.8.9-0.fdr.2.rh90.i386.rpm sbcl-0.8.19-0.fdr.1.2.i386.rpm sbcl-0.8.20-1.i386.rpm Hoping against hope that this is due to some bug recently fixed, today, I built sbcl from source, and got the following error when trying to do an (asdf-install:install 'clx) as I have done numerous times before: --- cut here --- ; compiling (DEFUN PIXARRAY-ELEMENT-SIZE ...)compilation aborted because of fatal error: READ failure in COMPILE-FILE: READER-ERROR at 118336 (line 3548, column 25) on #<SB-SYS:FD-STREAM for "file \"/home/jm/.sbcl/site/clx_0.6.1/dependent.lisp\"" {9B387E9}>: Symbol "BIT-BASH-COPY" not found in the SB-KERNEL package. ; /home/jm/.sbcl/site/clx_0.6.1/dependent.fasl written ; compilation finished in 0:00:28 debugger invoked on a ASDF:COMPILE-WARNED in thread 21060: erred while invoking #<COMPILE-OP NIL {9876489}> on #<CLX-SOURCE-FILE "dependent" {91368D1}> --- cut here --- Sure enough, apropos of "bit-bash" turns up nothing. In both the RPM version of SBCL I have installed and CMUCL, it is, in fact, found. Clearly, I have built the thing wrong, although I thought I followed the remarkably simple directions. Any suggestions, aside from either "use CMUCL instead" or something involving acts that are physically impossible for me? (That was suppsed to be funny.) -jm -- ==== John Morrison ==== MAK Technologies Inc. ==== 10 Fawcett Street, Cambridge, MA 02138 ==== http://www.mak.com/ ==== vox:617-876-8085 x115 ==== fax:617-876-9208 ==== jm...@ma... |
From: Christophe R. <cs...@ca...> - 2005-04-08 16:37:08
|
John Morrison <jm...@ma...> writes: > Long Version: I am trying to create a saved core of a reasonably large > system, buildable both under CMUCL and SBCL. However, if I try to > save an image containing the system (including XP-TEST, XMLS, McCLIM, > and my own stuff), the SBCL one dies in the act of saving the core. > CMUCL does not. Heh, bad luck. This is in fact three separate issues, which I think have converged on you in an unfortunate way: the removal of bit-bash-copy, which is notionally an internal function, affects builders of clx releases using an unreleased version of sbcl, which by now contains two separate fixes for the problem causing save-lisp-and-die to die without saving. There are several workarounds. You can replace sb-kernel:bit-bash-copy in clx with sb-kernel:ub1-bash-copy; you could patch any of your sbcl rpms by altering (gensym "EVAL-TMP") to nil in src/code/eval.lisp; or you could use one of your existing cores, load the fasls that your previous compilation step has left lying around, and save a core from that. Or, you can wait until clx is likewise patched and released. Cheers, Christophe |
From: John M. <jm...@ma...> - 2005-04-08 16:51:09
|
On Friday 08 April 2005 12:32 pm, Christophe Rhodes wrote: > Heh, bad luck. This is in fact three separate issues, which I think and bad timing, apparently. > have converged on you in an unfortunate way: the removal of > bit-bash-copy, which is notionally an internal function, affects > builders of clx releases using an unreleased version of sbcl, which by > now contains two separate fixes for the problem causing > save-lisp-and-die to die without saving. > > There are several workarounds. You can replace > sb-kernel:bit-bash-copy in clx with sb-kernel:ub1-bash-copy; you could Are they identical in terms of args and return values, so this is almost idiotproof (me being the idiot in question)? > patch any of your sbcl rpms by altering (gensym "EVAL-TMP") to nil in > src/code/eval.lisp; or you could use one of your existing cores, load > the fasls that your previous compilation step has left lying around, > and save a core from that. Or, you can wait until clx is likewise > patched and released. Given that I cannot wait, it seems that the best thing is to patch the source to CLX (as in your first suggestion) in my .sbcl/site directory, yes? And if I do patch, is there anything I can do (no matter how trivial, like sending the single-line patch) to help expedite the fix of CLX? What would the correct (convention-wise) '#' directive be, as a function of SBCL implementation and release/version number? Thanks for the prompt, bulls-eye response. -jm > Christophe > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Sbcl-help mailing list > Sbc...@li... > https://lists.sourceforge.net/lists/listinfo/sbcl-help -- ==== John Morrison ==== MAK Technologies Inc. ==== 10 Fawcett Street, Cambridge, MA 02138 ==== http://www.mak.com/ ==== vox:617-876-8085 x115 ==== fax:617-876-9208 ==== jm...@ma... |
From: Dave R. <ld...@dr...> - 2005-04-08 17:10:34
|
On Fri, 2005-04-08 at 17:32 +0100, Christophe Rhodes wrote: > Heh, bad luck. This is in fact three separate issues, which I think > have converged on you in an unfortunate way: the removal of > bit-bash-copy, which is notionally an internal function, affects > builders of clx releases using an unreleased version of sbcl, which by > now contains two separate fixes for the problem causing > save-lisp-and-die to die without saving. This is a bit of a tangent, but would it make sense to add a public set of bit-bashing functions to the SBCL library somewhere, parameterized to deal with the machine word width. I ran into a need for some similar functions a couple months ago but didn't know what other functions existed and were stable enough to create a dependency on. In the end, I just wrote up some of my own macros. Rather than duplicate the code, however, I'd rather rely on some official routines/macros that are optimized to produce good code with the SBCL compiler. Is sb-kernel:ub1-bash-copy and the like what I'm looking for? -- Dave Roberts <ld...@dr...> |