From: Pascal B. <pj...@in...> - 2006-01-26 13:48:42
|
Roman Belenov writes: > Sam Steingold <sd...@gn...> writes: > > > suppose you want your program to add its arguments. > > you do this: > > > > $ clisp -norc -x '(saveinitmem "adder" :executable t :norc t :quiet t > > :init-function (lambda () (print (reduce (function +) ext:*args* :key > > (function read-from-string))) (ext:exit)))' > > > > $ ./adder "" 1 2 3 4 > > What I want is to eliminate the need of "" (or --) as a first argument, so that > ./adder 1 2 3 4 > would do the job instead of treating 1 as name of Lisp file to load. As far as > I understand, it's not currently supported and requires additional flag in > the image and corresponding keyword argument in saveinitmem. The workaround I suggested doesn't work: [pjb@thalassa tmp]$ clisp -norc -x '(saveinitmem "adder" :executable t :norc t :quiet t :init-function (lambda () (push *load-pathname* ext:*args*) (print (reduce (function +) ext:*args* :key (function read-from-string))) (ext:exit)))' clisp -norc -x '(saveinitmem "adder" :executable t :norc t :quiet t :init-function (lambda () (push *load-pathname* ext:*args*) (print (reduce (function +) ext:*args* :key (function read-from-string))) (ext:exit)))' [1]> 2587744 ; 646396 [pjb@thalassa tmp]$ file adder file adder adder: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped [pjb@thalassa tmp]$ ./adder 1 2 3 ./adder 1 2 3 *** - LOAD: A file with name 1 does not exist [pjb@thalassa tmp]$ -- __Pascal Bourguignon__ http://www.informatimago.com/ You never feed me. Perhaps I'll sleep on your face. That will sure show you. |