[Ecls-list] Error: macro form was not expanded successfully.
Waldek Hebisch
hebisch at math.uni.wroc.pl
Sat Dec 17 16:58:19 UTC 2011
It seems that recent changes to ECL broke FriCAS build.
Below is minimized version of the problem. Create
two files, tttm.lisp and tttf.lisp as below:
---------------<tttm.lisp cut here>------------
(defmacro MUST (dothis &optional (this-is nil) (in-rule nil))
`(or ,dothis (meta-syntax-error ,this-is ,in-rule)))
--------------------<cut here>-----------------
---------------<tttf.lisp cut here>------------
(DEFUN |parse_With| ()
(PROG ()
(RETURN
(COND ((NULL (|match_symbol| '|with|)) NIL)
('T
(PROGN
(MUST (|parse_Category|))
(|push_form1| '|with| (|pop_stack_1|))))))))
--------------------<cut here>-----------------
Then do:
(require :cmp)
(proclaim '(optimize (speed 3) (safety 1)))
(load (compile-file "tttm.lisp"))
(compile-file "tttf.lisp")
which gives me:
;;;
;;; Compiling tttf.lisp.
;;; OPTIMIZE levels: Safety=1, Space=0, Speed=3, Debug=0
;;;
;;; Compiling (DEFUN |parse_With| ...).
;;; Error:
;;; in file tttf.lisp, position 0
;;; at (DEFUN parse_With ...)
;;; * The macro form (MUST (|parse_Category|)) was not expanded successfully.
;;; Error detected:
;;; Detected access to an invalid or protected memory address.
NIL
T
T
That is on 64-bit Core 2 running Debian 6.0.
Note: there is no problem at default optimization level or
if the MUST macro is in the same file.
--
Waldek Hebisch
hebisch at math.uni.wroc.pl
More information about the ecl-devel
mailing list