aboutsummaryrefslogtreecommitdiff
path: root/src/interp/vmlisp.lisp
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2009-03-08 17:50:45 +0000
committerdos-reis <gdr@axiomatics.org>2009-03-08 17:50:45 +0000
commit2da25f5f77b5e1b500ced33c51166dff7a43338d (patch)
treef9c1dcd49c3edead9ea03c7cc2c0b332d35738c6 /src/interp/vmlisp.lisp
parent4eff9ac27bbd21e51053b5366558c18e561ae0fd (diff)
downloadopen-axiom-2da25f5f77b5e1b500ced33c51166dff7a43338d.tar.gz
* interp/fnewmeta.lisp (PARSE-Import): Parse extern entity
signature import. * interp/functor.boot (encodeLocalFunctionName): New. * interp/define.boot (compDefine1): Avoid getAbbreviation. (doIt): Handle %SignatureImport nodes. * interp/compiler.boot (emitLocalCallInsn): New. (applyMapping): Use it. (compApplication): Likewise. (bootDenotation): New. (getBasicFFIType): Likewise. (getFFIDatatype): Likewise. (getBootType): Likewise. (checkExternalEntityType): Likewise. (checkExternalEntity): Likewise. (removeModifiers): Likewise. (compSignatureImport): Likewise. * interp/vmlisp.lisp (|compileLispDefinition|): New. * interp/boot-pkg.lisp: Import genImportDeclaration. * boot/initial-env.lisp: Export genImportDeclaration. * boot/ast.boot: Tidy. Accept `readwrite' modifier.
Diffstat (limited to 'src/interp/vmlisp.lisp')
-rw-r--r--src/interp/vmlisp.lisp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/interp/vmlisp.lisp b/src/interp/vmlisp.lisp
index f3b49f6a..d47b763c 100644
--- a/src/interp/vmlisp.lisp
+++ b/src/interp/vmlisp.lisp
@@ -637,6 +637,10 @@
#+:CCL (proclaim '(special *vars* *decl*)) ;; declare not handled right
+(defun |compileLispDefinition| (name def)
+ (when *COMP370-APPLY*
+ (funcall *COMP370-APPLY* name def)))
+
(defun COMPILE1 (fn)
(let* (nargs
(fname (car fn))
@@ -664,7 +668,7 @@
(setq body
(cond ((eq ltype 'lambda) `(defun ,fname ,nargs . ,body))
((eq ltype 'mlambda) `(defmacro ,fname ,nargs . ,body))))
- (if *COMP370-APPLY* (funcall *COMP370-APPLY* fname body))
+ (|compileLispDefinition| fname body)
body))