1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- % Build a CSL REDUCE "in core" as first stage of a bootstrap. To be
- % run starting from a cold-start CSL, i.e. with the -z option.
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %
- % smallred -z dbuild.lsp -l dbuild.log
- %
- % where this job rebuilds a bootstrap REDUCE etc etc from scratch
- %
- % This file first builds REDUCE, it then makes a set of FASL modules
- % for auto-loadable parts of the system, compiles a load of Lisp into
- % C and processes the Lisp interface code generated in the process.
- %
- % Here I build modules for all the things that will be included in the
- % demonstration version of REDUCE, and all the parts of the code that
- % will be subject to compilation into C.
- %
- % Author: Anthony C. Hearn.
- % Modifications by Stanley L. Kameny and Arthur Norman
- (verbos 3)
- (rdf "$reduce/lisp/csl/cslbase/compat.lsp")
- (rdf "$reduce/lisp/csl/cslbase/extras.lsp")
- (rdf "$reduce/lisp/csl/cslbase/compiler.lsp")
- % Now be brave and compile the compiler - I hand-compile the
- % most speed-critical functions first
- (compile '(s!:resolve!_labels s!:plant!_basic!_block s!:tidy!_flowgraph
- s!:endprocedure s!:outopcode1 s!:outjump s!:findliteral
- s!:destination!_label s!:compile1 s!:outoperation
- s!:add!_pending s!:iseasy s!:set!_label s!:outextend
- s!:start!_procedure s!:outexit))
- (compile!-all)
- % Finally build fasl files for the compatibility code and the two
- % versions of the compiler.
- (faslout 'compat)
- (rdf "$reduce/lisp/csl/cslbase/compat.lsp")
- (rdf "$reduce/lisp/csl/cslbase/extras.lsp")
- (faslend)
- (faslout 'compiler)
- (rdf "$reduce/lisp/csl/cslbase/compiler.lsp")
- (faslend)
- (faslout 'ccomp)
- (rdf "$reduce/lisp/csl/cslbase/ccomp.lsp")
- (faslend)
- (de concat (u v)
- (compress (cons '!" (append (explode2 u)
- (nconc (explode2 v) (list '!"))))))
- (global '(oldchan!*))
- (setq prolog_file 'cslprolo)
- (setq rend_file 'cslrend)
- (setq oldchan2!*
- (rds (setq oldchan!* (open "$reduce/packages/support/dbuild2.sl" 'input))))
- % CSL independent code.
- (close oldchan!*)
- (setq !*savedef nil)
- (begin)
- symbolic;
- faslout "remake";
- in "$reduce/packages/support/remake.red"$
- faslend;
- << initreduce();
- date!* := "Bootstrap version";
- % I call mapstore() here to reset all counts to zero,
- % thereby making future statistics at least marginally meaningful!
- mapstore 4;
- !*savedef := nil;
- preserve 'begin >>;
- % End of dbuild.lsp.
|