aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog11
-rw-r--r--src/interp/i-toplev.boot3
-rw-r--r--src/interp/int-top.boot5
-rw-r--r--src/interp/msg.boot1
-rw-r--r--src/interp/sys-driver.boot11
5 files changed, 22 insertions, 9 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 9159ff43..217b1308 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,14 @@
+2009-04-15 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ Fix SF/2760823
+ * interp/sys-driver.boot (systemMain): Explicitly call toplevel
+ REPL for SBCL- and ECL-based builds.
+ * interp/i-toplev.boot (start): Don't special case SBCL here.
+ * interp/int-top.boot (spad): Likewise.
+ (intloop): Tidy call to SpadInterpretStream.
+ (SpadInterpretStream): Don't store to $fn.
+ * interp/msg.boot (toFile?): Don't check for $fn.
+
2009-04-14 Gabriel Dos Reis <gdr@cs.tamu.edu>
Fix SF/2760553
diff --git a/src/interp/i-toplev.boot b/src/interp/i-toplev.boot
index 83c20e8d..f0d2204c 100644
--- a/src/interp/i-toplev.boot
+++ b/src/interp/i-toplev.boot
@@ -1,6 +1,6 @@
-- Copyright (c) 1991-2002, The Numerical Algorithms Group Ltd.
-- All rights reserved.
--- Copyright (C) 2007-2008, Gabriel Dos Reis.
+-- Copyright (C) 2007-2009, Gabriel Dos Reis.
-- All rights reserved.
--
-- Redistribution and use in source and binary forms, with or without
@@ -108,7 +108,6 @@ start(:l) ==
$OLDLINE := NIL
$superHash := MAKE_-HASHTABLE('UEQUAL)
if null l then runspad()
- %hasFeature KEYWORD::SBCL => 0
'EndOfSpad
readSpadProfileIfThere() ==
diff --git a/src/interp/int-top.boot b/src/interp/int-top.boot
index 9b1d7f10..949b3241 100644
--- a/src/interp/int-top.boot
+++ b/src/interp/int-top.boot
@@ -78,7 +78,6 @@ spad() ==
$inLispVM : local := nil
setOutputAlgebra "%initialize%"
runspad()
- %hasFeature KEYWORD::SBCL => 0
'EndOfSpad
runspad() ==
@@ -110,12 +109,10 @@ intloop () ==
mode := $intRestart
while mode = $intRestart repeat
resetStackLimits()
- mode := CATCH($intTopLevel,
- SpadInterpretStream(1, ["TIM", "DALY", "?"], true))
+ mode := CATCH($intTopLevel, SpadInterpretStream(1, nil, true))
SpadInterpretStream(str, source, interactive?) ==
- $fn : local := source
pile? := not interactive?
$libQuiet : local := not interactive?
diff --git a/src/interp/msg.boot b/src/interp/msg.boot
index af1532f9..60d2e2f6 100644
--- a/src/interp/msg.boot
+++ b/src/interp/msg.boot
@@ -337,7 +337,6 @@ msgOutputter msg ==
toScreen? msg == getMsgToWhere msg ^= 'fileOnly
toFile? msg ==
- PAIRP $fn and _
getMsgToWhere msg ^= 'screenOnly
diff --git a/src/interp/sys-driver.boot b/src/interp/sys-driver.boot
index ffe4af23..b4d23d29 100644
--- a/src/interp/sys-driver.boot
+++ b/src/interp/sys-driver.boot
@@ -288,7 +288,7 @@ installDriver(Option '"build-databases",function buildDatabasesHandler)
--%
-++ Main entry point to the system.
+++ Main entry point to the interactive system.
systemMain() ==
IN_-PACKAGE '"BOOT" -- ??? is this still necessary?
-- ??? Ideally, we should not be calling AxiomCore::topLevel.
@@ -301,5 +301,12 @@ systemMain() ==
if $StandardLinking then
initializeGlobalState()
$leanMode := getOptionValue "mode" = '"lean"
- %basicSystemIsComplete() => restart()
+ %basicSystemIsComplete() =>
+ restart()
+)if %hasFeature KEYWORD::ECL
+ SI::_*LISP_-INITIALIZED_* : local := true
+ apply($originalLispTopLevel,nil)
+)elseif %hasFeature KEYWORD::SBCL
+ apply($originalLispTopLevel,nil)
+)endif
fatalError '"fell off systemMain"