aboutsummaryrefslogtreecommitdiff
path: root/src/interp/define.boot
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/define.boot
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/define.boot')
-rw-r--r--src/interp/define.boot5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/interp/define.boot b/src/interp/define.boot
index 6a2aecbb..42414d08 100644
--- a/src/interp/define.boot
+++ b/src/interp/define.boot
@@ -299,7 +299,7 @@ compDefine1(form,m,e) ==
null $form => stackAndThrow ['"bad == form ",form]
newPrefix:=
$prefix => INTERN STRCONC(encodeItem $prefix,'",",encodeItem $op)
- getAbbreviation($op,#rest $form)
+ getConstructorAbbreviationFromDB $op
compDefineCapsuleFunction(form,m,e,newPrefix,$formalArgList)
compDefineAddSignature([op,:argl],signature,e) ==
@@ -1492,6 +1492,9 @@ doIt(item,$predl) ==
item is ["%Inline",type] =>
processInlineRequest(type,$e)
mutateToNothing item
+ item is ["%SignatureImport",:.] =>
+ [.,.,$e] := compSignatureImport(item,$EmptyMode,$e)
+ mutateToNothing item
item is ["IF",:.] => doItIf(item,$predl,$e)
item is ["where",b,:l] => compOrCroak(item,$EmptyMode,$e)
item is ["MDEF",:.] => [.,.,$e]:= compOrCroak(item,$EmptyMode,$e)