build2.red 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768
  1. %
  2. % smallr35 -I- -Ofullimage build2.red
  3. %
  4. % Make some modules in a file called "fullimage" so that REDUCE can be
  5. % built from them. These are things that will be pre-loaded into the
  6. % main image and so their FASL modules will not be needed once the
  7. % proper image has been built, plus things where the modules will be
  8. % copied into the final production image. In this build job I restart
  9. % CSL/REDUCE after I compile each module - this guarantees that inter-
  10. % module conflicts can not hurt the compilation. It is unfortunate that
  11. % at present many modules instate definitions or properties that are
  12. % incompatible with building others.
  13. %
  14. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  15. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  16. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  17. % You may wonder what all the "remflag('(xxx), 'lose)" statements
  18. % here are. Well, they are used when some optionally loaded module
  19. % redefines functions that are part of the base system. In CSL (at least)
  20. % if those functions were important they were migrated into the CSL kernel
  21. % and flagged LOSE. So without the explicit REMFLAGs here the new
  22. % definitions required would not get instantiated.
  23. %
  24. % NOTE VERY WELL
  25. % If any of the source files are changed here so that they re-define
  26. % other functions then the code here MUST be changed to reflect that
  27. % fact. I hope very much that changes will in fact go in the other
  28. % direction so that eventually NO functions in REDUCE are given
  29. % multiple definitions.
  30. %
  31. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  32. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  33. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  34. symbolic;
  35. !*savedef := nil;
  36. copy!-module 'compat;
  37. copy!-module 'compiler;
  38. copy!-module 'ccomp;
  39. faslout 'user;
  40. rdf "u01.lsp"$
  41. rdf "u02.lsp"$
  42. rdf "u03.lsp"$
  43. rdf "u04.lsp"$
  44. rdf "u05.lsp"$
  45. rdf "u06.lsp"$
  46. rdf "u07.lsp"$
  47. rdf "u08.lsp"$
  48. rdf "u09.lsp"$
  49. rdf "u10.lsp"$
  50. rdf "u11.lsp"$
  51. rdf "u12.lsp"$
  52. faslend;
  53. in "../cslsrc/patches.red"$
  54. symbolic procedure c!:install(name, env);
  55. flag(list name, 'lose);
  56. load!-module 'user;
  57. faslout 'module;
  58. in "../src/module.red"$
  59. module 'cslpatch;
  60. % Support for patching REDUCE 3.5 sources.
  61. % This adjusted version is needed if patching is to work properly with
  62. % CSL. The only changes are two replacements for calls to gensym().
  63. symbolic procedure patchstat;
  64. % Read a patch for a given package.
  65. begin scalar !*mode,u,v,x,y,z,z2;
  66. x := scan(); % Package name.
  67. scan(); % Remove semicolon.
  68. a: !*mode := 'symbolic;
  69. y := xread nil;
  70. if eqcar(y,'symbolic) then y := cadr y
  71. else if flagpcar(y,'modefn)
  72. then progn(!*mode := car y, y := cadr y);
  73. if eq(y,'endpatch)
  74. then progn(u := dated!-name x,
  75. z2 := list('de,u,nil,'progn . reversip z) . z2,
  76. z2 := list('put,mkquote x,mkquote 'patchfn,mkquote u)
  77. . z2,
  78. return ('patch . reversip z2))
  79. else if eqcar(y,'procedure)
  80. then progn(v := cadr y,
  81. u := hashtagged!-name(v, y),
  82. z := list('copyd,mkquote v,mkquote u) . z,
  83. z2 := convertmode(('procedure . u . cddr y),nil,
  84. 'symbolic,!*mode)
  85. . z2)
  86. else z := convertmode(y,nil,'symbolic,!*mode) . z;
  87. go to a;
  88. end;
  89. put('patch,'stat,'patchstat);
  90. endmodule;
  91. faslend;
  92. restart!-csl t;
  93. symbolic;
  94. symbolic procedure c!:install(name, env);
  95. flag(list name, 'lose);
  96. load!-module 'user;
  97. faslout 'cslprolo;
  98. in "../cslsrc/cslprolo.red"$
  99. faslend;
  100. restart!-csl t;
  101. symbolic;
  102. symbolic procedure c!:install(name, env);
  103. flag(list name, 'lose);
  104. load!-module 'user;
  105. faslout 'patches;
  106. in "../cslsrc/patches.red"$
  107. faslend;
  108. restart!-csl t;
  109. symbolic; load!-module 'patches;
  110. symbolic procedure c!:install(name, env);
  111. flag(list name, 'lose);
  112. load!-module 'user;
  113. faslout 'rlisp;
  114. in "../src/rlisp.red"$
  115. faslend;
  116. restart!-csl t;
  117. symbolic; load!-module 'patches;
  118. symbolic procedure c!:install(name, env);
  119. flag(list name, 'lose);
  120. load!-module 'user;
  121. faslout 'cslrend;
  122. in "../cslsrc/cslrend.red"$
  123. faslend;
  124. restart!-csl t;
  125. symbolic; load!-module 'patches;
  126. symbolic procedure c!:install(name, env);
  127. flag(list name, 'lose);
  128. load!-module 'user;
  129. faslout 'poly;
  130. in "../src/poly.red"$
  131. faslend;
  132. restart!-csl t;
  133. symbolic; load!-module 'patches;
  134. symbolic procedure c!:install(name, env);
  135. flag(list name, 'lose);
  136. load!-module 'user;
  137. faslout 'alg;
  138. in "../src/alg.red"$
  139. faslend;
  140. restart!-csl t;
  141. symbolic; load!-module 'patches;
  142. symbolic procedure c!:install(name, env);
  143. flag(list name, 'lose);
  144. load!-module 'user;
  145. faslout 'mathpr;
  146. in "../src/mathpr.red"$
  147. faslend;
  148. restart!-csl t;
  149. symbolic; load!-module 'patches;
  150. symbolic procedure c!:install(name, env);
  151. flag(list name, 'lose);
  152. load!-module 'user;
  153. faslout 'arith;
  154. in "../src/arith.red"$
  155. faslend;
  156. restart!-csl t;
  157. symbolic; load!-module 'patches;
  158. symbolic procedure c!:install(name, env);
  159. flag(list name, 'lose);
  160. load!-module 'user;
  161. faslout 'cslentry;
  162. in "../cslsrc/cslentry.red"$
  163. faslend;
  164. %
  165. % The ones that follow will be copied are FASL files into the final image
  166. %
  167. restart!-csl t;
  168. symbolic; load!-module 'patches;
  169. symbolic procedure c!:install(name, env);
  170. flag(list name, 'lose);
  171. load!-module 'user;
  172. faslout 'matrix;
  173. in "../src/matrix.red"$
  174. faslend;
  175. restart!-csl t;
  176. symbolic; load!-module 'patches;
  177. symbolic procedure c!:install(name, env);
  178. flag(list name, 'lose);
  179. load!-module 'user;
  180. faslout 'hephys;
  181. in "../src/hephys.red"$
  182. faslend;
  183. restart!-csl t;
  184. symbolic; load!-module 'patches;
  185. symbolic procedure c!:install(name, env);
  186. flag(list name, 'lose);
  187. load!-module 'user;
  188. remflag('(glsolterm mkglsol), 'lose);
  189. faslout 'arnum;
  190. in "../src/arnum.red"$
  191. faslend;
  192. restart!-csl t;
  193. symbolic; load!-module 'patches;
  194. symbolic procedure c!:install(name, env);
  195. flag(list name, 'lose);
  196. load!-module 'user;
  197. faslout 'cedit;
  198. in "../src/cedit.red"$
  199. faslend;
  200. restart!-csl t;
  201. symbolic; load!-module 'patches;
  202. symbolic procedure c!:install(name, env);
  203. flag(list name, 'lose);
  204. load!-module 'user;
  205. faslout 'compact;
  206. in "../src/compact.red"$
  207. faslend;
  208. restart!-csl t;
  209. symbolic; load!-module 'patches;
  210. symbolic procedure c!:install(name, env);
  211. flag(list name, 'lose);
  212. load!-module 'user;
  213. remflag('(clear oddp), 'lose);
  214. faslout 'excalc;
  215. in "../src/excalc.red"$
  216. faslend;
  217. restart!-csl t;
  218. symbolic; load!-module 'patches;
  219. symbolic procedure c!:install(name, env);
  220. flag(list name, 'lose);
  221. load!-module 'user;
  222. faslout 'ezgcd;
  223. in "../src/ezgcd.red"$
  224. faslend;
  225. restart!-csl t;
  226. symbolic; load!-module 'patches;
  227. symbolic procedure c!:install(name, env);
  228. flag(list name, 'lose);
  229. load!-module 'user;
  230. faslout 'factor;
  231. in "../src/factor.red"$
  232. faslend;
  233. restart!-csl t;
  234. symbolic; load!-module 'patches;
  235. symbolic procedure c!:install(name, env);
  236. flag(list name, 'lose);
  237. load!-module 'user;
  238. faslout 'gentran;
  239. in "../src/gentran.red"$
  240. faslend;
  241. restart!-csl t;
  242. symbolic; load!-module 'patches;
  243. symbolic procedure c!:install(name, env);
  244. flag(list name, 'lose);
  245. load!-module 'user;
  246. faslout 'dipoly;
  247. in "../src/dipoly.red"$
  248. faslend;
  249. restart!-csl t;
  250. symbolic; load!-module 'patches;
  251. symbolic procedure c!:install(name, env);
  252. flag(list name, 'lose);
  253. load!-module 'user;
  254. remflag('(subsetp), 'lose);
  255. faslout 'groebner;
  256. in "../src/groebner.red"$
  257. faslend;
  258. restart!-csl t;
  259. symbolic; load!-module 'patches;
  260. symbolic procedure c!:install(name, env);
  261. flag(list name, 'lose);
  262. load!-module 'user;
  263. faslout 'groebnr2;
  264. in "../src/groebnr2.red"$
  265. faslend;
  266. restart!-csl t;
  267. symbolic; load!-module 'patches;
  268. symbolic procedure c!:install(name, env);
  269. flag(list name, 'lose);
  270. load!-module 'user;
  271. faslout 'int;
  272. in "../src/int.red"$
  273. faslend;
  274. restart!-csl t;
  275. symbolic; load!-module 'patches;
  276. symbolic procedure c!:install(name, env);
  277. flag(list name, 'lose);
  278. load!-module 'user;
  279. remflag('(subsetp), 'lose);
  280. faslout 'algint;
  281. in "../src/algint.red"$
  282. faslend;
  283. restart!-csl t;
  284. symbolic; load!-module 'patches;
  285. symbolic procedure c!:install(name, env);
  286. flag(list name, 'lose);
  287. load!-module 'user;
  288. faslout 'pretty;
  289. in "../src/pretty.red"$
  290. faslend;
  291. restart!-csl t;
  292. symbolic; load!-module 'patches;
  293. symbolic procedure c!:install(name, env);
  294. flag(list name, 'lose);
  295. load!-module 'user;
  296. faslout 'rcref;
  297. in "../src/rcref.red"$
  298. faslend;
  299. restart!-csl t;
  300. symbolic; load!-module 'patches;
  301. symbolic procedure c!:install(name, env);
  302. flag(list name, 'lose);
  303. load!-module 'user;
  304. faslout 'numeric;
  305. in "../src/numeric.red"$
  306. faslend;
  307. restart!-csl t;
  308. symbolic; load!-module 'patches;
  309. symbolic procedure c!:install(name, env);
  310. flag(list name, 'lose);
  311. load!-module 'user;
  312. faslout 'roots;
  313. in "../src/roots.red"$
  314. faslend;
  315. restart!-csl t;
  316. symbolic; load!-module 'patches;
  317. symbolic procedure c!:install(name, env);
  318. flag(list name, 'lose);
  319. load!-module 'user;
  320. remflag('(rprint), 'lose);
  321. faslout 'rprint;
  322. in "../src/rprint.red"$
  323. faslend;
  324. restart!-csl t;
  325. symbolic; load!-module 'patches;
  326. symbolic procedure c!:install(name, env);
  327. flag(list name, 'lose);
  328. load!-module 'user;
  329. remflag('(getcind), 'lose);
  330. faslout 'scope;
  331. in "../src/scope.red"$
  332. faslend;
  333. restart!-csl t;
  334. symbolic; load!-module 'patches;
  335. symbolic procedure c!:install(name, env);
  336. flag(list name, 'lose);
  337. load!-module 'user;
  338. remflag('(evalletsub2 glsolterm mkglsol), 'lose);
  339. faslout 'solve;
  340. in "../src/solve.red"$
  341. faslend;
  342. restart!-csl t;
  343. symbolic; load!-module 'patches;
  344. symbolic procedure c!:install(name, env);
  345. flag(list name, 'lose);
  346. load!-module 'user;
  347. remflag('(degreef ordp), 'lose);
  348. faslout 'spde;
  349. in "../src/spde.red"$
  350. faslend;
  351. restart!-csl t;
  352. symbolic; load!-module 'patches;
  353. symbolic procedure c!:install(name, env);
  354. flag(list name, 'lose);
  355. load!-module 'user;
  356. faslout 'specfn;
  357. in "../src/specfn.red"$
  358. faslend;
  359. faslout 'specfn2;
  360. in "../src/specfn2.red"$
  361. faslend;
  362. faslout 'specfaux;
  363. in "../src/specfaux.red"$
  364. faslend;
  365. restart!-csl t;
  366. symbolic; load!-module 'patches;
  367. symbolic procedure c!:install(name, env);
  368. flag(list name, 'lose);
  369. load!-module 'user;
  370. remflag('(simptaylor), 'lose);
  371. faslout 'taylor;
  372. in "../src/taylor.red"$
  373. faslend;
  374. restart!-csl t;
  375. symbolic; load!-module 'patches;
  376. symbolic procedure c!:install(name, env);
  377. flag(list name, 'lose);
  378. load!-module 'user;
  379. faslout 'tps;
  380. in "../src/tps.red"$
  381. faslend;
  382. restart!-csl t;
  383. symbolic; load!-module 'patches;
  384. symbolic procedure c!:install(name, env);
  385. flag(list name, 'lose);
  386. load!-module 'user;
  387. faslout 'misc;
  388. in "../src/misc.red"$
  389. faslend;
  390. restart!-csl t;
  391. symbolic; load!-module 'patches;
  392. symbolic procedure c!:install(name, env);
  393. flag(list name, 'lose);
  394. load!-module 'user;
  395. faslout 'odesolve;
  396. in "../src/odesolve.red"$
  397. faslend;
  398. restart!-csl t;
  399. symbolic; load!-module 'patches;
  400. symbolic procedure c!:install(name, env);
  401. flag(list name, 'lose);
  402. load!-module 'user;
  403. remflag('(getrtype1 getrtype2 locate rcons rcons varpri), 'lose);
  404. faslout 'avector;
  405. in "../src/avector.red"$
  406. faslend;
  407. restart!-csl t;
  408. symbolic; load!-module 'patches;
  409. symbolic procedure c!:install(name, env);
  410. flag(list name, 'lose);
  411. load!-module 'user;
  412. remflag('(depend maprin nodepend), 'lose);
  413. faslout 'rlisp88;
  414. in "../src/rlisp88.red"$
  415. faslend;
  416. restart!-csl t;
  417. symbolic; load!-module 'patches;
  418. symbolic procedure c!:install(name, env);
  419. flag(list name, 'lose);
  420. load!-module 'user;
  421. faslout 'orthovec;
  422. in "../src/orthovec.red"$
  423. faslend;
  424. restart!-csl t;
  425. symbolic; load!-module 'patches;
  426. remflag('(evenp lengthreval natnumlis oddp
  427. rappend rcons rfirst rinsert rmember
  428. rrest rreverse rsecond rthird unitmat), 'lose);
  429. faslout 'assist;
  430. in "../lib/assist.red"$
  431. faslend;
  432. lisp restart!-csl t;
  433. symbolic; load!-module 'patches;
  434. remflag('(flatten subsetp unitmat), 'lose);
  435. faslout 'cali;
  436. in "../lib/cali.red"$
  437. faslend;
  438. lisp restart!-csl t;
  439. symbolic; load!-module 'patches;
  440. faslout 'camal;
  441. in "../lib/camal.red"$
  442. faslend;
  443. lisp restart!-csl t;
  444. symbolic; load!-module 'patches;
  445. remflag('(diffp), 'lose);
  446. faslout 'changevr;
  447. in "../lib/changevr.red"$
  448. faslend;
  449. lisp restart!-csl t;
  450. symbolic; load!-module 'patches;
  451. remflag('(freeof), 'lose);
  452. faslout 'crack2;
  453. in "../lib/crack2.red"$
  454. faslend;
  455. lisp restart!-csl t;
  456. symbolic; load!-module 'patches;
  457. remflag('(freeof), 'lose);
  458. faslout 'crack;
  459. in "../lib/crack.red"$
  460. faslend;
  461. lisp restart!-csl t;
  462. symbolic; load!-module 'patches;
  463. remflag('(isimp1), 'lose);
  464. faslout 'cvit;
  465. in "../lib/cvit.red"$
  466. faslend;
  467. lisp restart!-csl t;
  468. symbolic; load!-module 'patches;
  469. faslout 'desir;
  470. in "../lib/desir.red"$
  471. faslend;
  472. lisp restart!-csl t;
  473. symbolic; load!-module 'patches;
  474. remflag('(maxorder simptaylor), 'lose);
  475. faslout 'fide1;
  476. in "../lib/fide1.red"$
  477. faslend;
  478. load_package fide1,gentran;
  479. faslout 'fide;
  480. in "../lib/fide.red"$
  481. faslend;
  482. lisp restart!-csl t;
  483. symbolic; load!-module 'patches;
  484. faslout 'ideals;
  485. in "../lib/ideals.red"$
  486. faslend;
  487. lisp restart!-csl t;
  488. symbolic; load!-module 'patches;
  489. faslout 'laplace;
  490. in "../lib/laplace.red"$
  491. faslend;
  492. lisp restart!-csl t;
  493. symbolic; load!-module 'patches;
  494. remprop('help, 'stat); % Because lie.red uses "help" as a variable name
  495. % and I am not allowed to change that in the source.
  496. % Anybody who tries to recompile lie.red other than
  497. % via this file "watch out".
  498. % Actually it is more complicated than that, since I
  499. % will usually run this re-build job using "smallr35"
  500. % and I do not build the help mechanism into that.
  501. faslout 'lie;
  502. in "../lib/lie.red"$
  503. faslend;
  504. lisp restart!-csl t;
  505. symbolic; load!-module 'patches;
  506. faslout 'linineq;
  507. in "../lib/linineq.red"$
  508. faslend;
  509. lisp restart!-csl t;
  510. symbolic; load!-module 'patches;
  511. remflag('(locate multf ordp ordp reordop subs3f1), 'lose);
  512. remflag('(getrtype maprint multf multf multfnc ordop), 'lose);
  513. faslout 'noncom2;
  514. in "../lib/noncom2.red"$
  515. faslend;
  516. faslout 'physop;
  517. in "../lib/physop.red"$
  518. faslend;
  519. lisp restart!-csl t;
  520. symbolic; load!-module 'patches;
  521. remflag('(equalreval listeval opfneval opmtch rinsert simpiden), 'lose);
  522. faslout 'pm;
  523. in "../lib/pm.red"$
  524. faslend;
  525. faslout 'pmrules;
  526. in "../lib/pmrules.red"$
  527. faslend;
  528. lisp restart!-csl t;
  529. symbolic; load!-module 'patches;
  530. faslout 'reacteqn;
  531. in "../lib/reacteqn.red"$
  532. faslend;
  533. lisp restart!-csl t;
  534. symbolic; load!-module 'patches;
  535. faslout 'reset;
  536. in "../lib/reset.red"$
  537. faslend;
  538. lisp restart!-csl t;
  539. symbolic; load!-module 'patches;
  540. remflag('(get!* texlet varpri), 'lose);
  541. faslout 'rlfi;
  542. in "../lib/rlfi.red"$
  543. faslend;
  544. lisp restart!-csl t;
  545. symbolic; load!-module 'patches;
  546. lisp restart!-csl t;
  547. symbolic; load!-module 'patches;
  548. faslout 'symmetry;
  549. in "../lib/symmetry.red"$
  550. faslend;
  551. lisp restart!-csl t;
  552. symbolic; load!-module 'patches;
  553. remflag('(texlet), 'lose);
  554. faslout 'tri;
  555. in "../lib/tri.red"$
  556. faslend;
  557. lisp restart!-csl t;
  558. symbolic; load!-module 'patches;
  559. faslout 'wu;
  560. in "../lib/wu.red"$
  561. faslend;
  562. lisp restart!-csl t;
  563. symbolic; load!-module 'patches;
  564. faslout 'gnuplot;
  565. in "../plot/gnuplot.red"$
  566. faslend;
  567. lisp restart!-csl nil;
  568. (setq !*savedef nil) (load!-module 'loadr35) (begin)
  569. symbolic;
  570. on comp;
  571. % Note: "cslhelp.red" defines some macros that must be present while
  572. % this version of REDUCE is being built, but the macros themselves do not
  573. % want to go in any fasl file - only the result of expanding them.
  574. in "../cslsrc/cslhelp.red"$
  575. faslout 'makehelp;
  576. module helpdata;
  577. global '(!*force);
  578. flag('(force),'switch);
  579. flag('(on),'eval);
  580. on force;
  581. symbolic procedure formhelp(u,vars,mode);
  582. list('help, 'list . for each x in cdr u collect mkquote x);
  583. make_help "../cslsrc/helpdata";
  584. if member('help, lispsystem!*) then <<
  585. put('help, 'stat, 'rlis);
  586. flag('(help), 'go);
  587. put('help, 'formfn, 'formhelp) >>;
  588. off force;
  589. remflag('(on),'eval);
  590. endmodule;
  591. faslend;
  592. quit;
  593.