Code Monkey home page Code Monkey logo

Comments (8)

JVDptt avatar JVDptt commented on September 17, 2024

Coredump details :

$ gdb boehmprecise/clasp /tmp/iclasp.coredump 
GNU gdb (GDB) 15.0.50.20240129-git
Copyright (C) 2024 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from boehmprecise/clasp...
[New LWP 1746047]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `**boehmprecise/iclasp --norc --disable-mpi --ignore-image --feature clasp-min --l**'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  core::lisp_error (datum=datum@entry=..., arguments=...) at ../src/core/foundation.cc:1360
1360      if (!cl::_sym_error->fboundp()) {
(gdb) info reg rip
rip            0xe27a79            0xe27a79 <core::lisp_error(gctools::smart_ptr<core::T_O>, gctools::smart_ptr<core::T_O>)+41>
(gdb) disass/s  0xe27a79, 0xe27a88
Dump of assembler code from 0xe27a79 to 0xe27a88:
../src/core/foundation.cc:
1360      if (!cl::_sym_error->fboundp()) {
=> 0x0000000000e27a79 <_ZN4core10lisp_errorEN7gctools9smart_ptrINS_3T_OEEES3_+41>:      call   0xf2b710 <_ZNK4core8Symbol_O7fboundpEv>
   0x0000000000e27a7e <_ZN4core10lisp_errorEN7gctools9smart_ptrINS_3T_OEEES3_+46>:      test   %al,%al
   0x0000000000e27a80 <_ZN4core10lisp_errorEN7gctools9smart_ptrINS_3T_OEEES3_+48>:      je     0xe27aef <_ZN4core10lisp_errorEN7gctools9smart_ptrINS_3T_OEEES3_+159>

../include/clasp/gctools/smart_pointers.h:
591       template <class From> inline smart_ptr(smart_ptr<From> const& rhs) : theObject((Type*)rhs.theObject){};
   0x0000000000e27a82 <_ZN4core10lisp_errorEN7gctools9smart_ptrINS_3T_OEEES3_+50>:      mov    (%r12),%rdi

../src/core/foundation.cc:
1366      core__apply1(coerce::calledFunctionDesignator(cl::_sym_error), arguments, datum);
   0x0000000000e27a86 <_ZN4core10lisp_errorEN7gctools9smart_ptrINS_3T_OEEES3_+54>:      call   0xf4db30 <_ZN4core6coerce24calledFunctionDesignatorEN7gctools9smart_ptrINS_3T_OEEE>
End of assembler dump.
(gdb) info reg rdi r12
rdi            0x6                 6
r12            0x1da8ac0           31099584
(gdb) info reg rsp rbp rsi gs
rsp            0x7ffcf9d1dee0      0x7ffcf9d1dee0
rbp            0x7ffcf9d1e0d0      0x7ffcf9d1e0d0
rsi            0x7f513c1cc7cb      139986877597643
gs             0x0                 0
(gdb) where
#0  core::lisp_error (datum=datum@entry=..., arguments=...) at ../src/core/foundation.cc:1360
#1  0x0000000000f4dc36 in core::coerce::calledFunctionDesignator (obj=obj@entry=...) at ../src/core/designators.cc:70
#2  0x0000000001834c0c in core::eval::funcall<gctools::smart_ptr<core::Integer_O> > (fn=..., args=...) at ../include/clasp/core/evaluator.h:102
#3  gctools::handle_segv (signo=<optimized out>, info=<optimized out>, context=<optimized out>) at ../src/gctools/interrupt.cc:409
#4  <signal handler called>
#5  std::atomic<gctools::smart_ptr<core::FunctionCell_O> >::load (this=0x26, __m=std::memory_order::relaxed)
    at /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../include/c++/13/atomic:297
#6  core::Symbol_O::functionCell (this=0x6) at ../include/clasp/core/symbol.h:335
#7  core::Symbol_O::fboundp (this=0x6) at ../src/core/symbol.cc:389
#8  0x0000000000e27a7e in core::lisp_error (datum=datum@entry=..., arguments=...) at ../src/core/foundation.cc:1360
...

That core::lisp_error() stack trace repeats more than 100,000 times - it looks like infinite stack recursion !

Any ideas on how to fix / progress to a working build would be much appreciated .

from clasp.

JVDptt avatar JVDptt commented on September 17, 2024

I'd suggest some sort of re-entry detector in core::lisp_error() ?

ie. core::lisp_error() calls fboundp() which calls core::lisp_error() - this recursion needs to be detected and limited.

from clasp.

JVDptt avatar JVDptt commented on September 17, 2024

Actually, I am building with latest binutils-2.42 in /usr/local/bin /usr/local/lib64, I will try re-building
with standard system binutils-2.39-16 .

from clasp.

JVDptt avatar JVDptt commented on September 17, 2024

Yes, exactly the same error and coredump occur using either binutils v2.39-16 or binutils v2.42 .

What Clang / LLVM + binutils version do you use for compiling ?
Evidentally not clang-16.0.6 or the above binutils versions.

The CFLAGS / CXXFLAGS / LDFLAGS I use are :

$ declare -x CC=gcc CXX=g++ CFLAGS='-std=gnu17 -march=x86-64 -mtune=native -DPIC -fPIC -O3 -g -pipe -Wall -Wextra -Wno-error' CXXFLAGS='-std=gnu++20 -march=x86-64 -mtune=native -DPIC -fPIC  -O3 -g -pipe -Wall -Wextra -Wno-error' CLANG=clang LDFLAGS='-O3 -g -flto -fpic'

The actual command that enters infinite recursion and coredumps,
( obtained by running 'strace -s 8192 -e execve ninja' in the build directory), is :

[pid 1763609] execve("boehmprecise/iclasp", ["boehmprecise/iclasp", "--norc", "--disable-mpi", "--ignore-image", "--feature", "clasp-min", "--load", "compile-clasp.lisp", "--", "base", "0", "SYS:SRC;LISP;KERNEL;STAGE;BASE;0-BEGIN.LISP", "SYS:SRC;LISP;KERNEL;STAGE;BASE;1-BEGIN.LISP", "SYS:SRC;LISP;KERNEL;LSP;PROLOGUE.LISP", "SYS:SRC;LISP;KERNEL;INIT.LISP", "SYS:SRC;LISP;KERNEL;CMP;RUNTIME-INFO.LISP", "SYS:SRC;LISP;KERNEL;LSP;SHARPMACROS.LISP", "SYS:SRC;LISP;KERNEL;CMP;JIT-SETUP.LISP", "SYS:SRC;LISP;KERNEL;CLSYMBOLS.LISP", "SYS:SRC;LISP;KERNEL;LSP;PACKAGES.LISP", "SYS:SRC;LISP;KERNEL;LSP;FOUNDATION.LISP", "SYS:SRC;LISP;KERNEL;LSP;EXPORT.LISP", "SYS:SRC;LISP;KERNEL;LSP;DEFMACRO.LISP", "SYS:SRC;LISP;KERNEL;LSP;HELPFILE.LISP", "SYS:SRC;LISP;KERNEL;LSP;EVALMACROS.LISP", "SYS:SRC;LISP;KERNEL;LSP;CLASPMACROS.LISP", "SYS:SRC;LISP;KERNEL;LSP;SOURCE-TRANSFORMATIONS.LISP", "SYS:SRC;LISP;KERNEL;LSP;ARRAYLIB.LISP", "SYS:SRC;LISP;KERNEL;LSP;SETF.LISP", "SYS:SRC;LISP;KERNEL;LSP;LISTLIB.LISP", "SYS:SRC;LISP;KERNEL;LSP;MISLIB.LISP", "SYS:SRC;LISP;KERNEL;LSP;DEFSTRUCT.LISP", "SYS:SRC;LISP;KERNEL;LSP;PREDLIB.LISP", "SYS:SRC;LISP;KERNEL;LSP;CDR-5.LISP", "SYS:SRC;LISP;KERNEL;LSP;CMUUTIL.LISP", "SYS:SRC;LISP;KERNEL;LSP;SEQMACROS.LISP", "SYS:SRC;LISP;KERNEL;LSP;SEQ.LISP", "SYS:SRC;LISP;KERNEL;LSP;SEQLIB.LISP", "SYS:SRC;LISP;KERNEL;LSP;IOLIB.LISP", "SYS:SRC;LISP;KERNEL;LSP;TRACE.LISP", "SYS:SRC;LISP;KERNEL;LSP;DEBUG.LISP", "SYS:SRC;LISP;KERNEL;CMP;CMPEXPORTS.LISP", "SYS:SRC;LISP;KERNEL;CMP;CMPSETUP.LISP", "SYS:SRC;LISP;KERNEL;CMP;CMPUTIL.LISP", "SYS:SRC;LISP;KERNEL;CMP;CMPINTRINSICS.LISP", "SYS:SRC;LISP;KERNEL;CMP;STARTUP-PRIMITIVES.LISP", "SYS:SRC;LISP;KERNEL;CMP;PRIMITIVES.LISP", "SYS:SRC;LISP;KERNEL;CMP;CMPIR.LISP", "SYS:SRC;LISP;KERNEL;CMP;DEBUGINFO.LISP", "SYS:SRC;LISP;KERNEL;CMP;ARGUMENTS.LISP", "SYS:SRC;LISP;KERNEL;CMP;CMPRUNALL.LISP", "SYS:SRC;LISP;KERNEL;CMP;CMPLITERAL.LISP", "SYS:SRC;LISP;KERNEL;CMP;TYPEQ.LISP", "SYS:SRC;LISP;KERNEL;CMP;CODEGEN-SPECIAL-FORM.LISP", "SYS:SRC;LISP;KERNEL;CMP;COMPILE.LISP", "SYS:SRC;LISP;KERNEL;CMP;EXTERNAL-CLANG.LISP", "SYS:SRC;LISP;KERNEL;CMP;CMPNAME.LISP", "SYS:SRC;LISP;KERNEL;CMP;BYTECODE-MACHINES.LISP", "SYS:SRC;LISP;KERNEL;CMP;BYTECODE-REFERENCE.LISP", "SYS:SRC;LISP;KERNEL;CMP;CMPREPL-BYTECODE.LISP", "SYS:GENERATED;BASE-TRANSLATIONS.LISP", "SYS:SRC;LISP;KERNEL;STAGE;BASE;0-END.LISP", "SYS:SRC;LISP;KERNEL;CMP;CMPWALK.LISP", "SYS:SRC;LISP;KERNEL;LSP;ASSERT.LISP", "SYS:SRC;LISP;KERNEL;LSP;NUMLIB.LISP", "SYS:SRC;LISP;KERNEL;LSP;DESCRIBE.LISP", "SYS:SRC;LISP;KERNEL;LSP;MODULE.LISP", "SYS:SRC;LISP;KERNEL;LSP;LOOP2.LISP", "SYS:SRC;LISP;KERNEL;CMP;DISASSEMBLE.LISP", "SYS:SRC;LISP;KERNEL;CMP;OPT;OPT.LISP", "SYS:SRC;LISP;KERNEL;CMP;OPT;OPT-CHARACTER.LISP", "SYS:SRC;LISP;KERNEL;CMP;OPT;OPT-NUMBER.LISP", "SYS:SRC;LISP;KERNEL;CMP;OPT;OPT-TYPE.LISP", "SYS:SRC;LISP;KERNEL;CMP;OPT;OPT-CONTROL.LISP", "SYS:SRC;LISP;KERNEL;CMP;OPT;OPT-SEQUENCE.LISP", "SYS:SRC;LISP;KERNEL;CMP;OPT;OPT-CONS.LISP", "SYS:SRC;LISP;KERNEL;CMP;OPT;OPT-ARRAY.LISP", "SYS:SRC;LISP;KERNEL;CMP;OPT;OPT-OBJECT.LISP", "SYS:SRC;LISP;KERNEL;CMP;OPT;OPT-CONDITION.LISP", "SYS:SRC;LISP;KERNEL;CMP;OPT;OPT-PRINT.LISP", "SYS:SRC;LISP;KERNEL;LSP;SHIFTF-ROTATEF.LISP", "SYS:SRC;LISP;KERNEL;LSP;ASSORTED.LISP", "SYS:SRC;LISP;KERNEL;LSP;PACKLIB.LISP", "SYS:SRC;LISP;KERNEL;LSP;DEFPACKAGE.LISP", "SYS:SRC;LISP;KERNEL;LSP;FORMAT.LISP", "SYS:SRC;LISP;KERNEL;LSP;MP.LISP", "SYS:SRC;LISP;KERNEL;LSP;ATOMICS.LISP", "SYS:SRC;LISP;KERNEL;CLOS;PACKAGE.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STATIC-GFS;PACKAGE.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STATIC-GFS;FLAG.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STATIC-GFS;CONSTRUCTOR.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STATIC-GFS;REINITIALIZER.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STATIC-GFS;CHANGER.LISP", "SYS:SRC;LISP;KERNEL;CLOS;HIERARCHY.LISP", "SYS:SRC;LISP;KERNEL;CLOS;CPL.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STD-SLOT-VALUE.LISP", "SYS:SRC;LISP;KERNEL;CLOS;SLOT.LISP", "SYS:SRC;LISP;KERNEL;CLOS;BOOT.LISP", "SYS:SRC;LISP;KERNEL;CLOS;KERNEL.LISP", "SYS:SRC;LISP;KERNEL;CLOS;OUTCOME.LISP", "SYS:SRC;LISP;KERNEL;CLOS;DISCRIMINATE.LISP", "SYS:SRC;LISP;KERNEL;CLOS;DTREE.LISP", "SYS:SRC;LISP;KERNEL;CLOS;DTREE-GRAPHVIZ.LISP", "SYS:SRC;LISP;KERNEL;CLOS;EFFECTIVE-ACCESSOR.LISP", "SYS:SRC;LISP;KERNEL;CLOS;CLOSFASTGF.LISP", "SYS:SRC;LISP;KERNEL;CLOS;SATIATION.LISP", "SYS:SRC;LISP;KERNEL;CLOS;METHOD.LISP", "SYS:SRC;LISP;KERNEL;CLOS;COMBIN.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STD-ACCESSORS.LISP", "SYS:SRC;LISP;KERNEL;CLOS;DEFCLASS.LISP", "SYS:SRC;LISP;KERNEL;CLOS;SLOTVALUE.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STANDARD.LISP", "SYS:SRC;LISP;KERNEL;CLOS;BUILTIN.LISP", "SYS:SRC;LISP;KERNEL;CLOS;CHANGE.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STDMETHOD.LISP", "SYS:SRC;LISP;KERNEL;CLOS;GENERIC.LISP", "SYS:SRC;LISP;KERNEL;CLOS;FIXUP.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STATIC-GFS;CELL.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STATIC-GFS;EFFECTIVE-METHOD.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STATIC-GFS;SVUC.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STATIC-GFS;SHARED-INITIALIZE.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STATIC-GFS;INITIALIZE-INSTANCE.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STATIC-GFS;ALLOCATE-INSTANCE.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STATIC-GFS;MAKE-INSTANCE.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STATIC-GFS;COMPUTE-CONSTRUCTOR.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STATIC-GFS;DEPENDENTS.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STATIC-GFS;COMPILER-MACROS.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STATIC-GFS;REINITIALIZE-INSTANCE.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STATIC-GFS;UPDATE-INSTANCE-FOR-DIFFERENT-CLASS.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STATIC-GFS;CHANGE-CLASS.LISP", "SYS:SRC;LISP;KERNEL;LSP;SOURCE-LOCATION.LISP", "SYS:SRC;LISP;KERNEL;LSP;DEFVIRTUAL.LISP", "SYS:SRC;LISP;KERNEL;CLOS;STREAMS.LISP", "SYS:SRC;LISP;KERNEL;LSP;PPRINT.LISP", "SYS:SRC;LISP;KERNEL;LSP;FORMAT-PPRINT.LISP", "SYS:SRC;LISP;KERNEL;CLOS;CONDITIONS.LISP", "SYS:SRC;LISP;KERNEL;CLOS;PRINT.LISP", "SYS:SRC;LISP;KERNEL;CLOS;SEQUENCES.LISP", "SYS:SRC;LISP;KERNEL;CMP;COMPILER-CONDITIONS.LISP", "SYS:SRC;LISP;KERNEL;LSP;PACKLIB2.LISP", "SYS:SRC;LISP;KERNEL;CLOS;INSPECT.LISP", "SYS:SRC;LISP;KERNEL;CLOS;TELEMETRY.LISP", "SYS:SRC;LISP;KERNEL;LSP;LOADLTV.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ALEXANDRIA;ALEXANDRIA-1;PACKAGE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ALEXANDRIA;ALEXANDRIA-1;DEFINITIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ALEXANDRIA;ALEXANDRIA-1;BINDING.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ALEXANDRIA;ALEXANDRIA-1;STRINGS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ALEXANDRIA;ALEXANDRIA-1;CONDITIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ALEXANDRIA;ALEXANDRIA-1;SYMBOLS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ALEXANDRIA;ALEXANDRIA-1;MACROS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ALEXANDRIA;ALEXANDRIA-1;FUNCTIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ALEXANDRIA;ALEXANDRIA-1;LISTS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ALEXANDRIA;ALEXANDRIA-1;TYPES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ALEXANDRIA;ALEXANDRIA-1;IO.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ALEXANDRIA;ALEXANDRIA-1;HASH-TABLES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ALEXANDRIA;ALEXANDRIA-1;CONTROL-FLOW.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ALEXANDRIA;ALEXANDRIA-1;ARRAYS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ALEXANDRIA;ALEXANDRIA-1;SEQUENCES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ALEXANDRIA;ALEXANDRIA-1;NUMBERS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ALEXANDRIA;ALEXANDRIA-1;FEATURES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ALEXANDRIA;ALEXANDRIA-2;PACKAGE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ALEXANDRIA;ALEXANDRIA-2;ARRAYS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ALEXANDRIA;ALEXANDRIA-2;CONTROL-FLOW.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ALEXANDRIA;ALEXANDRIA-2;SEQUENCES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ALEXANDRIA;ALEXANDRIA-2;LISTS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ACCLIMATION;PACKAGES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ACCLIMATION;LOCALE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ACCLIMATION;DATE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ACCLIMATION;LANGUAGE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ACCLIMATION;LANGUAGE-ENGLISH.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ACCLIMATION;LANGUAGE-FRENCH.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ACCLIMATION;LANGUAGE-SWEDISH.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ACCLIMATION;LANGUAGE-VIETNAMESE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ACCLIMATION;LANGUAGE-JAPANESE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ACCLIMATION;CONDITION.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ACCLIMATION;DOCUMENTATION.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ACCLIMATION;INIT.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;PACKAGES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;GENERIC-FUNCTIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;CST.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;CONS-CST.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;LISTIFY.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;CSTIFY.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;CST-FROM-EXPRESSION.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;QUASIQUOTATION.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;RECONSTRUCT.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;DECLARATIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;BODY.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;LIST-STRUCTURE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;BINDINGS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;CONDITIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;CONDITION-REPORTERS-ENGLISH.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;LAMBDA-LIST;CLIENT.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;LAMBDA-LIST;ENSURE-PROPER.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;LAMBDA-LIST;GRAMMAR-SYMBOLS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;LAMBDA-LIST;LAMBDA-LIST-KEYWORDS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;LAMBDA-LIST;GRAMMAR.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;LAMBDA-LIST;STANDARD-GRAMMARS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;LAMBDA-LIST;EARLEY-ITEM.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;LAMBDA-LIST;EARLEY-STATE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;LAMBDA-LIST;PARSER.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;LAMBDA-LIST;SCANNER-ACTION.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;LAMBDA-LIST;EARLEY.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;LAMBDA-LIST;PARSE-TOP-LEVELS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;LAMBDA-LIST;UNPARSE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLOSER-MOP;CLOSER-MOP-PACKAGES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLOSER-MOP;CLOSER-MOP-SHARED.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLOSER-MOP;CLOSER-CLASP.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;BASE;PACKAGE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;BASE;UTILITIES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;BASE;VARIABLES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;BASE;GENERIC-FUNCTIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;BASE;CONDITIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;BASE;READ-CHAR.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;BASE;MESSAGES-ENGLISH.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READTABLE;PACKAGE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READTABLE;VARIABLES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READTABLE;CONDITIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READTABLE;GENERIC-FUNCTIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READTABLE;MESSAGES-ENGLISH.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READTABLE;SIMPLE;PACKAGE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READTABLE;SIMPLE;READTABLE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READTABLE;SIMPLE;METHODS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READTABLE;SIMPLE;MESSAGES-ENGLISH.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READER;PACKAGE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READER;GENERIC-FUNCTIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READER;MORE-VARIABLES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READER;ADDITIONAL-CONDITIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READER;UTILITIES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READER;LABELED-OBJECTS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READER;TOKENS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READER;READ-COMMON.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READER;READ.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READER;MACRO-FUNCTIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READER;INIT.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READER;QUASIQUOTE-MACRO.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READER;DEPRECATION.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;READER;MESSAGES-ENGLISH.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;PARSE-RESULT;PACKAGE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;PARSE-RESULT;CLIENT.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;PARSE-RESULT;GENERIC-FUNCTIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;PARSE-RESULT;LABELED-OBJECTS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;PARSE-RESULT;READ.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;CONCRETE-SYNTAX-TREE;PACKAGE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;CONCRETE-SYNTAX-TREE;CLIENT.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;CONCRETE-SYNTAX-TREE;LABELED-OBJECTS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;ECLECTOR;CODE;CONCRETE-SYNTAX-TREE;READ.LISP", "SYS:SRC;LISP;KERNEL;CMP;ECLECTOR-CLIENT.LISP", "SYS:SRC;LISP;KERNEL;CMP;FIXUP-ECLECTOR-READTABLES.LISP", "SYS:SRC;LISP;KERNEL;CMP;ACTIVATE-CLASP-READTABLES-FOR-ECLECTOR.LISP", "SYS:SRC;LISP;KERNEL;CMP;DEFINE-UNICODE-TABLES.LISP", "SYS:SRC;LISP;KERNEL;CMP;CMPLTV.LISP", "SYS:SRC;LISP;KERNEL;CMP;DISLTV.LISP", "SYS:SRC;LISP;KERNEL;CMP;COMPILE-FILE.LISP", "SYS:SRC;LISP;KERNEL;CMP;CMPBUNDLE.LISP", "SYS:SRC;LISP;KERNEL;LSP;BYTECODE-INTROSPECT.LISP", "SYS:SRC;LISP;KERNEL;LSP;FLI.LISP", "SYS:SRC;LISP;KERNEL;LSP;POSIX.LISP", "SYS:SRC;LISP;MODULES;SOCKETS;SOCKETS.LISP", "SYS:SRC;LISP;KERNEL;LSP;TOP.LISP", "SYS:SRC;LISP;KERNEL;STAGE;BASE;1-END.LISP", "SYS:SRC;LISP;KERNEL;STAGE;BASE;2-BEGIN.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;INPUT-OUTPUT;PACKAGES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;INPUT-OUTPUT;IO.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;ATTRIBUTES;PACKAGES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;ATTRIBUTES;FLAGS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;ATTRIBUTES;ATTRIBUTES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;ABSTRACT-SYNTAX-TREE;PACKAGES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;ABSTRACT-SYNTAX-TREE;GENERAL-PURPOSE-ASTS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;ABSTRACT-SYNTAX-TREE;GRAPHVIZ-DRAWING.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;ABSTRACT-SYNTAX-TREE;MAP-AST.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;PRIMOP;PACKAGES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;PRIMOP;INFO.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;PRIMOP;DEFINITIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;SET;PACKAGES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;SET;SET.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CONDITIONS;PACKAGES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CONDITIONS;PROGRAM-CONDITION.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CONDITIONS;ORIGIN.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CONDITIONS;NOTE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;METER;PACKAGES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;METER;METER.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CTYPE;PACKAGES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CTYPE;GENERIC-FUNCTIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CTYPE;OTHER-FUNCTIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CTYPE;DEFAULT.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;BIR;PACKAGES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;BIR;STRUCTURE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;BIR;INSTRUCTIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;BIR;MAP.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;BIR;CONDITIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;BIR;GRAPH-MODIFICATIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;BIR;VERIFY.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;BIR;DISASSEMBLE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;BIR;CONDITION-REPORTERS-ENGLISH.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;BIR-BUILDER;PACKAGES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;BIR-BUILDER;BUILDER.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;AST-TO-BIR;PACKAGES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;AST-TO-BIR;INFRASTRUCTURE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;AST-TO-BIR;COMPILE-GENERAL-PURPOSE-ASTS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;AST-TO-BIR;COMPILE-MULTIPLE-VALUE-RELATED-ASTS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;AST-TO-BIR;COMPILE-PRIMOPS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;BIR-TRANSFORMATIONS;PACKAGES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;BIR-TRANSFORMATIONS;ELIMINATE-COME-FROMS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;BIR-TRANSFORMATIONS;PROCESS-CAPTURED-VARIABLES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;BIR-TRANSFORMATIONS;DELETE-TEMPORARY-VARIABLES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;BIR-TRANSFORMATIONS;INTERPOLATE-FUNCTION.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;BIR-TRANSFORMATIONS;COPY-FUNCTION.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;BIR-TRANSFORMATIONS;INLINE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;BIR-TRANSFORMATIONS;SIMPLE-UNWIND.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;BIR-TRANSFORMATIONS;META-EVALUATE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;BIR-TRANSFORMATIONS;GENERATE-TYPE-CHECKS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;ENVIRONMENT;PACKAGES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;ENVIRONMENT;QUERY.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;ENVIRONMENT;AUGMENTATION-FUNCTIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;ENVIRONMENT;DEFAULT-AUGMENTATION-CLASSES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;ENVIRONMENT;COMPILE-TIME.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;ENVIRONMENT;OPTIMIZE-QUALITIES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;ENVIRONMENT;DECLARATIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;ENVIRONMENT;TYPE-INFORMATION.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;ENVIRONMENT;DEFAULT-INFO-METHODS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;ENVIRONMENT;EVAL.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;COMPILATION-POLICY;PACKAGES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;COMPILATION-POLICY;CONDITIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;COMPILATION-POLICY;CONDITION-REPORTERS-ENGLISH.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;COMPILATION-POLICY;POLICY.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;COMPILATION-POLICY;DEFINE-POLICY.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;COMPILATION-POLICY;OPTIMIZE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;COMPILATION-POLICY;COMPUTE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;DESTRUCTURING;VARIABLES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;DESTRUCTURING;GENERIC-FUNCTIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;DESTRUCTURING;CONDITIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;DESTRUCTURING;WHOLE-PARAMETERS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;DESTRUCTURING;CONDITION-GENERATION.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;DESTRUCTURING;REQUIRED-PARAMETERS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;DESTRUCTURING;OPTIONAL-PARAMETERS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;DESTRUCTURING;REST-PARAMETERS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;DESTRUCTURING;KEY-PARAMETERS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;DESTRUCTURING;AUX-PARAMETERS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;DESTRUCTURING;LAMBDA-LIST.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;DESTRUCTURING;PARSE-MACRO.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;DESTRUCTURING;DB-DEFMACRO.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CONCRETE-SYNTAX-TREE;DESTRUCTURING;CONDITION-REPORTERS-ENGLISH.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;PACKAGES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;CONDITIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;CONDITION-REPORTERS-ENGLISH.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;ENVIRONMENT-AUGMENTATION.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;ENVIRONMENT-QUERY.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;VARIABLES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;GENERIC-FUNCTIONS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;CONVERT-FUNCTION-REFERENCE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;CONVERT-SPECIAL-BINDING.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;UTILITIES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;SET-OR-BIND-VARIABLE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;PROCESS-PROGN.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;CONVERT-SEQUENCE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;CONVERT-VARIABLE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;CONVERT.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;PROCESS-INIT-PARAMETER.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;ITEMIZE-DECLARATION-SPECIFIERS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;ITEMIZE-LAMBDA-LIST.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;LAMBDA-LIST-FROM-PARAMETER-GROUPS.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;CONVERT-SETQ.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;CONVERT-LET-AND-LETSTAR.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;CONVERT-CODE.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;CONVERT-LAMBDA-CALL.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;CONVERT-CONSTANT.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;CONVERT-SPECIAL.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;CONVERT-PRIMOP.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;CONVERT-CST.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;CST-TO-AST;CST-TO-AST.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;STEALTH-MIXINS;PACKAGES.LISP", "SYS:SRC;LISP;KERNEL;CONTRIB;CLEAVIR;STEALTH-MIXINS;STEALTH-MIXINS.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;PACKAGES.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;SYSTEM.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;POLICY.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;READER.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;AST.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;CONVERT-FORM.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;CONVERT-SPECIAL.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;TOPLEVEL.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;SETUP.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;FOLD.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;IR.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;TRANSLATION-ENVIRONMENT.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;BIR.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;BMIR.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;BLIR.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;VASLIST.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;BIR-TO-BMIR.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;REPRESENTATION-SELECTION.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;BMIR-TO-BLIR.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;LANDING-PAD.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;PRIMOP.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;INTERVAL.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;TYPE.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;TRANSFORM.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;TRANSLATE.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;COMPILE-BYTECODE.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;INLINE-PREP.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;PROCLAMATIONS.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;HOOKS.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;BYTECODE-ADAPTOR.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;INLINE.LISP", "SYS:SRC;LISP;KERNEL;LSP;QUEUE.LISP", "SYS:SRC;LISP;KERNEL;LSP;GENERATED-ENCODINGS.LISP", "SYS:SRC;LISP;KERNEL;LSP;PROCESS.LISP", "SYS:SRC;LISP;KERNEL;LSP;ENCODINGS.LISP", "SYS:SRC;LISP;KERNEL;LSP;CLTL2.LISP", "SYS:SRC;LISP;KERNEL;LSP;XREF.LISP", "SYS:GENERATED;BASE-IMMUTABLE.LISP", "SYS:SRC;LISP;KERNEL;STAGE;BASE;2-END.LISP", "SYS:SRC;LISP;KERNEL;CMP;COMPILE-FILE-PARALLEL.LISP", "SYS:SRC;LISP;KERNEL;CLEAVIR;AUTO-COMPILE.LISP", "SYS:SRC;LISP;KERNEL;LSP;TOP-HOOK.LISP"], 0x55f3d5462000 /* 30 vars */)

from clasp.

JVDptt avatar JVDptt commented on September 17, 2024

With this patch, infinite recursion and coredump is avoided, but unfortunately the build still fails , printing the message:

lisp_error ->
 Error #<UNBOUND> initializers: (NIL NIL)

, unfortunately not much help , but at least no coredump.

Clasp is evidently a long way from being buildable / usable - good luck, I'll see how it has progressed in a year or so.

foundation.cc.patch.txt

from clasp.

Bike avatar Bike commented on September 17, 2024

cl__error does check for recursion, and all lisp_error does is call cl__error. So I don't know how you're seeing that.

from clasp.

JVDptt avatar JVDptt commented on September 17, 2024

Thanks for taking a look, Alex .

The recursion path is documented in the "Coredump Details" comment above :

(gdb) where
#0  core::lisp_error (datum=datum@entry=..., arguments=...) at ../src/core/foundation.cc:1360
#1  0x0000000000f4dc36 in core::coerce::calledFunctionDesignator (obj=obj@entry=...) at ../src/core/designators.cc:70
#2  0x0000000001834c0c in core::eval::funcall<gctools::smart_ptr<core::Integer_O> > (fn=..., args=...) at ../include/clasp/core/evaluator.h:102
#3  gctools::handle_segv (signo=<optimized out>, info=<optimized out>, context=<optimized out>) at ../src/gctools/interrupt.cc:409
#4  <signal handler called>
#5  std::atomic<gctools::smart_ptr<core::FunctionCell_O> >::load (this=0x26, __m=std::memory_order::relaxed)
    at /usr/bin/../lib/gcc/x86_64-redhat-linux/13/../../../../include/c++/13/atomic:297
#6  core::Symbol_O::functionCell (this=0x6) at ../include/clasp/core/symbol.h:335
#7  core::Symbol_O::fboundp (this=0x6) at ../src/core/symbol.cc:389
#8  0x0000000000e27a7e in core::lisp_error (datum=datum@entry=..., arguments=...) at ../src/core/foundation.cc:1360
...

The original version or core::lisp_error:


[[noreturn]] void lisp_error(T_sp datum, T_sp arguments) {
  if (!cl::_sym_error->fboundp()) {
    stringstream ss;
    ss << "Error " << _rep_(datum) << " initializers: " << _rep_(arguments) << std::endl;
    printf("%s:%d lisp_error ->\n %s\n", __FILE__, __LINE__, ss.str().c_str());
    early_debug(nil<T_O>(), false);
  }
  core__apply1(coerce::calledFunctionDesignator(cl::_sym_error), arguments, datum);
  UNREACHABLE();
}

Unconditionally calls cl::sym_error->fboundp() , which eventually calls
calledFunctionDesignator() :

Function_sp calledFunctionDesignator(T_sp obj) {
  if (Function_sp fnobj = obj.asOrNull<Function_O>()) {
    return fnobj;
  } else if (obj.nilp()) {
    ERROR_UNDEFINED_FUNCTION(obj);
  } else if (obj.unboundp()) {
    ERROR_UNDEFINED_FUNCTION(obj);
  } else if (Symbol_sp sym = obj.asOrNull<Symbol_O>()) {
    return sym->symbolFunctionCalled();
  }
  TYPE_ERROR(obj, Cons_O::createList(cl::_sym_or, cl::_sym_function, cl::_sym_Symbol_O));
}

The recursion occurs because the TYPE_ERROR call on line 70 expands to (exceptions.h, line 103) :

#define TYPE_ERROR(_datum_, _expectedType_)                                                                                        \
  ERROR(::cl::_sym_type_error, core::lisp_createList(kw::_sym_datum, _datum_, kw::_sym_expected_type, _expectedType_))

which expands to ERROR, on line 69 of that file :

#define ERROR(_type_, _initializers_) lisp_error(_type_, _initializers_)

which then recurses infinitely .

I can provide many examples of the actual coredump files if desired .

Why the lisp_error(datum, arguments) parameters, which print as :

lisp_error ->
 Error #<UNBOUND> initializers: (NIL NIL)

in my modified recursion-safe version, are not detected as unboundp() or nilp() , and , most importantly,
how they end up being generated during build, is , IMHO, the more interesting question.

How a compilation on Fedora Core 38 under its latest clang + llvm 16.0.6 can end up being so different
to a compilation under your build platform , is also the most overriding question, IMHO .

What OS version + Clang/LLVM version do you normally build under ? Why is the result so different in my case
under FC-38 ?

from clasp.

Bike avatar Bike commented on September 17, 2024

Sorry for the delay, I have lots of other things to work on.

We usually build (and test) on Ubuntu 22.04 (github's ubuntu-latest) and MacOS 14 (github's macos-latest) with LLVM 17. I don't think LLVM should be relevant here since the compiler isn't really involved, but then I don't understand this error to begin with.

The immediate problem in your trace is that it segfaults while trying to load the function cell of a "symbol". That "symbol" is 6, which is not exactly a valid pointer. Given how lisp_error is written, that symbol must be cl:error. For that symbol to not exist, either this error is happening extremely early in startup, or something has broken it.

Have you yet posted an untruncated backtrace? I don't see it. Is it possible for you to get one? This segfault isn't the underlying problem but I don't think I have enough information to guess what the underlying problem is.

As a sidenote, we don't want to prevent all recursive error calls, since it's legitimate to signal an error from within an error handler. But we could make our depth check use a simple thread_local like you have, instead of the dynamic variable binding we're doing currently.

from clasp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.