[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