Opened 3 years ago

Last modified 2 months ago

#353 new defect

Compiling inline recursive function definition exhausts stack

Reported by: mevenson Owned by:
Priority: major Milestone: 1.6.0
Component: compiler Version: 1.4.0-dev
Keywords: has-test cl-prime-maker Cc:
Parent Tickets:

Description

Xiaofeng Yang reports in http://article.gmane.org/gmane.lisp.armedbear.devel/3148:

It seems that cl-prime-maker compiles failed with ABCL because of the
following bug. This bug can also be found in ABCL 1.1.1 (I don't know
whether this bug can be found in 1.1.0 or earlier), not only 1.2.x and
1.3.x.

With the contents of bug-for-abcl.lisp being:

(in-package :cl-user)

(declaim (inline foo))
(defun foo ()
  (foo))

(defun bar ()
  (foo))
$ ~/abcl/abcl
Armed Bear Common Lisp 1.3.0
Java 1.8.0 Oracle Corporation
Java HotSpot(TM) 64-Bit Server VM
Low-level initialization completed in 0.364 seconds.
Startup completed in 1.739 seconds.
Type ":help" for a list of available commands.
CL-USER(1): (compile-file "bug-for-abcl.lisp")
; Compiling /tmp/bug-for-abcl.lisp ...
; (IN-PACKAGE :CL-USER)
; (DECLAIM (INLINE FOO))
; (DEFUN FOO ...)
; (DEFUN BAR ...)
#<THREAD "interpreter" {776DDE2A}>: Debugger invoked on condition of type
STORAGE-CONDITION
  Stack overflow.
Restarts:
  0: TOP-LEVEL Return to top level.
[1] CL-USER(2):

After the stack overflow, if I returned to the top level, remove the line
"(declaim (inline foo))" and COMPILE-FILE again, it also failed. Unless I
restart ABCL and perform COMPILE-FILE with the file without the line
"(declaim (inline foo))", it can be compiled now.

Subtickets (add)

Change History (2)

comment:1 Changed 11 months ago by mevenson

  • Milestone changed from 1.4.0 to 1.5.0

Ticket retargeted after milestone closed

comment:2 Changed 2 months ago by mevenson

  • Milestone changed from 1.5.0 to 1.6.0

Ticket retargeted after milestone closed

Note: See TracTickets for help on using tickets.