[Ecls-list] Bug in asdf:make-build

Mark Voortman mark at voortman.name
Sun Feb 11 04:55:59 UTC 2007


It seems that compiling an ASDF package with make-build only works when
the package doesn't have any other packages that it depends on. An ASDF
package with dependencies will compile, but when running the executable it
says 'Frame stack overflow' and then enters the toplevel. The steps to
reproduce the problem can be found below. I am running all this on a x86
with OpenBSD 4.0 and ECL 0.9i. Does anyone know how to fix this?



Create the following files:

=== mjv.asd ===
(defpackage :mjv-system (:use :asdf :cl))
(in-package :mjv-system)

(defsystem mjv
  :name "mjv"
  :serial t
  :depends-on ("dependency")
  ((:file "test")))

=== test.lisp ===
(in-package :cl-user)

(defpackage :mjv
  (:use :cl)
  (:export :main))

(in-package :mjv)

(defun main ()
  (format t "hello world~%")

=== dependency.asd ===
(defpackage :dependency-system (:use :asdf :cl))
(in-package :dependency-system)

(defsystem dependency
  :name "dependency"
  :serial t
  ((:file "dependency")))

=== dependency.lisp ===
(in-package :cl-user)

(defpackage :dependency
  (:use :cl)
  (:export :test))

(in-package :dependency)

(defun test ()
  (format t "dependency~%"))

=== compile.lisp ===
(require 'asdf)

(setf *load-verbose* nil)
(setf asdf:*central-registry* '(*default-pathname-defaults* #P"./"))
(asdf:make-build :mjv :type :program
                 :args (list :ld-flags '("-L./"))
                 :epilogue-code '(mjv::main))

And then run: ecl -load compile.lisp. The resulting executable will be mjv
and when executed it will show an error and enter the toplevel.

More information about the ecl-devel mailing list