From: Faré <fa...@gm...> - 2009-07-18 14:43:54
|
My memory is playing me tricks. Wasn't :save-runtime-options meant to guarantee that you can invoke a binary and options such as --version of --core won't be eaten by the SBCL driver? Because if it ever worked that way, it doesn't anymore on SBCL 1.0.29.54.rc5. Or maybe I misinterpret what :save-runtime-options does and/or was meant to do. If so, is there a way to create an honest-to-god standalone executable with SBCL? make xcvb xcvb --version xcvb repl * (sb-ext:save-lisp-and-die "foo" :executable t :toplevel #'cl-launch::resume :save-runtime-options t) ./foo --version [ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] May your desire to be correct overcome your desire to have been correct (which you were not, anyway). |
From: Nikodemus S. <nik...@ra...> - 2009-07-18 16:48:51
|
2009/7/18 Faré <fa...@gm...>: > My memory is playing me tricks. Wasn't :save-runtime-options meant to > guarantee that you can invoke a binary and options such as --version > of --core won't be eaten by the SBCL driver? Because if it ever worked > that way, it doesn't anymore on SBCL 1.0.29.54.rc5. Or maybe I > misinterpret what :save-runtime-options does and/or was meant to do. > If so, is there a way to create an honest-to-god standalone executable > with SBCL? > > make xcvb > xcvb --version > xcvb repl > * (sb-ext:save-lisp-and-die "foo" :executable t :toplevel > #'cl-launch::resume :save-runtime-options t) > ./foo --version I'm not sure what what you mean -- do you have a test-case that doesn't depend on cl-launch and xcvb? A simple test with plain SBCL works fine: > sbcl --eval '(save-lisp-and-die "test" :executable t :save-runtime-options t)' This is SBCL 1.0.30.master.0-dirty, an implementation of ANSI Common Lisp. More information about SBCL is available at <http://www.sbcl.org/>. SBCL is free software, provided as is, with absolutely no warranty. It is mostly in the public domain; some portions are provided under BSD-style licenses. See the CREDITS and COPYING files in the distribution for more information. [undoing binding stack and other enclosing state... done] [saving current Lisp image into test: writing 5248 bytes from the read-only space at 0x20000000 writing 3088 bytes from the static space at 0x20100000 writing 41852928 bytes from the dynamic space at 0x1000000000 done] [nikodemus@delirium:~] > ./test [nikodemus@delirium:~] > ./test --version * *posix-argv* ("./test" "--version") The version of SBCL above has no related changes in comparison to .29.rc5. Cheers, -- Nikodemus |
From: Faré <fa...@gm...> - 2009-07-18 17:57:36
|
2009/7/18 Nikodemus Siivola <nik...@ra...>: > 2009/7/18 Faré <fa...@gm...>: >> My memory is playing me tricks. Wasn't :save-runtime-options meant to >> guarantee that you can invoke a binary and options such as --version >> of --core won't be eaten by the SBCL driver? Because if it ever worked >> that way, it doesn't anymore on SBCL 1.0.29.54.rc5. Or maybe I >> misinterpret what :save-runtime-options does and/or was meant to do. >> If so, is there a way to create an honest-to-god standalone executable >> with SBCL? >> >> make xcvb >> xcvb --version >> xcvb repl >> * (sb-ext:save-lisp-and-die "foo" :executable t :toplevel >> #'cl-launch::resume :save-runtime-options t) >> ./foo --version > > I'm not sure what what you mean -- do you have a test-case that > doesn't depend on cl-launch and xcvb? A simple test with plain SBCL > works fine: > >> sbcl --eval '(save-lisp-and-die "test" :executable t :save-runtime-options t)' > This is SBCL 1.0.30.master.0-dirty, an implementation of ANSI Common Lisp. > More information about SBCL is available at <http://www.sbcl.org/>. > > SBCL is free software, provided as is, with absolutely no warranty. > It is mostly in the public domain; some portions are provided under > BSD-style licenses. See the CREDITS and COPYING files in the > distribution for more information. > [undoing binding stack and other enclosing state... done] > [saving current Lisp image into test: > writing 5248 bytes from the read-only space at 0x20000000 > writing 3088 bytes from the static space at 0x20100000 > writing 41852928 bytes from the dynamic space at 0x1000000000 > done] > [nikodemus@delirium:~] >> ./test > [nikodemus@delirium:~] >> ./test --version > * *posix-argv* > > ("./test" "--version") > > The version of SBCL above has no related changes in comparison to .29.rc5. > > Cheers, > Indeed the error only happens when my SBCL was restarted from an image that had :executable t. # Works: sbcl --eval '(sb-ext:save-lisp-and-die "foo" :executable t :save-runtime-options t)' ./foo --version --eval '(sb-ext:quit)' # Doesn't work: sbcl --eval '(sb-ext:save-lisp-and-die "bar" :executable t)' ./bar --eval '(sb-ext:save-lisp-and-die "baz" :executable t :save-runtime-options t)' ./baz --version --eval '(sb-ext:quit)' SBCL 1.0.29.54.rc5.cfasl --#f The early bird gets the worm, but the second mouse gets the cheese. -- Stephen Pinker |
From: Faré <fa...@gm...> - 2009-08-11 12:38:31
|
2009/7/18 Faré <fa...@gm...>: > 2009/7/18 Nikodemus Siivola <nik...@ra...>: >> 2009/7/18 Faré <fa...@gm...>: >>> My memory is playing me tricks. Wasn't :save-runtime-options meant to >>> guarantee that you can invoke a binary and options such as --version >>> of --core won't be eaten by the SBCL driver? Because if it ever worked >>> that way, it doesn't anymore on SBCL 1.0.29.54.rc5. Or maybe I >>> misinterpret what :save-runtime-options does and/or was meant to do. >>> If so, is there a way to create an honest-to-god standalone executable >>> with SBCL? >>> >>> make xcvb >>> xcvb --version >>> xcvb repl >>> * (sb-ext:save-lisp-and-die "foo" :executable t :toplevel >>> #'cl-launch::resume :save-runtime-options t) >>> ./foo --version >> >> I'm not sure what what you mean -- do you have a test-case that >> doesn't depend on cl-launch and xcvb? A simple test with plain SBCL >> works fine: >> >>> sbcl --eval '(save-lisp-and-die "test" :executable t :save-runtime-options t)' >> This is SBCL 1.0.30.master.0-dirty, an implementation of ANSI Common Lisp. >> More information about SBCL is available at <http://www.sbcl.org/>. >> >> SBCL is free software, provided as is, with absolutely no warranty. >> It is mostly in the public domain; some portions are provided under >> BSD-style licenses. See the CREDITS and COPYING files in the >> distribution for more information. >> [undoing binding stack and other enclosing state... done] >> [saving current Lisp image into test: >> writing 5248 bytes from the read-only space at 0x20000000 >> writing 3088 bytes from the static space at 0x20100000 >> writing 41852928 bytes from the dynamic space at 0x1000000000 >> done] >> [nikodemus@delirium:~] >>> ./test >> [nikodemus@delirium:~] >>> ./test --version >> * *posix-argv* >> >> ("./test" "--version") >> >> The version of SBCL above has no related changes in comparison to .29.rc5. >> >> Cheers, >> > Indeed the error only happens when my SBCL was restarted from an image > that had :executable t. > > # Works: > sbcl --eval '(sb-ext:save-lisp-and-die "foo" :executable t > :save-runtime-options t)' > ./foo --version --eval '(sb-ext:quit)' > > # Doesn't work: > sbcl --eval '(sb-ext:save-lisp-and-die "bar" :executable t)' > ./bar --eval '(sb-ext:save-lisp-and-die "baz" :executable t > :save-runtime-options t)' > ./baz --version --eval '(sb-ext:quit)' > SBCL 1.0.29.54.rc5.cfasl > I filed the bug as https://bugs.launchpad.net/sbcl/+bug/411925 [ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ] The Keyboard is mightier than the Death Ray... |