install.tex 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460
  1. \addtolength{\topmargin}{-.5cm}
  2. \documentstyle[11pt]{report}
  3. \parindent 0pt
  4. \parskip 6pt
  5. \pagestyle{empty}
  6. \setlength{\topsep}{0.5\baselineskip} % above and below environments
  7. \setlength{\itemsep}{\topsep}
  8. \setlength{\abovedisplayskip}{\topsep} % for "long" equations
  9. \setlength{\belowdisplayskip}{\topsep}
  10. \renewcommand{\arraystretch}{1.3}
  11. \renewcommand{\thechapter}{\arabic{chapter}}
  12. \renewcommand{\thesection}{\arabic{section}.}
  13. \renewcommand{\thesubsection}{\arabic{subsection}.}
  14. \newcommand{\REDUCE}{REDUCE}
  15. % The following are version dependent.
  16. \newcommand{\zibnumber}{2.013.04}
  17. \newcommand{\system}{Digital Equipment DECstation}
  18. \newcommand{\programsize}{3.5} % megabytes
  19. \newcommand{\virtualsize}{128} % megabytes
  20. \newcommand{\timingmachine}{DECstation 3100}
  21. \newcommand{\machinefactors}{DECstation 5100 &0.6
  22. \\ DECstation 5800 &1.0}
  23. \newcommand{\cartridgecommand}{tar xb 126}
  24. \newcommand{\tapespace}{22} % megabytes
  25. \newcommand{\createtime}{11} % seconds
  26. \newcommand{\executablespace}{4.3} % megabytes
  27. \newcommand{\testtime}{4.9} % seconds
  28. \newcommand{\floatingpointdigits}{12}
  29. \begin{document}
  30. \begin{titlepage}
  31. \samepage
  32. %\vspace*{1cm}
  33. \begin{center}
  34. \begin{minipage}{10cm}
  35. \begin{center}
  36. {\LARGE {\bf REDUCE} Installation Guide for the} \vspace*{2mm} \\
  37. {\LARGE {\system} Workstations} \\[0.3cm]
  38. {\LARGE Version 3.4} \\[0.3cm]
  39. {\large by} \\[0.3cm]
  40. {\Large Anthony C. Hearn}\\
  41. {\large RAND} \\
  42. {\large Santa Monica, CA 90407-2138 USA} \\[0.3cm]
  43. {\large and} \\[0.3cm]
  44. {\Large Winfried Neun}\\
  45. {\large ZIB} \\
  46. {\large 1000 Berlin 31, FRG} \\[0.3cm]
  47. {\large July 1991}\\[0.5cm]
  48. \vfill
  49. {\bf Abstract}
  50. \end{center}
  51. \end{minipage}
  52. \end{center}
  53. This guide describes the {\REDUCE} distribution tape and procedures for
  54. installing, testing and maintaining {\REDUCE} for the {\system} workstation.
  55. \begin{center}
  56. {ZIB Publication M 2.011.04} \\*[1cm]
  57. Copyright \copyright 1991 by RAND and ZIB. All rights reserved.
  58. \end{center}
  59. \nopagebreak
  60. Registered system holders may reproduce all or any part of this
  61. publication for internal purposes, provided that the source of the
  62. material is clearly acknowledged, and the copyright notice is retained.
  63. \end{titlepage}
  64. \newpage
  65. \tableofcontents
  66. \thispagestyle{empty}
  67. \newpage
  68. \setcounter{page}{1}
  69. \pagestyle{plain}
  70. \section{Introduction}
  71. This guide describes the {\REDUCE} distribution tape and procedures for
  72. installing, testing and maintaining {\REDUCE} on {\system} workstation.
  73. {\REDUCE} is based on Standard Lisp, and this version requires the
  74. availability of Portable Standard Lisp (PSL), version 3.4 or later. The
  75. PSL files necessary to run {\REDUCE} are included on the system tape. This
  76. is not however a complete PSL system and in particular does not include
  77. PSL sources. A complete PSL, if needed, is available separately from the
  78. Konrad-Zuse-Zentrum by contacting:
  79. \begin{center}
  80. Konrad-Zuse-Zentrum f\"ur Informationstechnik Berlin \\
  81. - Symbolik - \\
  82. Heilbronner Str. 10 \\
  83. 1000 Berlin 31 \\
  84. Federal Republic of Germany \\
  85. Telephone: (+49) 30 89604 195 \\
  86. Electronic Mail: melenk@sc.ZIB-Berlin.dbp.de \\
  87. or: melenk@sc.ZIB-Berlin.de (Internet) \\
  88. Facsimile: (+49) 30 89604 125.
  89. \end{center}
  90. The distributed version of {\REDUCE} requires approximately {\programsize}
  91. megabytes for the program alone without taking into account workspace
  92. requirements. It takes its default execution size from the underlying PSL
  93. system, which is approximately {\virtualsize}
  94. megabytes, and can be enlarged at runtime (see REDUCE User's Guide).
  95. The job times given in this guide are for a {\timingmachine}.
  96. The following approximate adjustment factors for other machines
  97. have been found to apply:
  98. \begin{center}
  99. \begin{tabular}{ll}
  100. \machinefactors
  101. \end{tabular}
  102. \end{center}
  103. \newpage
  104. \section{Description of the {\REDUCE} Distribution Tape}
  105. The distribution tape is in {\tt tar} format, and was written from the
  106. {\REDUCE} root directory. The files are organized in sub-directories,
  107. where the sub-directory name describes the contents of the directory,
  108. e.g., ./reduce.rootdir/doc. The names and contents of these
  109. sub-directories are:
  110. \begin{enumerate}
  111. \item[{\bf doc}] {\REDUCE} documents, including descriptions of all user
  112. contributed
  113. packages and the following:
  114. \begin{center}
  115. \begin{tabular}{rl}
  116. reduce.tex & {\REDUCE} User's Manual in \LaTeX\ format \\
  117. install.tex & Installation instructions in \LaTeX\ format \\
  118. oper.tex & System specific operation notes in \LaTeX\ format \\
  119. sl.doc & Standard LISP Report in plain text format.
  120. % bugs33.doc & Known bugs and problems in REDUCE 3.3.
  121. \end{tabular}
  122. \end{center}
  123. \item [{\bf fasl} ] Binary versions of sources for fast loading {\REDUCE}
  124. functions
  125. \item [{\bf lib}] {\REDUCE} user library
  126. \item [{\bf log} ] Depository for log files created during system building
  127. and testing (initially empty)
  128. \item [{\bf psl}] PSL binaries and related files needed to run {\REDUCE}
  129. \item [{\bf src}] Sources for creating {\REDUCE}, written in both PSL and
  130. RLISP
  131. \item [{\bf util}] Appropriate scripts for building {\REDUCE}, etc.
  132. \item [{\bf xlog}] ``Exemplary" log files for comparison with your own such
  133. files
  134. \item [{\bf xmpl}] {\REDUCE} tests, demonstrations and the interactive
  135. lessons.
  136. \end{enumerate}
  137. \section{Installing {\REDUCE}}
  138. The following description assumes that {\tt csh} is used as the command shell.
  139. If a different shell is used, please change the commands accordingly.
  140. To install {\REDUCE}, you need to create a directory for the {\REDUCE} file
  141. system. This is identified as ``\$reduce" from now on. It is assumed
  142. that you have write access to this directory. Connect to this directory,
  143. mount the tape and type for a 1/2" tape
  144. \begin{center}
  145. \begin{tabbing}
  146. and for cartridge tape xxx \= tar x \kill
  147. \> tar x \\
  148. and for a cartridge tape \\
  149. \> {\cartridgecommand}
  150. \end{tabbing}
  151. \end{center}
  152. This will retrieve all files, and requires approximately {\tapespace}
  153. megabytes of disk space.
  154. Finally, please run the commands:
  155. \begin{center}
  156. \begin{tabbing}
  157. and for cartridge tape xxx \= tar x \kill
  158. \> util/sparsify psl/bpsl \\
  159. and \\
  160. \> util/sparsify reduce \\
  161. which will diminish the disk space requirements.
  162. \end{tabbing}
  163. \end{center}
  164. In most cases the installation of Reduce is complete after unloading the
  165. tape. The location of the {\REDUCE} root directory is essential for using
  166. {\REDUCE}. Please advise users to set the variable {\tt reduce} in their
  167. environment to this location. It may be useful to add a link from one of
  168. the standard directories for binaries (e.g. /usr/local/bin) to the reduce
  169. root directory. Alternatively, if you prefer not to ask users to set {\tt
  170. reduce}, the {\tt reduce} script in the util directory, suitably modified
  171. for local file conventions, could be installed in say /usr/local/bin.
  172. {\REDUCE} is stored in the system as a binary executable disk file
  173. \$reduce/reduce.
  174. If modifications of the default settings are requested, one can rebuild
  175. this file, which is on the tape, by the following commands:
  176. \begin{verbatim}
  177. setenv reduce <REDUCE root directory>
  178. $reduce/util/mkreduce
  179. \end{verbatim}
  180. Output from this step is logged to the file \$reduce/log/mkreduce.log.
  181. The mkreduce script builds a {\REDUCE} image of the size described above.
  182. This is usually adequate for most calculations. If you require a larger
  183. (or smaller) image, you should edit the mkreduce script, and modify the
  184. numbers in the call of bpsl. In particular, the ``td" parameter is the
  185. total heap and binary program space size (in bytes).
  186. During the building of the {\REDUCE} binary, messages saying that various
  187. functions have been defined, or not defined, are normal, and can therefore
  188. be ignored.
  189. \section{Printing Documents}
  190. The distributed documents are in the directory \$reduce/doc. The
  191. \LaTeX\ files need processing before they can be printed. Plain text
  192. files may be printed using standard UNIX utilities. They are paginated
  193. and formatted with standard ASCII control characters. A maximum of sixty
  194. print lines per page are assumed. The left margin offset must be supplied
  195. by the user.
  196. \section{Testing {\REDUCE}}
  197. To test the {\REDUCE} installation enter:
  198. \begin{verbatim}
  199. reduce.bindir/reduce
  200. in "$reduce/xmpl/reduce.tst";
  201. \end{verbatim}
  202. This requires about {\testtime} seconds on the system as described above.
  203. Other programs for testing the {\REDUCE} system assembly may also be found
  204. in the directory \$reduce/xmpl.
  205. \section{Running {\REDUCE} Programs}
  206. Once reduce.bindir in the user's search path, {\REDUCE} is simply invoked
  207. with its name:
  208. \begin{verbatim}
  209. reduce
  210. \end{verbatim}
  211. {\REDUCE} will respond with a banner line and then prompt for the first
  212. line of input:
  213. \begin{verbatim}
  214. REDUCE 3.4, 15-Jul-91 ...
  215. 1:
  216. \end{verbatim}
  217. Prototypical instructions for using this version of {\REDUCE}
  218. are available as the file \$reduce/doc/oper.tex. You should edit this to
  219. reflect your site-specific implementation before issuing it to users.
  220. System independent instructions for the use of {\REDUCE} are given in the
  221. {\REDUCE} User's Manual.
  222. \section{Working with Minimal Disk Space}
  223. Many of the {\REDUCE} system files are not necessary for running
  224. {\REDUCE}. In situations where disk space is at a premium, the following
  225. files may be deleted from disk:
  226. \begin{enumerate}
  227. \item[--] all files in the sub-directories doc, src, util, xlog, log and xmpl,
  228. \item[--] the files in the sub-directory psl which are listed in the file
  229. cleanup.csh in this sub-directory,
  230. \item[--] the files alg.b, arith.b, entry.b, mathpr.b, module.b, poly.b,
  231. prolog.b, rend.b, and rlisp.b in the sub-directory fasl.
  232. \end{enumerate}
  233. After rebuilding or copying the files psl/bpsl and reduce, you should run
  234. the program {\tt util/sparsify} with the relevant filename as parameter.
  235. This will drastically reduce the amount of disk space used.
  236. Although the sub-directories doc and xmpl are not necessary, it is
  237. advisable to leave at least the {\REDUCE} manual, system operating
  238. instructions, the documents for the user packages and the {\REDUCE}
  239. interactive lessons on line for users.
  240. \section{Rebuilding REDUCE FASL Files}
  241. Because of its organization into independently compilable modules, the
  242. current {\REDUCE} system is fairly easy to maintain. If any source
  243. updates are necessary, they can be incorporated into the appropriate files
  244. using a convenient editor. Once any of the system source files have been
  245. updated, it is necessary to rebuild (compile) the equivalent fast loading
  246. modules in order to utilize the changes.
  247. To rebuild any of the {\REDUCE} fasl files, connect to the directory
  248. \$reduce and call the script:
  249. \begin{verbatim}
  250. util/mkfasl xxx
  251. \end{verbatim}
  252. where {\tt xxx} is the appropriate package name, e.g. rend to rebuild
  253. \$reduce/fasl/rend.b from \$reduce/src/rend.red. If any of the fasl files
  254. used in building the {\REDUCE} system are changed (alg, arith, entry,
  255. mathpr, module, poly, prolog, rend, and rlisp), the reduce binary image will
  256. need to be rebuilt with the script:
  257. \begin{verbatim}
  258. util/mkreduce
  259. \end{verbatim}
  260. A separate utility script \$reduce/util/build is available for completely
  261. rebuilding all of the {\REDUCE} fasl files. This should normally never be
  262. required and is included only in case the system becomes so corrupted that
  263. it is no longer possible to rebuild even single modules with the mkfasl
  264. procedure.
  265. \section{Maintaining {\REDUCE}}
  266. The {\tt util} directory includes a number of scripts that are useful for
  267. the ongoing maintenance of {\REDUCE}. Most of these are only of interest
  268. to the system maintainer, although some (such as {\tt mkslfile} and {\tt
  269. test}) may be of interest to the general user. Several of these scripts
  270. have been described earlier in this Guide. However, for completeness,
  271. they are all described in this section. The scripts are as follows:
  272. \paragraph{build}
  273. This is used to rebuild the complete {\REDUCE} fast-loading (fasl) file
  274. system from scratch. It first uses the script {\tt dbuild} to build a
  275. version of {\REDUCE} suitable for compiling all packages, and then uses
  276. the script {\tt xbuild} to create the actual fasl files.
  277. \paragraph{check-all}
  278. This can be used to check the logs generated by {\tt test-all} with the
  279. ``exemplary" versions found in {\tt xlog}. It produces a {\tt diff} of
  280. each log referenced in {\tt test-all}.
  281. \paragraph{dbuild}
  282. This is used by {\tt build} (q.v.) to build a version of {\REDUCE} suitable
  283. for compiling all packages.
  284. \paragraph{mkfasl}
  285. This creates a single fasl file from a package file. It is used in the
  286. form {\tt mkfasl <package-name> }.
  287. \paragraph{mkfasl2}
  288. This creates a single fasl file from a package file in the \$2 directory.
  289. It is normally used to make fasl files from the {\tt lib} directory, in
  290. which it is used in the form {\tt mkfasl <package-name> lib}.
  291. \paragraph{mkreduce}
  292. This has been mentioned earlier. It creates the {\REDUCE} executable from
  293. PSL sources and {\REDUCE} fasl files.
  294. \paragraph{mkslfile}
  295. This has also been mentioned earlier. It generates a Lisp
  296. equivalent of {\REDUCE} or RLISP source files.
  297. \paragraph{reduce}
  298. This is a prototypical script that can be installed, say, in /usr/local/bin,
  299. to set the environment variable {\tt reduce}, and call the {\REDUCE}
  300. executable.
  301. \paragraph{reduce-names}
  302. This file is normally used as an argument to {\tt source} to set up
  303. symbolic names for the {\REDUCE} sub-directories. It must be modified to
  304. conform to local file conventions.
  305. \paragraph{sparsify}
  306. This utility is used to remove ``dead" space from various PSL binary files
  307. that grow in size when copied. In addition to the executable, the source
  308. ({\tt sparsify.c}) and a UNIX ``man" page ({\tt sparsify.l}) are included.
  309. \paragraph{test}
  310. This can be used to run one of the test files in the {\tt xmpl} directory.
  311. {\tt test <file>} will run a test file, $<$file$>$.tst that does
  312. not require the explicit loading of a package.
  313. If a package must be loaded to run a test (e.g., algint), the name of
  314. the required package should be provided as a second argument to {\tt test}.
  315. \paragraph{test-all}
  316. This script runs all the tests contained in the xmpl directory, using the
  317. {\tt test} script on each one. This script takes about 45 minutes to run
  318. on a SPARCstation 1.
  319. \paragraph{testlib}
  320. This can be used to run the test files in the {\tt lib} directory.
  321. {\tt testlib <package>} will run the test file {\tt <package>.tst} in the
  322. {\tt lib} directory, assuming the fasl file for that package has been built.
  323. \paragraph{xbuild}
  324. This is used by {\tt build} to generate a complete set of fasl files by
  325. applying the {\tt mkfasl} script to each package.
  326. \section{Program Registration}
  327. After installing {\REDUCE}, please fill out the accompanying registration
  328. form and send to:
  329. \begin{center}
  330. Dr. Anthony C. Hearn \\
  331. RAND \\
  332. 1700 Main Street \\
  333. Santa Monica, CA 90407-2138 \\
  334. Telephone (213) 393-0411 \\
  335. Facsimile (213) 393-4818 \\
  336. Email: reduce@rand.org
  337. \end{center}
  338. This should be done so that you can be advised direct of any changes which
  339. are made to the system. Furthermore, the copyright statement on the
  340. {\REDUCE} documents requires such registration as a requirement for their
  341. local distribution. The test time requested on the registration form is
  342. the time printed by the final call of {\tt showtime} in the output from
  343. the test described in the section ``Testing {\REDUCE}".
  344. \section{Inquiries and Reporting of Errors}
  345. We would appreciate hearing about other bugs you encounter or
  346. questions you may have regarding the assembly or the operation of the system.
  347. Suspected errors should be accompanied by the relevant job output and a copy
  348. of the input source. Corrections for documented problems or other
  349. improvements to the system are also welcomed.
  350. \newpage
  351. \pagestyle{empty}
  352. \begin{center}
  353. {\Large\bf REDUCE 3.4 Registration Form}
  354. \end{center}
  355. After installing {\REDUCE}, please fill out this form and send to the
  356. listed address. This should be done so that you can be
  357. advised direct of any changes made to the system. Furthermore, returning
  358. the registration form is a requirement for local reproduction of the
  359. {\REDUCE} documentation.
  360. \vspace*{3mm} \\
  361. Date: \hrulefill \vspace*{3mm}\\
  362. Contact Person: \hrulefill\ \vspace*{3mm}\\
  363. Organization: \hrulefill \vspace*{3mm} \\
  364. Address: \hrulefill \vspace*{3mm} \\
  365. \hspace*{16 mm} \hrulefill \vspace*{3mm} \\
  366. \hspace*{16 mm} \hrulefill \vspace*{3mm} \\
  367. Telephone: \hrulefill\ \vspace*{3mm} \\
  368. Network Address: \hrulefill \\
  369. {\small (Indicate network: Internet, BITNET, EARN, UUCP, etc)}
  370. \vspace*{3 mm} \\
  371. REDUCE Supplier: \hrulefill \\[3mm]
  372. Computer Description:
  373. \vspace*{3 mm} \\
  374. Vendor: \hrulefill \vspace*{2mm} Model: \hrulefill \vspace*{2mm}
  375. Operating System: \hrulefill \\
  376. Please indicate the test time as printed by the final call of {\tt showtime}
  377. in the output from the installation test described in the
  378. section ``Testing {\REDUCE}" of the {\REDUCE} Installation Guide. Also
  379. give the total system time, region (virtual) and real system memory
  380. available, if applicable. \vspace*{4mm}
  381. \\
  382. Time: \hrulefill Total System Time: \hrulefill\ Region: \hrulefill \vspace*{4mm}
  383. \\
  384. Real System Memory: \hrulefill .\hspace*{5cm}
  385. \vspace*{3 mm} \\
  386. Please also write on the back of this form any comments you may have about
  387. the installation procedure, and system documentation and performance.
  388. \\[3mm]
  389. \noindent
  390. If you would like to be listed in a published registry of {\REDUCE} system
  391. holders, please check here $\Box$ .
  392. \end{document}