aboutsummaryrefslogtreecommitdiff
path: root/src/boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/boot')
-rw-r--r--src/boot/parser.boot8
-rw-r--r--src/boot/strap/ast.clisp11
-rw-r--r--src/boot/strap/parser.clisp28
-rw-r--r--src/boot/strap/translator.clisp20
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|))