From: Sam S. <sd...@gn...> - 2005-07-25 21:30:51
|
> * Nelson H. F. Beebe: > > I have automated procedures (described in Chapter 8 Section 2 of our > recent book: see http://www.oreilly.com/catalog/shellsrptg/) that make > it easy to test software builds in a large number of environments, > currently over 100 on more than 20 flavors of Unix. My log > directories now contain more than 25,000 logs for hundreds of > packages. I was disappointed to find that this automation fails with > clisp, because it pauses with the request > > Configure findings: > FFI: yes > readline: yes > libsigsegv: yes > > To continue building CLISP, the following commands are recommended > (cf. unix/INSTALL step 4): > cd src > ./makemake --with-dynamic-ffi > Makefile > make config.lisp > emacs config.lisp > make > make check > > My site is large, with up to 15,000 user accounts and a broad range of > Unix systems. Automation of builds is essential for me. do ./configure --build build-dir --with-package=.... and all steps will be done automatically; clisp will be built in directory "build-dir" replace "--build" with "--install" to also install. > -rw-r--r-- 1 beebe wheel 900 2005-07-23 08:26 bind-eval.erg alas, known amd64-specific bug in non-top-level special bindings. this is not a regression, this behavior has been there forever. it has been fixed on all 32-bit platforms, but, apparently, not on amd64. > I then tried to start clisp manually, but it immediately fails: > > % clisp > i i i i i i i ooooo o ooooooo ooooo ooooo > I I I I I I I 8 8 8 8 8 o 8 8 > I \ `+' / I 8 8 8 8 8 8 > \ `-+-' / 8 8 8 ooooo 8oooo > `-__|__-' 8 8 8 8 8 > > | 8 o 8 8 o 8 8 > > ------+------ ooooo 8oooooo ooo8ooo ooooo 8 > > Copyright (c) Bruno Haible, Michael Stoll 1992, 1993 > Copyright (c) Bruno Haible, Marcus Daniels 1994-1997 > Copyright (c) Bruno Haible, Pierpaolo Bernardi, Sam Steingold 1998 > Copyright (c) Bruno Haible, Sam Steingold 1999-2000 > Copyright (c) Sam Steingold, Bruno Haible 2001-2005 > > > *** - invalid byte #x81 in CHARSET:ASCII conversion > The following restarts are available: > ABORT :R1 ABORT > Break 1 [2]> <http://clisp.cons.org/faq.html#enc-err>. you probably have non-ASCII symbols in pathnames. try "clisp -E foo" where foo is the encoding you use for pathnames. > A similar manual build on GNU/Linux on PowerPC (Yellow Dog Linux > release 2.3 (Dayton)) had no *.erg files created, although the tests > complained: > *** - LOAD: A file with name tests.lisp does not exist fixed in the CVS on 2005-07-22. > On GNU/Linux on IA-64 (Red Hat Linux Advanced Server release 2.1AS > (Derry)), the check immediately fails: > > % nice time make check > ./lisp.run -B . -N locale -Efile UTF-8 -Eterminal UTF-8 -norc -m 1400KW -x > "(and (load \"init.lisp\") (sys::%saveinitmem) (ext::exit)) (ext::exit t)" > Cannot map memory to address 0x4000000000000 . > errno = EINVAL: Invalid argument. > ./lisp.run: Not enough memory for Lisp. Bruno will address this. he added IA-64 support in 2.25 (2001-03-15). > On Sun Solaris 10 SPARC with gcc 3.3.6, the "make check" fails like > this: > > ;; Loaded file > /local/build/gcc/clisp-2.34/src/tests/compile-file-pathname.fas EQL-OK: T > (COMPILE-FILE-PATHNAME "foo" :OUTPUT-FILE (LOGICAL-PATHNAME "SYS:foo.fas")) > EQUAL-OK: #S(LOGICAL-PATHNAME :HOST "SYS" :DEVICE :UNSPECIFIC :DIRECTORY > (:ABSOLUTE) :NAME "FOO" :TYPE "FAS" :VERSION :NEWEST) > (TRANSLATE-LOGICAL-PATHNAME (LOGICAL-PATHNAME "SYS:FOO.LISP")) > Bus Error I do not have access to such a system. could you please build clisp with debug symbols: $ ./configure --build build-g $ cd build-g $ gdb lisp.run (gdb) boot (gdb) run [1]> (TRANSLATE-LOGICAL-PATHNAME (LOGICAL-PATHNAME "SYS:FOO.LISP")) and send here the stack trace? thanks! (I suggest using the CVS head) > However, my Fibonacci test passed, so I did an install anyway (this > build is on a test system, so no users are affected), but when I try > to run clisp, it fails immediately: > > % clisp > ... > > > *** - invalid byte #x81 in CHARSET:ASCII conversion > The following restarts are available: > ABORT :R1 ABORT see above. > On GNU/Linux IA-32, the "make check" run again ended with > *** - LOAD: A file with name tests.lisp does not exist see above. > *** - invalid byte sequence #xC6 #x72 in CHARSET:UTF-8 conversion see above. > If the clisp builds can be made smoother, I'm in a good position to > thoroughly test the procedures, since I can trivially do parallel > builds in 100+ different environments, and I'll be happy to contribute > in a small way to making clisp better. While I don't have the time to > dig into the code, I certainly can provide feedback, and even complete > build logs, of new releases of clisp. thanks. -- Sam Steingold (http://www.podval.org/~sds) running w2k <http://www.jihadwatch.org/> <http://www.memri.org/> <http://www.dhimmi.com/> <http://www.honestreporting.com> <http://www.mideasttruth.com/> Never let your schooling interfere with your education. |
From: Nelson H. F. B. <be...@ma...> - 2005-07-26 13:41:46
|
Sam Steingold <sd...@gn...> responds to my problem report for clisp-2.34 on GNU/Linux (Red Hat Enterprise Server 4) on AMD64: >> ... >> > I then tried to start clisp manually, but it immediately fails: >> > >> > % clisp >> ... >> > > *** - invalid byte #x81 in CHARSET:ASCII conversion >> > The following restarts are available: >> > ABORT :R1 ABORT >> > Break 1 [2]> >> >> <http://clisp.cons.org/faq.html#enc-err>. >> you probably have non-ASCII symbols in pathnames. >> try "clisp -E foo" >> where foo is the encoding you use for pathnames. >> ... I did a "strace -o foo -f clisp", and then looked at the system-call trace. None of the file that are opened have any non-ASCII symbols in their pathnames (such files would be rare to nonexistant anyway at my site). From the trace, it looks like /etc/inputrc was being processed at the point of error: 32444 stat("/etc/inputrc", {st_mode=S_IFREG|0644, st_size=758, ...}) = 0 32444 open("/etc/inputrc", O_RDONLY) = 5 32444 read(5, "# do not bell on tab-completion\n"..., 758) = 758 32444 close(5) = 0 It read the entire file with one read() call. There are no non-ASCII characters inside that file. I then tried alternate encodings: % clisp -E UTF-8 *** - invalid byte sequence #xC6 #x72 in CHARSET:UTF-8 conversion The following restarts are available: ABORT :R1 ABORT Break 1 [2]> % clisp -E ISO-8859-1 [1]> % clisp -E ISO8859-2 *** - invalid byte sequence #xC6 #x72 in CHARSET:UTF-8 conversion The following restarts are available: ABORT :R1 ABORT Break 1 [2]> Thus, a temporary workaround to the startup problem is to use -E ISO-8859-1. ------------------------------------------------------------------------------- - Nelson H. F. Beebe Tel: +1 801 581 5254 - - University of Utah FAX: +1 801 581 4148 - - Department of Mathematics, 110 LCB Internet e-mail: be...@ma... - - 155 S 1400 E RM 233 be...@ac... be...@co... - - Salt Lake City, UT 84112-0090, USA URL: http://www.math.utah.edu/~beebe - ------------------------------------------------------------------------------- |
From: Sam S. <sd...@gn...> - 2005-07-26 13:24:28
|
> * Nelson H. F. Beebe <orror@zngu.hgnu.rqh> [2005-07-26 06:48:33 -0600]: > > Sam Steingold <sd...@gn...> responds to my problem report for > clisp-2.34 on GNU/Linux (Red Hat Enterprise Server 4) on AMD64: > >>> ... >>> > I then tried to start clisp manually, but it immediately fails: >>> > >>> > % clisp >>> ... >>> > > *** - invalid byte #x81 in CHARSET:ASCII conversion >>> > The following restarts are available: >>> > ABORT :R1 ABORT >>> > Break 1 [2]> >>> >>> <http://clisp.cons.org/faq.html#enc-err>. >>> you probably have non-ASCII symbols in pathnames. >>> try "clisp -E foo" >>> where foo is the encoding you use for pathnames. >>> ... > > I did a "strace -o foo -f clisp", and then looked at the system-call > trace. None of the file that are opened have any non-ASCII symbols in > their pathnames (such files would be rare to nonexistant anyway at my > site). > >>From the trace, it looks like /etc/inputrc was being processed > at the point of error: > > 32444 stat("/etc/inputrc", {st_mode=S_IFREG|0644, st_size=758, ...}) = 0 > 32444 open("/etc/inputrc", O_RDONLY) = 5 > 32444 read(5, "# do not bell on tab-completion\n"..., 758) = 758 > 32444 close(5) = 0 > > It read the entire file with one read() call. There are no non-ASCII > characters inside that file. > > I then tried alternate encodings: > > % clisp -E UTF-8 > *** - invalid byte sequence #xC6 #x72 in CHARSET:UTF-8 conversion > The following restarts are available: > ABORT :R1 ABORT > Break 1 [2]> I wonder what CLISP is doing here... please type :bt1 here - you will get the Lisp STACK. maybe you could run this under GDB too? > Thus, a temporary workaround to the startup problem is to use > -E ISO-8859-1. according to <http://www.gnu.org/software/clisp/clisp.html#opt-enc> you can also set environment variable LC_ALL. Thanks! -- Sam Steingold (http://www.podval.org/~sds) running w2k <http://www.jihadwatch.org/> <http://www.mideasttruth.com/> <http://ffii.org/> <http://www.honestreporting.com> <http://www.iris.org.il> Shady characters are often very bright. |
From: Nelson H. F. B. <be...@ma...> - 2005-07-26 13:41:54
|
Sam Steingold <sd...@gn...> responds on Mon, 25 Jul 2005 17:29:57 -0400 to my problem report: >> ... >> > On Sun Solaris 10 SPARC with gcc 3.3.6, the "make check" fails like >> > this: >> > >> > ;; Loaded file >> > /local/build/gcc/clisp-2.34/src/tests/compile-file-pathname.fas EQL-OK: T >> > (COMPILE-FILE-PATHNAME "foo" :OUTPUT-FILE (LOGICAL-PATHNAME >> "SYS:foo.fas")) >> > EQUAL-OK: #S(LOGICAL-PATHNAME :HOST "SYS" :DEVICE :UNSPECIFIC >> :DIRECTORY >> > (:ABSOLUTE) :NAME "FOO" :TYPE "FAS" :VERSION :NEWEST) >> > (TRANSLATE-LOGICAL-PATHNAME (LOGICAL-PATHNAME "SYS:FOO.LISP")) >> > Bus Error >> >> I do not have access to such a system. >> could you please build clisp with debug symbols: >> $ ./configure --build build-g >> $ cd build-g >> $ gdb lisp.run >> (gdb) boot >> (gdb) run >> [1]> (TRANSLATE-LOGICAL-PATHNAME (LOGICAL-PATHNAME "SYS:FOO.LISP")) >> >> and send here the stack trace? >> thanks! >> >> (I suggest using the CVS head) >> ... I grabbed the CVS tarball from clisp.sourceforge.net, but found that it is incomplete: no configure file, empty src directory, ... How does one pull a workable clisp distribution out of CVS? In the meantime, I did your recommended experiment with the clisp-2.34 distribution: % gdb lisp.run GNU gdb 6.3 ... Breakpoint 1 at 0x3d49c Breakpoint 2 at 0x3b4cc Breakpoint 3 at 0x38a44 Breakpoint 4 at 0x3e8b0 Breakpoint 5 at 0x29d68 Watchpoint 6: {<data variable, no debug info>} 1851516 Breakpoint 7 at 0x2c398 Breakpoint 8 at 0x24978 Breakpoint 9 at 0x249e8 Breakpoint 10 at 0xcc98c Breakpoint 11 at 0xcc938 Num Type Disp Enb Address What 1 breakpoint keep n 0x0003d49c <funcall+4> xout fun 2 breakpoint keep n 0x0003b4cc <apply+4> xout fun 3 breakpoint keep n 0x00038a44 <eval+4> xout form 4 breakpoint keep n 0x0003e8b0 <interpret_bytecode_+4> xout closure 5 breakpoint keep n 0x00029d68 <gar_col+4> 6 watchpoint keep n {<data variable, no debug info>} 1851516 zbacktrace continue 7 breakpoint keep y 0x0002c398 <fehler_notreached+4> 8 breakpoint keep y 0x00024978 <SP_ueber+4> 9 breakpoint keep y 0x000249e8 <STACK_ueber+4> 10 breakpoint keep y 0x000cc98c <fehler+4> 11 breakpoint keep y 0x000cc938 <prepare_error+4> Function "sigsegv_handler_failed" not defined. .gdbinit:159: Error in sourced command file: No symbol "byteptr" in current context. (gdb) boot (gdb) run Starting program: /local/build/gcc/clisp-2.34/build-g/lisp.run -B . -N locale -M lispinit.mem -q -norc [1]> (TRANSLATE-LOGICAL-PATHNAME (LOGICAL-PATHNAME "SYS:FOO.LISP")) Program received signal SIGSEGV, Segmentation fault. 0x00058e54 in translate_directory () (gdb) where #0 0x00058e54 in translate_directory () #1 0x000590c8 in translate_pathname () #2 0x000595b8 in C_translate_pathname () #3 0x0003d76c in funcall_subr () #4 0x00054a20 in C_translate_logical_pathname () #5 0x000397cc in eval_subr () #6 0x0003907c in eval1 () #7 0x00038bc4 in eval () #8 0x000c958c in C_read_eval_print () #9 0x0003d76c in funcall_subr () #10 0x0004420c in interpret_bytecode_ () #11 0x0003df3c in funcall_closure () #12 0x0004b628 in C_driver () #13 0x00044174 in interpret_bytecode_ () #14 0x0003df3c in funcall_closure () #15 0x00043df0 in interpret_bytecode_ () #16 0x0003df3c in funcall_closure () #17 0x000c9804 in driver () #18 0x000305b0 in main () A look at the build log file showed that compilation was with -O2, and no -g. Thus, no arguments are displayed. I deleted pathname.o, and then manually recompiled with -O2 replaced by -g, then did "make" again. Another gdb session produced this: % gdb lisp.run (gdb) boot (gdb) run Starting program: /local/build/gcc/clisp-2.34/build-g/lisp.run -B . -N locale -M lispinit.mem -q -norc [1]> (TRANSLATE-LOGICAL-PATHNAME (LOGICAL-PATHNAME "SYS:FOO.LISP")) Program received signal SIGSEGV, Segmentation fault. 0x00063c74 in translate_directory (subst=0x1dc094, pattern=0x666afc8b, logical=false) at pathname.d:4717 4717 if (eq(Car(pattern),S(Kabsolute)) && mconsp(*subst) (gdb) where #0 0x00063c74 in translate_directory (subst=0x1dc094, pattern=0x666afc8b, logical=false) at pathname.d:4717 #1 0x0006456c in translate_pathname (subst=0x1dc094, pattern=0x19d2b8d9) at pathname.d:4800 #2 0x00065bc8 in C_translate_pathname () at pathname.d:4923 ------------------------------------------------------------------------------- - Nelson H. F. Beebe Tel: +1 801 581 5254 - - University of Utah FAX: +1 801 581 4148 - - Department of Mathematics, 110 LCB Internet e-mail: be...@ma... - - 155 S 1400 E RM 233 be...@ac... be...@co... - - Salt Lake City, UT 84112-0090, USA URL: http://www.math.utah.edu/~beebe - ------------------------------------------------------------------------------- |
From: Sam S. <sd...@gn...> - 2005-07-26 13:32:04
|
> * Nelson H. F. Beebe <orror@zngu.hgnu.rqh> [2005-07-26 06:19:30 -0600]: > > Sam Steingold <sd...@gn...> responds on Mon, 25 Jul 2005 17:29:57 > -0400 to my problem report: > >>> ... >>> > On Sun Solaris 10 SPARC with gcc 3.3.6, the "make check" fails like >>> > this: >>> > >>> > ;; Loaded file >>> > /local/build/gcc/clisp-2.34/src/tests/compile-file-pathname.fas EQL-OK: T >>> > (COMPILE-FILE-PATHNAME "foo" :OUTPUT-FILE (LOGICAL-PATHNAME >>> "SYS:foo.fas")) >>> > EQUAL-OK: #S(LOGICAL-PATHNAME :HOST "SYS" :DEVICE :UNSPECIFIC >>> :DIRECTORY >>> > (:ABSOLUTE) :NAME "FOO" :TYPE "FAS" :VERSION :NEWEST) >>> > (TRANSLATE-LOGICAL-PATHNAME (LOGICAL-PATHNAME "SYS:FOO.LISP")) >>> > Bus Error >>> >>> I do not have access to such a system. >>> could you please build clisp with debug symbols: >>> $ ./configure --build build-g >>> $ cd build-g >>> $ gdb lisp.run >>> (gdb) boot >>> (gdb) run >>> [1]> (TRANSLATE-LOGICAL-PATHNAME (LOGICAL-PATHNAME "SYS:FOO.LISP")) >>> >>> and send here the stack trace? >>> thanks! >>> >>> (I suggest using the CVS head) >>> ... > > I grabbed the CVS tarball from clisp.sourceforge.net, but found that > it is incomplete: no configure file, empty src directory, ... > How does one pull a workable clisp distribution out of CVS? use "Anonymous CVS Access" <http://sourceforge.net/cvs/?group_id=1355> > [1]> (TRANSLATE-LOGICAL-PATHNAME (LOGICAL-PATHNAME "SYS:FOO.LISP")) > > Program received signal SIGSEGV, Segmentation fault. > 0x00063c74 in translate_directory (subst=0x1dc094, pattern=0x666afc8b, > logical=false) at pathname.d:4717 > 4717 if (eq(Car(pattern),S(Kabsolute)) && mconsp(*subst) > (gdb) where > #0 0x00063c74 in translate_directory (subst=0x1dc094, pattern=0x666afc8b, > logical=false) at pathname.d:4717 > #1 0x0006456c in translate_pathname (subst=0x1dc094, pattern=0x19d2b8d9) > at pathname.d:4800 > #2 0x00065bc8 in C_translate_pathname () at pathname.d:4923 Great! thanks! now, could you please type xout *subst xout pattern zout *subst zout pattern at the (gdb) prompt? also, type (logical-pathname-translations "SYS") at the CLISP prompt. thanks a lot! -- Sam Steingold (http://www.podval.org/~sds) running w2k <http://www.openvotingconsortium.org/> <http://www.mideasttruth.com/> <http://www.memri.org/> <http://www.palestinefacts.org/> MS Windows vs IBM OS/2: Why marketing matters more than technology... |
From: Nelson H. F. B. <be...@ma...> - 2005-07-26 16:02:12
|
>> ... >> >> I wonder what CLISP is doing here... >> please type :bt1 here - you will get the Lisp STACK. >> maybe you could run this under GDB too? >> ... On GNU/Linux on AMD64, here is the Lisp stack: % clisp *** - invalid byte sequence #xC6 #x72 in CHARSET:UTF-8 conversion The following restarts are available: ABORT :R1 ABORT Break 1 [2]> :bti :BTI Break 1 [2]> :bt1 <1> #<SYSTEM-FUNCTION SHOW-STACK> 3 <2> #<COMPILED-FUNCTION SYSTEM::PRINT-BACKTRACE> <3> #<COMPILED-FUNCTION SYSTEM::DEBUG-BACKTRACE> <4> #<COMPILED-FUNCTION SYSTEM::DEBUG-BACKTRACE-1> <5> #<SYSTEM-FUNCTION SYSTEM::READ-EVAL-PRINT> 2 <6> #<COMPILED-FUNCTION SYSTEM::BREAK-LOOP-2-2> <7> #<SYSTEM-FUNCTION SYSTEM::SAME-ENV-AS> 2 <8> #<COMPILED-FUNCTION SYSTEM::BREAK-LOOP-2> <9> #<SYSTEM-FUNCTION SYSTEM::DRIVER> - #<SIMPLE-ERROR #x000333BDC678> - NIL <10> #<COMPILED-FUNCTION SYSTEM::BREAK-LOOP> - #<SIMPLE-ERROR #x000333BDC678> <11> #<SYSTEM-FUNCTION INVOKE-DEBUGGER> 1 frame binding variables (~ = dynamically): | ~ SYSTEM::*PRIN-STREAM* <--> #<UNBOUND> frame binding variables (~ = dynamically): | ~ *PRINT-READABLY* <--> NIL frame binding variables (~ = dynamically): | ~ *PRINT-ESCAPE* <--> T - #<SIMPLE-ERROR #x000333BDC678> - "/u/sy/beebe/" - #P"/u/sy/beebe/" - NIL - NIL - #S(HASH-TABLE :TEST FASTHASH-EQUAL ((21 . 114048) . T)) - NIL - (#P"/u/sy/beebe/") - NIL - ".clisprc.*" - #P"/u/sy/beebe/.clisprc.*" - NIL - #P"/u/sy/beebe/.clisprc.*" <12> #<SYSTEM-FUNCTION DIRECTORY> - #P"/u/sy/beebe/.clisprc.*" - #P"" - (#P"" #P"./" #P"/u/sy/beebe/lisp/**/") - NIL - T - #(NIL ("fas" "lisp" "lsp" "cl")) - #<COMPILED-FUNCTION SYSTEM::SEARCH-FILE> - ("fas" "lisp" "lsp" "cl") - #P"/u/sy/beebe/.clisprc.*" <13> #<COMPILED-FUNCTION SYSTEM::SEARCH-FILE> - #<COMPILED-FUNCTION SYSTEM::OPEN-FOR-LOAD-CHECK-COMPILED-FILE> - #<COMPILED-FUNCTION SYSTEM::OPEN-FOR-LOAD-MY-OPEN> - #(#(NIL :DEFAULT NIL) #<COMPILED-FUNCTION SYSTEM::OPEN-FOR-LOAD-BAD>) - #P"/u/sy/beebe/.clisprc" - NIL - T - NIL - #(NIL :DEFAULT NIL) - #<COMPILED-FUNCTION SYSTEM::OPEN-FOR-LOAD> - :DEFAULT - NIL - #P"/u/sy/beebe/.clisprc" <14> #<COMPILED-FUNCTION SYSTEM::OPEN-FOR-LOAD> - NIL frame binding variables (~ = dynamically): | ~ *LOAD-OBSOLETE-ACTION* <--> NIL frame binding variables (~ = dynamically): | ~ *LOAD-COMPILING* <--> NIL - NIL frame binding variables (~ = dynamically): | ~ *LOAD-ECHO* <--> NIL frame binding variables (~ = dynamically): | ~ *LOAD-PRINT* <--> NIL frame binding variables (~ = dynamically): | ~ *LOAD-VERBOSE* <--> T - #<COMPILED-FUNCTION LOAD> - NIL - #<UNBOUND> - #<UNBOUND> - #<UNBOUND> - :DEFAULT - NIL - #<UNBOUND> Printed 14 frames From this output, I found the problem: my top-level directory had a couple of test files with UTF-8 sequences in their filenames: clisp evidently lists the directory, and then raises an error. When I moved them into another directory, clisp starts without error. I would still call this an error in clisp: if it lists a directory over which a user has no control (e.g., /tmp), then it is trivial for an adversary to create a denial-of-service attack. Unix pathnames are not strictly in any particular character encoding: they are merely byte strings in which only slash and NUL have special significance. >> ... >> > Thus, a temporary workaround to the startup problem is to use >> > -E ISO-8859-1. >> >> according to >> <http://www.gnu.org/software/clisp/clisp.html#opt-enc> >> you can also set environment variable LC_ALL. >> ... That is not an acceptable solution, because it affects many other programs. In any event, I think we can call this startup problem solved, and move on to other things. ------------------------------------------------------------------------------- - Nelson H. F. Beebe Tel: +1 801 581 5254 - - University of Utah FAX: +1 801 581 4148 - - Department of Mathematics, 110 LCB Internet e-mail: be...@ma... - - 155 S 1400 E RM 233 be...@ac... be...@co... - - Salt Lake City, UT 84112-0090, USA URL: http://www.math.utah.edu/~beebe - ------------------------------------------------------------------------------- |
From: Nelson H. F. B. <be...@ma...> - 2005-07-26 21:54:39
|
Here is more of the requested debugging output for the segment violation on Sun Solaris 10 of clisp-2.34: % gdb lisp.run GNU gdb 6.3 ... (gdb) boot (gdb) run Starting program: /local/build/gcc/clisp-2.34/build-g/lisp.run -B . -N locale -M lispinit.mem -q -norc [1]> (TRANSLATE-LOGICAL-PATHNAME (LOGICAL-PATHNAME "SYS:FOO.LISP")) Program received signal SIGSEGV, Segmentation fault. 0x00063c74 in translate_directory (subst=0x1dc094, pattern=0x666afc8b, logical=false) at pathname.d:4717 4717 if (eq(Car(pattern),S(Kabsolute)) && mconsp(*subst) (gdb) xout *subst ("foo" "lisp" CL::NIL)1718287387 (gdb) xout pattern (:ABSOLUTE)1718287499 (gdb) zout *subst ("foo" "lisp" NIL) 1718287387 (gdb) zout pattern (:ABSOLUTE) 1718287499 (gdb) run The program being debugged has been started already. Start it from the beginning? (y or n) y Starting program: /local/build/gcc/clisp-2.34/build-g/lisp.run -B . -N locale -M lispinit.mem -q -norc [1]> (logical-pathname-translations "SYS") ((#S(LOGICAL-PATHNAME :HOST "SYS" :DEVICE :UNSPECIFIC :DIRECTORY (:RELATIVE) :NAME :WILD :TYPE "LISP" :VERSION NIL) "*.lisp") (#S(LOGICAL-PATHNAME :HOST "SYS" :DEVICE :UNSPECIFIC :DIRECTORY (:RELATIVE) :NAME :WILD :TYPE NIL :VERSION NIL) "*") (#S(LOGICAL-PATHNAME :HOST "SYS" :DEVICE :UNSPECIFIC :DIRECTORY (:ABSOLUTE) :NAME :WILD :TYPE NIL :VERSION NIL) "/*")) ------------------------------------------------------------------------------- - Nelson H. F. Beebe Tel: +1 801 581 5254 - - University of Utah FAX: +1 801 581 4148 - - Department of Mathematics, 110 LCB Internet e-mail: be...@ma... - - 155 S 1400 E RM 233 be...@ac... be...@co... - - Salt Lake City, UT 84112-0090, USA URL: http://www.math.utah.edu/~beebe - ------------------------------------------------------------------------------- |
From: Sam S. <sd...@gn...> - 2005-07-27 19:45:30
|
> * Nelson H. F. Beebe <orror@zngu.hgnu.rqh> [2005-07-26 15:54:24 -0600]: > > Here is more of the requested debugging output for the segment > violation on Sun Solaris 10 of clisp-2.34: > [1]> (TRANSLATE-LOGICAL-PATHNAME (LOGICAL-PATHNAME "SYS:FOO.LISP")) > 4717 if (eq(Car(pattern),S(Kabsolute)) && mconsp(*subst) please try the appended patch. thanks. -- Sam Steingold (http://www.podval.org/~sds) running w2k <http://www.openvotingconsortium.org/> <http://www.iris.org.il> <http://www.mideasttruth.com/> <http://www.palestinefacts.org/> Abandon all hope, all ye who press Enter. --- pathname.d 22 Jul 2005 14:29:22 -0400 1.380 +++ pathname.d 27 Jul 2005 15:40:53 -0400 @@ -4408,7 +4408,7 @@ var object item; if (atomp(m_list)) { if (atomp(b_list)) - push_solution(); + push_solution_with(NIL); return; } item = Car(m_list); m_list = Cdr(m_list); |
From: Sam S. <sd...@gn...> - 2005-07-27 20:07:45
|
> * Sam Steingold <fq...@ta...t> [2005-07-27 15:44:22 -0400]: > >> * Nelson H. F. Beebe <orror@zngu.hgnu.rqh> [2005-07-26 15:54:24 -0600]: >> >> Here is more of the requested debugging output for the segment >> violation on Sun Solaris 10 of clisp-2.34: >> [1]> (TRANSLATE-LOGICAL-PATHNAME (LOGICAL-PATHNAME "SYS:FOO.LISP")) >> 4717 if (eq(Car(pattern),S(Kabsolute)) && mconsp(*subst) > > please try the appended patch. don't... -- Sam Steingold (http://www.podval.org/~sds) running w2k <http://www.palestinefacts.org/> <http://www.jihadwatch.org/> <http://www.camera.org> <http://www.dhimmi.com/> <http://www.mideasttruth.com/> A clear conscience is usually the sign of a bad memory. |
From: Sam S. <sd...@gn...> - 2005-08-02 13:45:32
|
> * Nelson H. F. Beebe <orror@zngu.hgnu.rqh> [2005-07-26 15:54:24 -0600]: > > 0x00063c74 in translate_directory (subst=0x1dc094, pattern=0x666afc8b, > logical=false) at pathname.d:4717 > 4717 if (eq(Car(pattern),S(Kabsolute)) && mconsp(*subst) thanks for the bug report. the patch is appended. -- Sam Steingold (http://www.podval.org/~sds) running w2k <http://www.iris.org.il> <http://ffii.org/> <http://www.palestinefacts.org/> <http://www.mideasttruth.com/> MS DOS: Keyboard not found. Press F1 to continue. --- pathname.d 22 Jul 2005 14:29:22 -0400 1.380 +++ pathname.d 01 Aug 2005 11:55:24 -0400 @@ -4076,7 +4076,7 @@ } } } -#define DIRECTORY_TRIVIAL_P(dir) (nullp(dir) || (eq(Car(dir),S(Krelative)) && nullp(Cdr(dir)))) +#define DIRECTORY_TRIVIAL_P(dir) (nullp(dir) || (consp(dir) ? (eq(Car(dir),S(Krelative)) && nullp(Cdr(dir))) : false)) local bool directory_match (object pattern, object sample, bool logical) { if (nullp(pattern)) /* compare pattern with directory_default */ return true; |
From: Nelson H. F. B. <be...@ma...> - 2005-08-02 22:41:45
|
Thanks to Sam Steingold for the patch to src/pathname.d in clisp-2.34. I applied it, rebuilt, and reran the tests, including the (TRANSLATE-LOGICAL-PATHNAME (LOGICAL-PATHNAME "SYS:FOO.LISP")) It now reports #P"/foo.lisp" instead of getting a segment violation. ------------------------------------------------------------------------------- - Nelson H. F. Beebe Tel: +1 801 581 5254 - - University of Utah FAX: +1 801 581 4148 - - Department of Mathematics, 110 LCB Internet e-mail: be...@ma... - - 155 S 1400 E RM 233 be...@ac... be...@co... - - Salt Lake City, UT 84112-0090, USA URL: http://www.math.utah.edu/~beebe - ------------------------------------------------------------------------------- |
From: Sam S. <sd...@gn...> - 2005-08-02 23:42:38
|
> * Nelson H. F. Beebe <orror@zngu.hgnu.rqh> [2005-08-02 14:47:49 -0600]: > > Thanks to Sam Steingold for the patch to src/pathname.d in clisp-2.34. > I applied it, rebuilt, and reran the tests, including the > > (TRANSLATE-LOGICAL-PATHNAME (LOGICAL-PATHNAME "SYS:FOO.LISP")) > > It now reports > > #P"/foo.lisp" > > instead of getting a segment violation. yes, this is the correct behavior. Nelson, what other issues have not been addressed yet? -- Sam Steingold (http://www.podval.org/~sds) running w2k <http://www.openvotingconsortium.org/> <http://www.iris.org.il> <http://www.camera.org> <http://pmw.org.il/> <http://www.palestinefacts.org/> (lisp programmers do it better) |