diff options
Diffstat (limited to 'src/boot')
-rw-r--r-- | src/boot/parser.boot | 8 | ||||
-rw-r--r-- | src/boot/strap/ast.clisp | 11 | ||||
-rw-r--r-- | src/boot/strap/parser.clisp | 28 | ||||
-rw-r--r-- | src/boot/strap/translator.clisp | 20 |
4 files changed, 49 insertions, 18 deletions
diff --git a/src/boot/parser.boot b/src/boot/parser.boot index 87ade687..8bf5086d 100644 --- a/src/boot/parser.boot +++ b/src/boot/parser.boot @@ -462,10 +462,14 @@ bpModule() == ++ IMPORT QUOTE String bpImport() == bpEqKey "IMPORT" => + a := bpState() bpName() or bpTrap() - bpEqKey "FOR" => + bpEqPeek "COLON" => + bpRestore a (bpSignature() or bpTrap()) and - bpPush ImportSignature(bpPop2(), bpPop1()) + (bpEqKey "FOR" or bpTrap()) and + (bpName() or bpTrap()) and + bpPush ImportSignature(bpPop1(), bpPop1()) bpPush Import bpPop1() false diff --git a/src/boot/strap/ast.clisp b/src/boot/strap/ast.clisp index 8f1b5b77..f5536c0c 100644 --- a/src/boot/strap/ast.clisp +++ b/src/boot/strap/ast.clisp @@ -2206,9 +2206,14 @@ (RETURN (COND ((NULL |t|) |t|) - ((SETQ |t'| (ASSOC (|coreSymbol| |t|) |$NativeTypeTable|)) - (CDR |t'|)) - ('T + ((SETQ |t'| + (CDR (ASSOC (|coreSymbol| |t|) |$NativeTypeTable|))) + (COND + ((AND (EQ |t| '|string|) (|%hasFeature| :SBCL)) + (LIST |t'| :EXTERNAL-FORMAT :ASCII :ELEMENT-TYPE + 'BASE-CHAR)) + (#0='T |t'|))) + (#0# (|fatalError| (CONCAT "unsupported native type: " (SYMBOL-NAME |t|)))))))) diff --git a/src/boot/strap/parser.clisp b/src/boot/strap/parser.clisp index 9cd82f72..baea8792 100644 --- a/src/boot/strap/parser.clisp +++ b/src/boot/strap/parser.clisp @@ -483,16 +483,24 @@ ('T (|bpPush| (|%Module| (|bpPop1|) NIL))))))))) (DEFUN |bpImport| () - (COND - ((|bpEqKey| 'IMPORT) - (PROGN - (OR (|bpName|) (|bpTrap|)) - (COND - ((|bpEqKey| 'FOR) - (AND (OR (|bpSignature|) (|bpTrap|)) - (|bpPush| (|ImportSignature| (|bpPop2|) (|bpPop1|))))) - (#0='T (|bpPush| (|Import| (|bpPop1|))))))) - (#0# NIL))) + (PROG (|a|) + (RETURN + (COND + ((|bpEqKey| 'IMPORT) + (PROGN + (SETQ |a| (|bpState|)) + (OR (|bpName|) (|bpTrap|)) + (COND + ((|bpEqPeek| 'COLON) + (PROGN + (|bpRestore| |a|) + (AND (OR (|bpSignature|) (|bpTrap|)) + (OR (|bpEqKey| 'FOR) (|bpTrap|)) + (OR (|bpName|) (|bpTrap|)) + (|bpPush| + (|ImportSignature| (|bpPop1|) (|bpPop1|)))))) + (#0='T (|bpPush| (|Import| (|bpPop1|))))))) + (#0# NIL))))) (DEFUN |bpTypeAliasDefition| () (AND (OR (|bpTerm| #'|bpIdList|) (|bpTrap|)) (|bpEqKey| 'TDEF) diff --git a/src/boot/strap/translator.clisp b/src/boot/strap/translator.clisp index 4d1f7fb2..c58a80a2 100644 --- a/src/boot/strap/translator.clisp +++ b/src/boot/strap/translator.clisp @@ -93,9 +93,23 @@ (DEFUN |AxiomCore|::|%sysInit| () (DECLARE (SPECIAL |$translatingOldBoot|)) - (COND - ((EQUAL (CDR (ASSOC (|Option| "boot") (|%systemOptions|))) "old") - (SETQ |$translatingOldBoot| T)))) + (PROGN + (SETQ *LOAD-VERBOSE* NIL) + (COND + ((OR (|%hasFeature| :GCL) (|%hasFeature| :ECL)) + (SETF (SYMBOL-VALUE + (|bfColonColon| 'COMPILER '*COMPILE-VERBOSE*)) + NIL) + (SETF (SYMBOL-VALUE + (|bfColonColon| 'COMPILER + 'SUPPRESS-COMPILER-WARNINGS*)) + NIL) + (SETF (SYMBOL-VALUE + (|bfColonColon| 'COMPILER 'SUPPRESS-COMPILER-NOTES*)) + T))) + (COND + ((EQUAL (CDR (ASSOC (|Option| "boot") (|%systemOptions|))) "old") + (SETQ |$translatingOldBoot| T))))) (DECLAIM (FTYPE (FUNCTION (|%Thing|) |%Thing|) |setCurrentPackage|)) |