#260: ABCL crashes on empty string designated as || in defstruct ----------------------------------------------------------------------------------------------+ Reporter: https://www.google.com/accounts/o8/id?id=aitoawkpaspbvrtrjcvsrck294sqlnthajx... | Owner: ehuelsmann Type: defect | Status: new Priority: major | Milestone: Component: compiler | Version: Keywords: | ----------------------------------------------------------------------------------------------+ ARNESI's matcher has this form in it: {{{ (defstruct (match-state (:conc-name ||)) target bindings matched) }}} This causes ABCL to crash with an error: `Can't intern zero-length symbol.`
Backtrace from SLIME: {{{ Backtrace: 0: (#<FUNCTION {72FB24C}> #<READER-ERROR {4C629F43}> #<FUNCTION {72FB24C}>) 1: (APPLY #<FUNCTION {72FB24C}> (#<READER-ERROR {4C629F43}> #<FUNCTION {72FB24C}>)) 2: (SYSTEM::RUN-HOOK SYSTEM::*INVOKE-DEBUGGER-HOOK* #<READER-ERROR {4C629F43}> #<FUNCTION {72FB24C}>) 3: (INVOKE-DEBUGGER #<READER-ERROR {4C629F43}>) 4: org.armedbear.lisp.Lisp.error(Lisp.java:381) 5: org.armedbear.lisp.Stream.readToken(Stream.java:1140) 6: org.armedbear.lisp.Stream.processChar(Stream.java:524) 7: org.armedbear.lisp.Stream.readList(Stream.java:684) 8: org.armedbear.lisp.LispReader$3.execute(LispReader.java:88) 9: org.armedbear.lisp.Stream.processChar(Stream.java:517) 10: org.armedbear.lisp.Stream.readList(Stream.java:684) 11: org.armedbear.lisp.LispReader$3.execute(LispReader.java:88) 12: org.armedbear.lisp.Stream.processChar(Stream.java:517) 13: org.armedbear.lisp.Stream.readList(Stream.java:684) 14: org.armedbear.lisp.LispReader$3.execute(LispReader.java:88) 15: org.armedbear.lisp.Stream.processChar(Stream.java:517) 16: org.armedbear.lisp.Stream.readPreservingWhitespace(Stream.java:486) 17: org.armedbear.lisp.Stream.readPreservingWhitespace(Stream.java:495) 18: org.armedbear.lisp.Stream.read(Stream.java:430) 19: org.armedbear.lisp.Stream$16.execute(Stream.java:2355) 20: org.armedbear.lisp.Symbol.execute(Symbol.java:808) 21: org.armedbear.lisp.LispThread.execute(LispThread.java:683) 22: org.armedbear.lisp.compile_file_61.execute(compile-file.lisp:649) 23: org.armedbear.lisp.LispThread.execute(LispThread.java:633) 24: org.armedbear.lisp.Java$pf_jrun_exception_protected.execute(Java.java:1308) 25: org.armedbear.lisp.Symbol.execute(Symbol.java:785) 26: org.armedbear.lisp.LispThread.execute(LispThread.java:649) 27: org.armedbear.lisp.compile_file_58.execute(compile-file.lisp:649) 28: org.armedbear.lisp.compiler_pass2_371.execute(compiler- pass2.lisp:7406) 29: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:101) 30: org.armedbear.lisp.Symbol.execute(Symbol.java:785) 31: org.armedbear.lisp.LispThread.execute(LispThread.java:649) 32: org.armedbear.lisp.compile_file_56.execute(compile-file.lisp:649) 33: org.armedbear.lisp.CompiledClosure.execute(CompiledClosure.java:153) 34: org.armedbear.lisp.Symbol.execute(Symbol.java:834) 35: org.armedbear.lisp.Autoload.execute(Autoload.java:217) 36: org.armedbear.lisp.Symbol.execute(Symbol.java:834) 37: org.armedbear.lisp.LispThread.execute(LispThread.java:719) 38: org.armedbear.lisp.Lisp.funcall(Lisp.java:180) 39: org.armedbear.lisp.Primitives$pf_apply.execute(Primitives.java:2842) 40: (READ #<FILE-STREAM {1CFB480A}> NIL #<FILE-STREAM {1CFB480A}>) 41: (#<FUNCTION {35369763}>) 42: (JRUN-EXCEPTION-PROTECTED #<FUNCTION {35369763}>) 43: (JVM::%WITH-COMPILATION-UNIT #<FUNCTION {130CFFE0}>) 44: (COMPILE-FILE #P"/Users/rpg/lisp/arnesi/src/matcher.lisp" :OUTPUT- FILE #P"/Users/rpg/.cache/common-lisp/abcl-1.0.1-fasl38-macosx- java/Users/rpg/lisp/arnesi/src/ASDF-TMP-matcher.abcl" :OUTPUT-FILE #P"/.. 45: (APPLY COMPILE-FILE #P"/Users/rpg/lisp/arnesi/src/matcher.lisp" :OUTPUT-FILE #P"/Users/rpg/.cache/common-lisp/abcl-1.0.1-fasl38-macosx- java/Users/rpg/lisp/arnesi/src/ASDF-TMP-matcher.abcl" (:OUTPUT-FI.. 46: (ASDF:COMPILE-FILE* #P"/Users/rpg/lisp/arnesi/src/matcher.lisp" :OUTPUT-FILE #P"/Users/rpg/.cache/common-lisp/abcl-1.0.1-fasl38-macosx- java/Users/rpg/lisp/arnesi/src/matcher.abcl") 47: (APPLY ASDF:COMPILE-FILE* #P"/Users/rpg/lisp/arnesi/src/matcher.lisp" :OUTPUT-FILE #P"/Users/rpg/.cache/common-lisp/abcl-1.0.1-fasl38-macosx- java/Users/rpg/lisp/arnesi/src/matcher.abcl" NIL) }}}
Same error if I try this at the REPL.