diff options
author | dos-reis <gdr@axiomatics.org> | 2009-03-08 17:50:45 +0000 |
---|---|---|
committer | dos-reis <gdr@axiomatics.org> | 2009-03-08 17:50:45 +0000 |
commit | 2da25f5f77b5e1b500ced33c51166dff7a43338d (patch) | |
tree | f9c1dcd49c3edead9ea03c7cc2c0b332d35738c6 /src/interp/define.boot | |
parent | 4eff9ac27bbd21e51053b5366558c18e561ae0fd (diff) | |
download | open-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.boot | 5 |
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) |