Changeset 11755


Ignore:
Timestamp:
04/12/09 13:47:04 (14 years ago)
Author:
ehuelsmann
Message:

Implement MACROEXPAND-ALL and COMPILER-LET as internal symbols to
the SYSTEM package for people to experiment with.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/abcl/src/org/armedbear/lisp/precompiler.lisp

    r11725 r11755  
    10191019(in-package #:system)
    10201020
     1021(defun macroexpand-all (form &optional env)
     1022  (let ((*compile-file-environment* env))
     1023    (precompile-form form nil)))
     1024
     1025(defmacro compiler-let (bindings &body forms &environment env)
     1026  (let ((bindings (mapcar #'(lambda (binding)
     1027                              (if (atom binding) (list binding) binding))
     1028                          bindings)))
     1029    (progv (mapcar #'car bindings)
     1030           (mapcar #'(lambda (binding)
     1031                       (eval (cadr binding))) bindings)
     1032      (macroexpand-all `(progn ,@forms) env))))
     1033
    10211034(defun precompile (name &optional definition)
    10221035  (unless definition
Note: See TracChangeset for help on using the changeset viewer.