[Ecls-list] ECL stack overflow in CMP::SIMILAR-CFORM

Samium Gromoff _deepfire at feelingofgreen.ru
Thu Sep 30 19:31:51 UTC 2010


Juan,

compiling a file containing:

(defun bar ()
  (labels ((rec (x)
	     (rec x)))))

(defun foo ()
  (labels ((rec (x)
             (rec x)))))

yields:

$ ecl.exe -eval '(compile-file "../foo.lisp")' -eval '(si:quit)'
;;; Loading #P"d:/usr/src/ecl-bin/cmp.fas"
;;;
;;; Compiling ../foo.lisp.
;;; OPTIMIZE levels: Safety=2, Space=0, Speed=3, Debug=0
;;;
;;; Compiling (DEFUN BAR ...).
;;; Compiling (DEFUN FOO ...).
;;; Internal error:
;;;   in file foo.lisp, position 53
;;;   at (DEFUN FOO ...)
;;;   ** C-STACK overflow at size 557056. Stack can probably be resized.

Experimentation tells that following conditions must hold for the error
to manifest itself:

  - the names of the functions established by LABELS must coincide
  - the bodies of the functions established by LABELS function bodies
    must be the same

Attaching GDB reveals:

#8659 0x697402d1 in LC15similar_c1form (V1=0x1025d80, V2=0x10191c8)     <------------------
    at d:/usr/src/ecl/build/cmp/cmptop.c:1094
#8660 L17similar (V1=0x1025d80, V2=0x10191c8) at d:/usr/src/ecl/build/cmp/cmptop.c:997
#8661 0x6973f96d in L17similar (V1=0x1026b59, V2=0x1024991)
    at d:/usr/src/ecl/build/cmp/cmptop.c:961
#8662 0x697402d1 in LC15similar_c1form (V1=0x1025d68, V2=0x10191b0)     <==================
    at d:/usr/src/ecl/build/cmp/cmptop.c:1094
#8663 L17similar (V1=0x1025d68, V2=0x10191b0) at d:/usr/src/ecl/build/cmp/cmptop.c:997
#8664 0x6973fe44 in LC16similar_fun (V1=0x1025e28, V2=0x1019270)
    at d:/usr/src/ecl/build/cmp/cmptop.c:1041
#8665 L17similar (V1=0x1025e28, V2=0x1019270) at d:/usr/src/ecl/build/cmp/cmptop.c:977
#8666 0x6973f96d in L17similar (V1=0x1026c01, V2=0x1024ae9)
    at d:/usr/src/ecl/build/cmp/cmptop.c:961
#8667 0x697402d1 in LC15similar_c1form (V1=0x1025d80, V2=0x10191c8)     <------------------
    at d:/usr/src/ecl/build/cmp/cmptop.c:1094
#8668 L17similar (V1=0x1025d80, V2=0x10191c8) at d:/usr/src/ecl/build/cmp/cmptop.c:997
#8669 0x6973f96d in L17similar (V1=0x1026b59, V2=0x1024991)
    at d:/usr/src/ecl/build/cmp/cmptop.c:961
#8670 0x697402d1 in LC15similar_c1form (V1=0x1025d68, V2=0x10191b0)     <==================
    at d:/usr/src/ecl/build/cmp/cmptop.c:1094
#8671 L17similar (V1=0x1025d68, V2=0x10191b0) at d:/usr/src/ecl/build/cmp/cmptop.c:997
#8672 0x6973fe44 in LC16similar_fun (V1=0x1025e28, V2=0x1019270)
    at d:/usr/src/ecl/build/cmp/cmptop.c:1041
#8673 L17similar (V1=0x1025e28, V2=0x1019270) at d:/usr/src/ecl/build/cmp/cmptop.c:977
#8674 0x6973f96d in L17similar (V1=0x1026c01, V2=0x1024ae9)
    at d:/usr/src/ecl/build/cmp/cmptop.c:961
#8675 0x697402d1 in LC15similar_c1form (V1=0x1025d80, V2=0x10191c8)     <------------------
    at d:/usr/src/ecl/build/cmp/cmptop.c:1094
#8676 L17similar (V1=0x1025d80, V2=0x10191c8) at d:/usr/src/ecl/build/cmp/cmptop.c:997
#8677 0x6973f96d in L17similar (V1=0x1026b59, V2=0x1024991)
    at d:/usr/src/ecl/build/cmp/cmptop.c:961
#8678 0x697402d1 in LC15similar_c1form (V1=0x1025d68, V2=0x10191b0)     <==================
    at d:/usr/src/ecl/build/cmp/cmptop.c:1094
#8679 L17similar (V1=0x1025d68, V2=0x10191b0) at d:/usr/src/ecl/build/cmp/cmptop.c:997
#8680 0x6973fe44 in LC16similar_fun (V1=0x1025e28, V2=0x1019270)
    at d:/usr/src/ecl/build/cmp/cmptop.c:1041
#8681 L17similar (V1=0x1025e28, V2=0x1019270) at d:/usr/src/ecl/build/cmp/cmptop.c:977
#8682 0x6973f96d in L17similar (V1=0x1026a39, V2=0x1024871)
    at d:/usr/src/ecl/build/cmp/cmptop.c:961
