From 40777fd4db18e8656ae53dd4df9112b42df329db Mon Sep 17 00:00:00 2001 From: dos-reis Date: Sat, 16 Aug 2008 02:07:12 +0000 Subject: * lisp/core.lisp.in (|%basicSystemIsComplete|): New. Export. (|link|): Use prologue for all systems. * interp/sys-driver.boot (systemMain): New. Break from restart(). (restart): Tidy. * interp/boot-pkg.lisp: Don't push :OPEN-AXIOM-BOOT-COMPLETE. --- src/interp/Makefile.in | 9 +++++---- src/interp/Makefile.pamphlet | 9 +++++---- src/interp/boot-pkg.lisp | 4 ---- src/interp/sys-driver.boot | 23 ++++++++++++++++------- src/interp/types.boot | 4 ++++ 5 files changed, 30 insertions(+), 19 deletions(-) (limited to 'src/interp') diff --git a/src/interp/Makefile.in b/src/interp/Makefile.in index 72fe016a..a0aa0311 100644 --- a/src/interp/Makefile.in +++ b/src/interp/Makefile.in @@ -190,8 +190,7 @@ makeint.lisp: Makefile @ echo '(in-package "BOOT")' >> makeint.lisp @ touch ${TIMESTAMP} @ echo '${YEARWEEK}' >> makeint.lisp - @ echo '(build-interpsys (quote ($(patsubst %, "%", ${TRANOBJS}))) (quote ($(patsubst %, "%", ${ASAUTO}))))' >> makeint.lisp - @ echo '(|clearClams|)' >> makeint.lisp + @ echo '(unless (|%basicSystemIsComplete|) (build-interpsys (quote ($(patsubst %, "%", ${TRANOBJS}))) (quote ($(patsubst %, "%", ${ASAUTO}))))(|clearClams|))' >> makeint.lisp @ echo '#+:akcl (setq compiler::*suppress-compiler-notes* t)' >> makeint.lisp @ echo '#+:akcl (si::gbc-time 0)' >> makeint.lisp @ echo '#+:GCL (si::gbc t)' >> makeint.lisp @@ -202,7 +201,8 @@ ${SAVESYS}: database.date \ $(ASAUTO) $(TRANOBJS) $(OBJS) makeint.$(LNKEXT) $(BOOTSYS) -- --system="$(AXIOM)/" --system-algebra \ --sysalg="$(axiom_src_datadir)/algebra/" \ - --make --output=$@ --main="BOOT::|restart|" \ + --prologue="(pushnew :open-axiom-basic-system *features*)" \ + --make --output=$@ --main="BOOT::|systemMain|" \ --load-directory=. $(OBJS) makeint.$(LNKEXT) @ echo 6 $@ created $(mkdir_p) $(axiom_target_bindir) @@ -217,7 +217,8 @@ ${AXIOMSYS}: database.date \ $(BOOTSYS) -- \ --system="$(AXIOM)/" \ --sysalg="$(axiom_targetdir)/algebra/" \ - --make --output=$@ --main="BOOT::|restart|" \ + --prologue="(pushnew :open-axiom-basic-system *features*)" \ + --make --output=$@ --main="BOOT::|systemMain|" \ --load-directory=. $(OBJS) makeint.$(LNKEXT) @ echo 6a $@ created exposed.lsp: $(axiom_src_algdir)/exposed.lsp.pamphlet diff --git a/src/interp/Makefile.pamphlet b/src/interp/Makefile.pamphlet index e7d373d0..d0eccf14 100644 --- a/src/interp/Makefile.pamphlet +++ b/src/interp/Makefile.pamphlet @@ -343,8 +343,7 @@ makeint.lisp: Makefile @ echo '(in-package "BOOT")' >> makeint.lisp @ touch ${TIMESTAMP} @ echo '${YEARWEEK}' >> makeint.lisp - @ echo '(build-interpsys (quote ($(patsubst %, "%", ${TRANOBJS}))) (quote ($(patsubst %, "%", ${ASAUTO}))))' >> makeint.lisp - @ echo '(|clearClams|)' >> makeint.lisp + @ echo '(unless (|%basicSystemIsComplete|) (build-interpsys (quote ($(patsubst %, "%", ${TRANOBJS}))) (quote ($(patsubst %, "%", ${ASAUTO}))))(|clearClams|))' >> makeint.lisp @ echo '#+:akcl (setq compiler::*suppress-compiler-notes* t)' >> makeint.lisp @ echo '#+:akcl (si::gbc-time 0)' >> makeint.lisp @ echo '#+:GCL (si::gbc t)' >> makeint.lisp @@ -355,7 +354,8 @@ ${SAVESYS}: database.date \ $(ASAUTO) $(TRANOBJS) $(OBJS) makeint.$(LNKEXT) $(BOOTSYS) -- --system="$(AXIOM)/" --system-algebra \ --sysalg="$(axiom_src_datadir)/algebra/" \ - --make --output=$@ --main="BOOT::|restart|" \ + --prologue="(pushnew :open-axiom-basic-system *features*)" \ + --make --output=$@ --main="BOOT::|systemMain|" \ --load-directory=. $(OBJS) makeint.$(LNKEXT) @ echo 6 $@ created $(mkdir_p) $(axiom_target_bindir) @@ -380,7 +380,8 @@ ${AXIOMSYS}: database.date \ $(BOOTSYS) -- \ --system="$(AXIOM)/" \ --sysalg="$(axiom_targetdir)/algebra/" \ - --make --output=$@ --main="BOOT::|restart|" \ + --prologue="(pushnew :open-axiom-basic-system *features*)" \ + --make --output=$@ --main="BOOT::|systemMain|" \ --load-directory=. $(OBJS) makeint.$(LNKEXT) @ echo 6a $@ created @ diff --git a/src/interp/boot-pkg.lisp b/src/interp/boot-pkg.lisp index 0cf0aa1b..5cb96d12 100644 --- a/src/interp/boot-pkg.lisp +++ b/src/interp/boot-pkg.lisp @@ -53,10 +53,6 @@ (defun define-function (f v) (setf (symbol-function f) v))) -;; The Boot system is certainly completed by now. -(pushnew :open-axiom-boot-complete *features*) - - ;; Below are some missing functions. There here for lack of better ;; place (sys-funs.lisp?) ;; diff --git a/src/interp/sys-driver.boot b/src/interp/sys-driver.boot index f620ea09..e64c42d7 100644 --- a/src/interp/sys-driver.boot +++ b/src/interp/sys-driver.boot @@ -1,5 +1,7 @@ -- Copyright (C) 2007-2008 Gabriel Dos Reis -- All rights reserved. +-- Copyright (C) 2007-2008, Gabriel Dos Reis. +-- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without -- modification, are permitted provided that the following conditions are @@ -149,13 +151,6 @@ RESTART0() == ++ restart() == - IN_-PACKAGE '"BOOT" -- ??? is this still necessary? - -- ??? Ideally, we should not be calling AxiomCore::topLevel. - -- ??? Rather, we should be called by that function. Therefore - -- ??? it currently serves only for option processing and we cannot - -- ??? do any substantial work if we call from it. - AxiomCore::topLevel() - REROOT() )if %hasFeature KEYWORD::GCL SYSTEM::GBC_-TIME 0 )endif @@ -234,3 +229,17 @@ buildDatabasesHandler(prog,options,args) == coreQuit(errorCount() > 0 => 1; 0) installDriver(Option '"build-databases",function buildDatabasesHandler) + +--% + +++ Main entry point to the system. +systemMain() == + IN_-PACKAGE '"BOOT" -- ??? is this still necessary? + -- ??? Ideally, we should not be calling AxiomCore::topLevel. + -- ??? Rather, we should be called by that function. Therefore + -- ??? it currently serves only for option processing and we cannot + -- ??? do any substantial work if we call from it. + AxiomCore::topLevel() + REROOT() + %basicSystemIsComplete() => restart() + fatalError '"fell off systemMain" diff --git a/src/interp/types.boot b/src/interp/types.boot index 2ebd6f5b..748e5070 100644 --- a/src/interp/types.boot +++ b/src/interp/types.boot @@ -113,8 +113,12 @@ namespace BOOT %Env <=> %List -- compiling env %Mode <=> %Symbol or %String or %List -- type of forms %Code <=> %Form -- generated code +)if %hasFeature KEYWORD::ECL +%Triple <=> %List -- ??? ECL has trouble with the spec below +)else %Triple <=> -- form + type + env cons(%Code,cons(%Mode,cons(%Env,null))) +)endif %Signature -- signature <=> %Symbol or cons -- cgit v1.2.3