Artifact 835170652dd4d7f2eb56d3f7439b64431f25b0a48b7392e49879963aa776fecf:
- Executable file
r37/packages/support/build.red
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 2011) [annotate] [blame] [check-ins using] [more...]
- Executable file
r38/packages/support/build.red
— part of check-in
[f2fda60abd]
at
2011-09-02 18:13:33
on branch master
— Some historical releases purely for archival purposes
git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/trunk/historical@1375 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 2011) [annotate] [blame] [check-ins using]
% module build; % Code to help with bootstrapping REDUCE from Lisp. % Author: Anthony C. Hearn. % The baroque syntax in this file is a consequence of the bootstrapping % process. global '(loaded!-packages!* oldchan!*); % Since some of the early modules may have tabs in them, we must redefine % seprp. symbolic procedure seprp u; or(eq(u,'! ),eq(u,'! ),eq(u,!$eol!$)); symbolic procedure concat2(u,v); % This would be better supported at a lower level. compress('!" . append(explode2 u,nconc(explode2 v,list '!"))); symbolic procedure string!-downcase u; % This definition is designed to overcome bootstrapping difficulties % in the various Lisps used. begin scalar y,z; if null stringp u then u := '!" . append(explode2 u,'(!")) else u := explode u; a: if null u then return compress reverse z; y := atsoc(car u, '((A . "a") (B . "b") (C . "c") (D . "d") (E . "e") (F . "f") (G . "g") (H . "h") (I . "i") (J . "j") (K . "k") (L . "l") (M . "m") (N . "n") (O . "o") (P . "p") (Q . "q") (R . "r") (S . "s") (T . "t") (U . "u") (V . "v") (W . "w") (X . "x") (Y . "y") (Z . "z"))); if y then z := car explode2 cdr y . z else z := car u . z; u := cdr u; go to a end; symbolic procedure mod2file(u,v); concat2("$reduce/packages/",concat2(string!-downcase v, concat2("/",concat2(string!-downcase u,".red")))); symbolic procedure inmodule(u,v); begin u := open(mod2file(u,v),'input); v := rds u; cursym!* := '!*semicol!*; a: if eq(cursym!*,'end) then return progn(rds v, close u); prin2 eval form xread nil; go to a; end; symbolic procedure load!-package!-sources(u,v); begin scalar !*int,!*echo,w; inmodule(u,v); if (w := get(u,'package)) then w := cdr w; a: if w then progn(inmodule(car w,v), w := cdr w, go to a); loaded!-packages!* := u . loaded!-packages!*; end; % endmodule; end;