#8683 0x6973f96d in L17similar (V1=0x1026a19, V2=0x1024851)
    at d:/usr/src/ecl/build/cmp/cmptop.c:961
#8684 0x697402d1 in LC15similar_c1form (V1=0x1025cd8, V2=0x1019120)
    at d:/usr/src/ecl/build/cmp/cmptop.c:1094
#8685 L17similar (V1=0x1025cd8, V2=0x1019120) at d:/usr/src/ecl/build/cmp/cmptop.c:997
#8686 0x6973f96d in L17similar (V1=0x1026989, V2=0x10247c1)
    at d:/usr/src/ecl/build/cmp/cmptop.c:961
#8687 0x697402d1 in LC15similar_c1form (V1=0x1025cc0, V2=0x1019108)
    at d:/usr/src/ecl/build/cmp/cmptop.c:1094
#8688 L17similar (V1=0x1025cc0, V2=0x1019108) at d:/usr/src/ecl/build/cmp/cmptop.c:997
#8689 0x697405cc in L11new_defun (narg=2, V1=0x1025f18)
    at d:/usr/src/ecl/build/cmp/cmptop.c:887
#8690 0x697314a4 in L7c1compile_function (narg=3, V1=0x1024221)
    at d:/usr/src/ecl/build/cmp/cmplam.c:418
#8691 0x6973a93d in L6c1function (V1=0x1024209)
    at d:/usr/src/ecl/build/cmp/cmpspecial.c:261
#8692 0x697231b0 in L1c1expr (V1=0x1024211) at d:/usr/src/ecl/build/cmp/cmpeval.c:67
#8693 0x6973dd5e in L37c1fset (V1=0x10241e9) at d:/usr/src/ecl/build/cmp/cmptop.c:2446
#8694 0x697231b0 in L1c1expr (V1=0x10241f1) at d:/usr/src/ecl/build/cmp/cmpeval.c:67
#8695 0x69741c8b in L22t1ordinary (V1=0x10241f1)
    at d:/usr/src/ecl/build/cmp/cmptop.c:1515
#8696 0x697421c8 in L2t1expr_ (V1=0x10241f1) at d:/usr/src/ecl/build/cmp/cmptop.c:125
#8697 0x69722c82 in L10c1progn (V1=0x10241b9) at d:/usr/src/ecl/build/cmp/cmpeval.c:467
#8698 0x697421af in L2t1expr_ (V1=0x10241c1) at d:/usr/src/ecl/build/cmp/cmptop.c:83
#8699 0x69742393 in L2t1expr_ (V1=0x10244e9) at d:/usr/src/ecl/build/cmp/cmptop.c:122
#8700 0x69742685 in L1t1expr (V1=0x10244e9) at d:/usr/src/ecl/build/cmp/cmptop.c:24
#8701 0x6976d2e2 in L27compile_file (narg=1, V1=0xefc4e0)
    at d:/usr/src/ecl/build/cmp/cmpmain.c:1436
#8702 0x640e31e6 in ecl_apply_from_stack_frame (frame=0x22fa10, x=0x6411daa0)
    at d:/usr/src/ecl/src/c/eval.d:56
#8703 0x640e3497 in cl_apply (narg=0, fun=0x6411daa0, lastarg=0x1)
    at d:/usr/src/ecl/src/c/eval.d:163
#8704 0x640487cb in LC3__g3 (narg=1) at d:/usr/src/ecl/build/lsp/autoload.c:75
#8705 0x640b01eb in ecl_interpret (frame=0x22fb94, env=0x1, bytecodes=0xeeab68)
    at d:/usr/src/ecl/src/c/interpreter.d:499
#8706 0x640d2e83 in si_eval_with_env (narg=2, form=0xf0e421)
    at d:/usr/src/ecl/src/c/compiler.d:2893
#8707 0x6400922c in LC19rep (narg=0) at d:/usr/src/ecl/build/clos/top.c:1039
#8708 0x6400ac0b in L24tpl (narg=0) at d:/usr/src/ecl/build/clos/top.c:967
#8709 0x6400baa8 in L1top_level () at d:/usr/src/ecl/build/clos/top.c:47
#8710 0x640b02ad in ecl_interpret (frame=0x22fe84, env=0x1, bytecodes=0xeead20)
    at d:/usr/src/ecl/src/c/interpreter.d:491
#8711 0x640d2e83 in si_eval_with_env (narg=2, form=0xf0ef31)
    at d:/usr/src/ecl/src/c/compiler.d:2893
#8712 0x6400cd11 in si_safe_eval (narg=2, V1=0xf0ef31, V2=0x1)
    at d:/usr/src/ecl/build/clos/top.c:4447
#8713 0x004014ad in ?? ()
#8714 0x004010db in ?? ()
#8715 0x00401178 in ?? ()
#8716 0x7c817067 in RegisterWaitForInputIdle () from C:\WINDOWS\system32\kernel32.dll
#8717 0x00000000 in ?? ()


-- 
regards,
  Samium Gromoff
--
"Actually I made up the term 'object-oriented', and I can tell you I
did not have C++ in mind." - Alan Kay (OOPSLA 1997 Keynote)




More information about the ecl-devel mailing list