R38_Instr.tex 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796
  1. \documentstyle[a4,11pt]{article}
  2. \hyphenation{Inter-active}
  3. \newcommand{\REDUCE}{REDUCE}
  4. \begin{document}
  5. \thispagestyle{empty}
  6. \vspace{4cm}
  7. \begin{center} {\Huge \bf REDUCE 3.8} \end{center}
  8. \vspace{.3cm}
  9. \begin{center} {\Huge \bf (Personal System)} \end{center}
  10. \vspace{.5cm}
  11. \begin{center} {\LARGE \bf Installation and Operations Manual} \end{center}
  12. \vspace{.3cm}
  13. \begin{center} {\Large Using CSL Version 6.00 --- April 2004} \end{center}
  14. \vspace{8cm}
  15. \begin{center}
  16. Codemist Ltd \\
  17. Alta, Horsecombe Vale \\
  18. Combe Down \\
  19. Bath BA2 5QR \\
  20. England \\
  21. Tel/FAX: +44 1225 837430 \\
  22. e-mail: reduce@codemist.co.uk
  23. \end{center}
  24. \vspace{1cm} These instructions cover installation of the Personal
  25. \REDUCE\ 3.8 on Windows, Linux/GNU, and Macintosh OSX with XDarwin
  26. computers, and a short User's Guide to the CSL-based \REDUCE\ system.
  27. In general \REDUCE\ requires a hard disk drive: executable binaries and
  28. help will
  29. fill up about *** Mbytes, while a full system including machine readable
  30. documentation needs about *** Mbytes.
  31. \newpage
  32. \tableofcontents
  33. \newpage
  34. With \REDUCE\ 3.8 Codemist are releasing our new user interface which is
  35. (very nearly) uniform across all platforms. This interface can be run
  36. as a window on machines that support that interface, with menus and a
  37. scrollable output area, or it can be run in non-windows mode in a
  38. terminal window, DOS-box or xterm. As the systems are now so similar
  39. we are producing this unified document, with small subsections on the
  40. individual systems idiosyncrasies, covering mainly installation.
  41. \section{Contents of the Distribution}
  42. The standard distribution contains:
  43. \begin{enumerate}
  44. \item \REDUCE\ Licence Agreement
  45. \item Installation and Use Instructions
  46. \item \REDUCE\ Registration Form
  47. \item Media (CR-ROM or DAT tape, or as arranged)
  48. \end{enumerate}
  49. The CD format is ISO9660 format, with Rock Ridge extensions. {\em
  50. ***Check this.***} As well as CSL/\REDUCE\ it contains the two support
  51. packages {\bf FOX} and {\bf gnuplot} which are used as components of
  52. \REDUCE. The CD should have the directory layout should be as shown
  53. in the figure~\ref{dir}.
  54. \begin{figure}
  55. \label{dir}
  56. \begin{verbatim}
  57. REDUCE38 _________ doc
  58. (the CD) |
  59. |________ Fox-extras
  60. |
  61. |________ log
  62. |
  63. |________ object-files
  64. |
  65. |________ r38.doc
  66. |
  67. |________ support-packages
  68. | |
  69. | |___ libedit-2.6.7
  70. | |
  71. | |___ mingw
  72. | |
  73. | |___ tetex
  74. | |
  75. | |___ fonts
  76. | |
  77. | |___ afm
  78. | |
  79. | |___ adobe
  80. | |
  81. | |.....
  82. |
  83. |________ tests
  84. |
  85. |________ util
  86. \end{verbatim}
  87. \caption{Directory Layout}
  88. \end{figure}
  89. \subsection{Installation}
  90. The first stage is to copy the necessary files to the location you
  91. require.
  92. \subsubsection{Linux, Macintosh OSX and Unix systems}
  93. On unix-like systems this can be done with the installation script {\tt
  94. install-personal.sh} {\em ***which does not yet exist! Needs rename***}.
  95. This will prompt for an installation directory, create it if
  96. necessary, and copy the necessary files to that directory. There
  97. are other files on the CD which are for packages which \REDUCE\ uses,
  98. or should be distributed according to the GPL or LGPL licence.
  99. \subsubsection{Windows systems}
  100. {\em ***To be written***}
  101. {\em ***I really would like an install program if not installshield***}
  102. \subsubsection{Hand Linking of \REDUCE\ }
  103. It is possible that the file {\tt r38} in the top level directory
  104. will work directly off the CD, but because of all the problems with
  105. differing libraries, compiler versions and licencing issues, we
  106. recommend that you relink \REDUCE, especially on Linux systems.
  107. The necessary object files are in the {\tt object-files}
  108. directory. The command {\tt relink.sh} in the top directory will
  109. create a system for your machine. We cannot guarantee that this will
  110. work for all Linux distributions. If the relink fails you either have
  111. to follow the instructions below, or contact Codemist.
  112. {\em ***To Be Written***}
  113. \section{Use of \REDUCE\ }
  114. You will probably want to change your PATH to add the \REDUCE\ directory
  115. to your path. Note that there is an assumption that {\tt r38},
  116. {\tt r38.img} and {\tt r38.doc} are kept together in the same
  117. directory. It is usual to set an environment variable {\tt reduce} to
  118. the directory where {\tt r38.img} is kept.
  119. Normal interactive use of \REDUCE\ is by issuing the command
  120. \begin{verbatim}
  121. r38
  122. \end{verbatim}
  123. and after a delay for loading the executable and the preserved image
  124. file, the prompt will appear in a new window. If instead the command
  125. \begin{verbatim}
  126. r38 -w
  127. \end{verbatim}
  128. is used the system will run as a command line system in the terminal.
  129. In either case the prompt will be
  130. \begin{verbatim}
  131. 1:
  132. \end{verbatim}
  133. \noindent The system is then as described in the \REDUCE\ 3.8 Manual.
  134. Try typing
  135. \begin{verbatim}
  136. in "test/alg.tst";
  137. quit;
  138. \end{verbatim}
  139. to run the standard simple test. The file {\tt alg.rlg} in the
  140. {\tt test} directory shows what output should be expected.
  141. Some parts of the system are not resident in the initial system, but
  142. they are automatically loaded on demand. Parts of the library
  143. need to be loaded by the function load\_package or by using the {\tt
  144. Load Module} menu and its sub-menus.
  145. \begin{verbatim}
  146. load_package laplace;
  147. \end{verbatim}
  148. \section{Some Simple Tests}
  149. When you have installed \REDUCE\ here are a few quick tests you might
  150. like to try to see what it can do. Many more examples of \REDUCE's
  151. capabilities are included on other distribution disks:
  152. {\small
  153. \begin{verbatim}
  154. factorial 200; % display value of the factorial of 200
  155. (x+y)^4; % expand out a simple algebraic formula
  156. int(x^6*log x, x); % perform an integration
  157. z := mat((0,1),(1,1)); % create a matrix, save it in variable 'z'
  158. z^40; % raise matrix z to the 40th power
  159. solve(a*x^2+b*x+c, x); % solve a quadratic equation
  160. on rounded; precision 70; % select long-precision floating point mode
  161. pi; % inspect pi to 70 digits;
  162. bye; % finish session - exit from REDUCE
  163. \end{verbatim}
  164. }
  165. When things do not behave as you expect or you want to know how to
  166. solve some particular problem you need to read the manual! If you
  167. have installed all of \REDUCE\ you will find a collection of test and
  168. demonstration files in the {\tt tests} folder with extension
  169. {\tt .tst}, and corresponding output with extension {\tt .rlg}.
  170. \section{Help}
  171. There is a HTML-based help tree in {\tt r38.doc} which can be used
  172. with an external browser, or the browser can be started from the {\tt
  173. Help} menu on the right of the \REDUCE\ window. There is also the
  174. complete manual available as a PDF file in {\tt r38.pdf} at top level.
  175. See the section on Help below (section~\ref{help}) for more details.
  176. \section{Interrupts}
  177. \label{Interrupts}
  178. CSL-\REDUCE\ is designed so Control-C is an interrupt which causes a
  179. LISP-level error. So if a calculation is taking too long, or for some
  180. other reason it is wished to abort it, typing Control-C should return
  181. control to the user. As in LISP all errors may be caught and handled
  182. by the program; it is possible that this will not rescue control.
  183. Repeated use of Control-C may help. Note that from time to
  184. time \REDUCE\ has to ``garbage collect'', {\em i.e.\/} reorganise its memory to
  185. make more space. While doing this (which can take a couple of
  186. seconds) interrupts will be recognised but response to them will be
  187. queued up until the end of garbage collection.
  188. A Control-G is a similar interrupt, but it also generates a backtrace,
  189. so it is possible to see where the calculation is which is being
  190. aborted.
  191. \section{Filenames and CSL}
  192. CSL, the LISP system on which this implementation of \REDUCE\ is based,
  193. runs on a variety of computers using several different filing systems:
  194. it attempts to perform some conversions that improve consistency
  195. across the different systems. Those who always use simple filenames,
  196. where the names do not include any punctuation characters, do not need
  197. to be aware of this but the details may help when the file-name
  198. mapping leads to confusion.
  199. When a file name is presented to CSL it performs two transformations.
  200. The first set of transformations apply only to an initial segment of
  201. the file name. If this is of the form:
  202. \begin{center} \$\{{\em word}\} \end{center}
  203. \noindent then it is replaced by the value of the environment variable
  204. {\em word}.
  205. Similarly for the form \${\em name} where {\em name} is a non-empty
  206. sequence of characters terminated by one of the three characters `.',
  207. `/' or `$\backslash$' or by the end of the file name. Note that the
  208. form \$\{{\em word}\} is mainly intended for use when the character
  209. following the `\}' is not one of these separation characters. The
  210. expected use of this mechanism is to allow environment variables to
  211. specify the location of various files that are to be accessed, thus
  212. avoiding the need for absolute path names in source
  213. files.
  214. A file name starting with
  215. \begin{verbatim}
  216. ~name
  217. \end{verbatim}
  218. has its initial {\tt \~{ }name} segment replaced by a path to the home
  219. directory of a user called {\tt name}. The special case where the name is
  220. not present indicates the home directory of the current user, with a
  221. fall back to the value in an environment variable {\tt home}, again
  222. with the current directory if that is not set. As for `\$' the name
  223. following a `\~{ }' is terminated by `.', `/' or `$\backslash$'.
  224. \section{Window Environment}
  225. \subsection{Menus}
  226. There is a number of menus which are displayed at the top of the
  227. screen, some of which have been mentioned before. This section
  228. explains briefly what they all are for.
  229. %% The later
  230. %% menus are removed while \REDUCE\ is performing computations, as for
  231. %% example one cannot load modules or change switches except when \REDUCE\
  232. %% is expecting commands.
  233. \subsubsection{File menu}
  234. The {\em File} menu has three kinds of item in it. The first five
  235. items are for user input and information
  236. \begin{itemize}
  237. \item{Read...} allows a \REDUCE\ input file to be selected using a
  238. file selection dialog. When {\bf OK} is finally chosen characters are
  239. inserted into the buffer to do a \REDUCE\ {\tt in} command. The line
  240. ends with a semicolon, but it is not terminated with a newline. The
  241. user can decide whether to use the semicolon or replace it with a
  242. dollar terminator. Note that the file name is expanded to a full
  243. path, and so this facility can only be used for files whose full path
  244. is less than about 240 characters.
  245. \item{\em Save...} provides a facility to save the current buffer to a
  246. {\tt .log} file. This file will contain the current viewable text, as can be
  247. seen by scrolling back. It does not save older material. See also
  248. the -L command line option.
  249. \item{\em Save Selection...} provides a facility to save the currently
  250. selected text to a {\tt .log} file.
  251. \item{\em Print...} allows the current buffer to be sent to a printer. A
  252. dialog is started to select which printer, paper size {\em etc.}.
  253. \item{\em Print Selection...} is similar to Print, but for the selected text
  254. only.
  255. \item{\em Exit} leaves \REDUCE\ which can also be achieved with
  256. Control-$\backslash$ or typing {\tt bye;} or {\tt quit;} to the
  257. main window.
  258. \end{itemize}
  259. %% The rest of the menu is for information. It displays the time used,
  260. %% and the overhead time, together with the number of garbage
  261. %% collections.
  262. \subsubsection{Edit}
  263. The Edit menu gives access to the usual cut/copy/paste.
  264. Using the mouse it is possible to select text, either by dragging
  265. (moving the mouse with the button depressed) or by double-clicking to
  266. select words. The menu items are
  267. \begin{itemize}
  268. \item{\em Cut} removes the selected text from the buffer into the clipboard;
  269. \item{\em Copy} copies the selected text into the clipboard;
  270. \item{\em Paste} pastes a copy of the clipboard text into \REDUCE. This
  271. can also be achieved with Control-V;
  272. \item{\em Reinput} is in effect s copy followed by a paste. If the
  273. cursor is other than in the input line the text is inserted at the end.
  274. \item{\em Select All} selects all the text in the buffer
  275. \item{\em Clear} clears the buffer, which can also be done with Control-L.
  276. Note this will include removing the prompt if \REDUCE\ is waiting
  277. for input;
  278. \item{\em Redraw} or Control-R redraws the window;
  279. \item{\em Home}moves to the start of the window;
  280. \item{\em End} moves to the end of the window.
  281. \end{itemize}
  282. Note that the characters {\tt Home} and {\tt End} move to the start
  283. and end of the current input as it is being composed.
  284. \subsubsection{Font}
  285. This menu affects the look of the \REDUCE\ window.
  286. \begin{itemize}
  287. \item{\em Font...} introduces a dialog to change the font used for characters
  288. in the \REDUCE\ window. Which fonts are offered will depend on
  289. which fonts are installed on your computer;
  290. \item{\em Reset Font} restores the font selection to the default we use;
  291. \item{\em Reset Window} restores the size of the window to the defaults..
  292. \end{itemize}
  293. \subsubsection{Break}
  294. The menus for user controlled interrupts.
  295. \begin{itemize}
  296. \item{\em Break}\label{Break} allows a calculation to be
  297. interrupted, as described in section~\ref{Interrupts}. There may be a
  298. short delay before the interrupt if noticed, but then an interrupt
  299. message will appear in the main window. This can also be done with
  300. Control-C.
  301. \item{\em Backtrace} is the same as Break but also produces a
  302. programmer's backtrace to show where the calculation was stopped.
  303. Control-G is the same action.
  304. \item{\em Pause} or Control-S stops the output of characters to the
  305. screen, until a {\em Resume} or Control-Q is made.
  306. \item{\em Resume} or Control-Q reverses the {\em Pause}.
  307. \item{\em Go/Stop} provides a different pausing interface, acting as a
  308. flip-flop.
  309. \item{\em Discard Output} does not display characters that are
  310. produced but have not yet reached the screen. This can be useful in
  311. cases of a great deal of tracing. Control-O does the same.
  312. \end{itemize}
  313. \subsubsection{Load Module}
  314. \label{Library}
  315. \label{Load}
  316. The {\em Load Module} menu presents the user with a list of the
  317. modules which may be loaded into \REDUCE\ divided into 7 submenus by
  318. initial letter.
  319. %Modules which have already been loaded are marks
  320. %with a check sign.
  321. Selecting one of the modules causes the string
  322. \begin{verbatim}
  323. load_package "name";
  324. \end{verbatim}
  325. to be inserted into the input stream for the named package.
  326. A package when loaded will have its name greyed out.
  327. \subsubsection{Switch}
  328. \REDUCE\ has a number of switches. The ones in the delivered system are made
  329. available with the {\em Switches} menu. The initial state is
  330. indicated as the switches which are ON are marked with a tick sign.
  331. Selecting a switch inserts characters into the input to change the
  332. sense of the switch. Note that if the user changes the switches
  333. directly, not via this menu, then the menu will not notice the
  334. changes, and so selecting the switch will set it to the opposite of
  335. what is indicated in the menu, which may not be the same as the
  336. current state.
  337. If a switch is in a module not yet loaded the switch item will be
  338. greyed out.
  339. \subsubsection{REDUCE Update}
  340. For use of this item see section~\ref{update}.
  341. \subsubsection{Help}
  342. The exact format of the submenus depend on the base operating system.
  343. There are two main items, {\em Help} and {\em About}. On some
  344. Unix-like systems there is also a submenu to allow a browser to be
  345. selected. On Windows and Macintosh the browser is chosen in the
  346. standard way for those systems.
  347. Note that on Macintosh the browser runs as a Carbon application, and
  348. not as an X one.
  349. The {\em About} menu displays a window with names and copyright
  350. information.
  351. For for details on the use of the Help pages displayed from the {\em
  352. Help} selection of from typing F1, see section~\ref{help}.
  353. \section{CSL and \REDUCE\ User options}
  354. \label{Options}
  355. Command-line options are not sensitive to the case of the letter
  356. immediately following the `-', and in general if an option can be
  357. written as
  358. \hspace*{1cm} {\large {\bf -X}{\em yyy}}
  359. \noindent with no space between the -X and its argument yyy, it can
  360. also be written {\large {\bf -X }{\em yyy}} with a space.
  361. The following are recognised.
  362. \vspace{2mm}\noindent {\large \bf -B }
  363. \vspace{1mm}
  364. \hspace*{.25in}\parbox{4.5in}{
  365. Run in batch mode, with no interaction or window.
  366. }
  367. \vspace{2mm}\noindent {\large \bf -C }
  368. \vspace{1mm}
  369. \hspace*{.25in}\parbox{4.5in}{Displays Codemist's copyright notice.
  370. }
  371. \vspace{2mm}
  372. \noindent {\large \bf -Dname=value }
  373. \vspace{1mm}
  374. \hspace*{.25in}\parbox{4.5in}{
  375. As if {\tt (setq name value)} were obeyed just before the start of the
  376. Lisp run. The characters that form the name are used without any
  377. conversion at all, so variables with unusual spellings can be set up
  378. directly. It does however mean that it is not possible to predefine a
  379. variable whose name includes an `=' sign. The value (after the `='
  380. sign) is in effect passed through the regular CSL parser, and so must
  381. obey the regular CSL rules about the formation of valid input. All
  382. Lisp-level syntax is available, and in particular a variable can be
  383. set to values that are symbols, numbers or strings. Just -Dname sets
  384. name to T. It is possible to have many -D (and -U) requests on the
  385. command line, and they are processed from left to right. Note that
  386. these variables are LISP variables, and not necessarily \REDUCE\ ones.}
  387. \hspace*{.25in}\parbox{4.5in}{Note that extra punctuation may be
  388. needed to prevent your operating system or command line decoder from
  389. doing strange things to command lines that include some characters
  390. (notably `*' and `$\backslash$'); when using Unix you may have to
  391. write -D$\backslash$*xxx=yyy if you want to predefine a variable
  392. called *xxx. The `$\backslash$' escape character in such cases is
  393. interpreted by the Unix shell and not by CSL.
  394. }
  395. \vspace{2mm} \noindent {\large \bf -G(options)}
  396. \vspace{1mm}
  397. \hspace*{.25in}\parbox{4.5in}{Set debugging options. Currently equivalent to
  398. -D*backtrace.}
  399. \vspace{2mm}
  400. \noindent {\large \bf -I(filename) }
  401. \vspace{1mm}
  402. \hspace*{.25in}\parbox{4.5in}{Specify a file to scan for fasl files.
  403. The file will be opened read-only.
  404. {\bf -I} can be specified several times, and the files given will
  405. be scanned from left to right when a fasl file is looked for.
  406. The special syntax {\bf -I-} indicates a reference to the ``standard''
  407. image file associated with the current application, which is
  408. r38.exe then this file is r38.img
  409. }
  410. \vspace{2mm}
  411. \noindent {\large \bf -K(number)}
  412. \vspace{1mm}
  413. \hspace*{.25in}\parbox{4.5in}{
  414. Specify how much memory CSL should use, in units of Kilobytes.
  415. The number is used to establish the space used for workspace,
  416. and additional space is consumed by the CSL executable image
  417. itself, and perhaps by buffers used for input and output
  418. files, and by the stack. The number is interpreted in decimal
  419. by default, but can be given in hexadecimal if written
  420. starting with ``0x'' (as in the C language). The value given
  421. may be subject to rounding (e.g. in some versions of CSL store
  422. is allocated in units of 64K), and if the value given is too
  423. small to allow loading of an image file the value may be
  424. increased without comment. If {\bf -K} is not given or {\bf -K0} is
  425. specified a default heap size (currently about 4 Mbytes)
  426. will be used, but then this space will be expanded (if
  427. possible) later in the run if store seems to be becoming
  428. full.}
  429. \vspace{2mm}
  430. \noindent {\large \bf -L(file)}
  431. \vspace{1mm}
  432. \hspace*{.25in}\parbox{4.5in}{
  433. Send transcript of everything sent to the screen to the specified file
  434. as well (as if by doing {\tt lisp spool "file"} at the start, and
  435. hence subsequent use of {\tt lisp spool()} can switch the listing off
  436. or redirect it).}
  437. \vspace{2mm} \noindent {\large \bf -O(filename)}
  438. \vspace{1mm}
  439. \hspace*{.25in}\parbox{4.5in}{See below (section~\ref{OptO})}
  440. \vspace{2mm} \noindent {\large \bf -P}
  441. \vspace{1mm}
  442. \hspace*{.25in}\parbox{4.5in}{
  443. Profile option. For some systems this enables a monitoring
  444. system that can gather low level information about where time
  445. is being spent. For use by expert system tuners only, and
  446. potentially no use to those who do not have a source licence
  447. to CSL.}
  448. \vspace{2mm} \noindent {\large \bf -Q}
  449. \vspace{1mm}
  450. \hspace*{.25in}\parbox{4.5in}{
  451. Run in quiet mode: no messages at start up, or from fasl
  452. mechanism or garbage collector (unless enabled from within
  453. Lisp). }
  454. \vspace{2mm} \noindent {\large \bf -Rnnn}
  455. \vspace{1mm}
  456. \hspace*{.25in}\parbox{4.5in}{
  457. Sets the initial random seed, for reproducible runs. -R0 (the
  458. default) sets the initial seed based on the time of day or some
  459. similar value.}
  460. \vspace{2mm} \noindent {\large \bf -S}
  461. \vspace{1mm}
  462. \hspace*{.25in}\parbox{4.5in}{
  463. Sets *plap to true at the start of a run so that compilation
  464. leads to a display of the byte-codes that are generated.
  465. Exactly equivalent to -D*plap. }
  466. \vspace{2mm} \noindent {\large \bf -U(name)}
  467. \vspace{1mm}
  468. \hspace*{.25in}\parbox{4.5in}{
  469. Unset the variable named. Sort of inverse to -D(name).}
  470. \vspace{2mm} \noindent {\large \bf -V}
  471. \vspace{1mm}
  472. \hspace*{.25in}\parbox{4.5in}{
  473. Run in verbose mode. Messages will be displayed at start-up,
  474. when a fasl file is loaded or when there is a garbage
  475. collection. }
  476. \vspace{2mm} \noindent {\large \bf -W}
  477. \vspace{1mm}
  478. \hspace*{.25in}\parbox{4.5in}{
  479. This is used to disable use of the window manager, and instead to run
  480. in a ``glass teletype'' mode.
  481. }
  482. \vspace{2mm}\noindent {\large \bf -X }
  483. \vspace{1mm}
  484. \hspace*{.25in}\parbox{4.5in}{
  485. Unset any traps so errors lead to system crashes. This is used for debugging.
  486. }
  487. \vspace{2mm}\noindent {\large \bf -Y }
  488. \vspace{1mm}
  489. \hspace*{.25in}\parbox{4.5in}{
  490. Ignore calls to {\em restart}.
  491. }
  492. \vspace{2mm} \noindent {\large \bf -Z}
  493. \vspace{1mm}
  494. \hspace*{.25in}\parbox{4.5in}{
  495. See below: cold-start mode for use by system builders only.}
  496. \vspace{2mm}
  497. \noindent {\large \bf filename}
  498. \vspace{1mm}
  499. \hspace*{.25in}\parbox{4.5in}{
  500. Make that file available to CSL as its standard input file.
  501. If several files are given the top-level read--eval--print
  502. procedure will be invoked several times, once for each. Note
  503. that a file being read this way will not be deemed to be a
  504. ``terminal'' file (while on some systems the shell redirection
  505. <filename may leave CSL thinking that the input is direct from
  506. a terminal).}
  507. \vspace{2mm}
  508. \noindent {\large \bf $>$(filename)}
  509. \vspace{1mm}
  510. \hspace*{.25in}\parbox{4.5in}{
  511. Redirects the standard output to the given file. This option
  512. is present as a fall-back, in that it will usually be the case
  513. that output re-direction can be done by the shell or operating
  514. system, and CSL will not need to worry about it. This option
  515. will not be enabled in general, on the assumption that
  516. operating system redirection is better.}
  517. \vspace{4mm}
  518. There are limits on the number of files CSL can accept and the number
  519. of symbols it can predefine --- up to 40 source files are permitted, up
  520. to 20 directories in the FASL search path (including the implicit one
  521. present by default at the start of the run), and up to 40 symbols can
  522. be defined or undefined.
  523. \section{Corrections to \REDUCE\ }
  524. \label{update}
  525. A patches file, correcting various problems that have been discovered
  526. since the initial release of \REDUCE\ 3.8, is available for installation in
  527. the Codemist versions of \REDUCE. To do this you either click the
  528. {\em REDUCE update} menu item, or issue the \REDUCE\ command:
  529. \begin{verbatim}
  530. update_reduce();
  531. \end{verbatim}
  532. This will install the patches file and make it available in this and
  533. future runs of \REDUCE. If \REDUCE\ is already up to date it will report this
  534. fact, otherwise it just produces brief messages about contacting the
  535. server where updates live.
  536. If you have any problems with this update procedure, you can download
  537. the relevant file, {\tt patches.fsl}, from {\tt
  538. http://reduce-algebra.com/support/patches} . This file should be
  539. installed in either your home directory, or the directory where your
  540. \REDUCE\ executable and image files ({\em i.e.\/} {\tt r38.exe} or {\tt
  541. r38} and {\tt r38.img}) live. The version in your home directory has
  542. precedence if such files exist in both places. When you next run
  543. \REDUCE, your software is updated with the patches file. If network
  544. failure or other issues cause the {\tt patches.fsl} file to get
  545. corrupted then you can should just delete it and a corrected version
  546. will be fetched the next time you update \REDUCE.
  547. Full details of the issues addressed by patches are available at the web
  548. address given above. The file {\tt patches.txt} describes problems, a file
  549. {\tt patches.tst} is a test script and {\tt patches.rlg} sample output
  550. from the tests.
  551. If you retrieve these files from {\tt www.reduce-algebra.com} you can just read
  552. {\tt patches.tst} into a freshly-started copy of \REDUCE\ and compare its output
  553. with {\tt patches.rlg}. The usual \REDUCE\ menus and commands can be used to read
  554. the file and save output from it so that it is convenient to make the
  555. comparison. When \REDUCE\ is run in a window the FILE/READ menu can be used
  556. to read in the test file, and then FILE/SAVE can save the resulting
  557. output. If \REDUCE\ is on your path so you can run it from a command prompt
  558. a command such as
  559. \begin{verbatim}
  560. r38 patches.tst -l patches.log
  561. \end{verbatim}
  562. would read the test file and leave a copy of its output in {\tt patches.log}
  563. \section{Gnuplot}
  564. The following notice is taken from the {\bf gnuplot} distribution. The
  565. version included here was taken from a generally available software
  566. archive, and up to date versions should be similarly available.
  567. The distributed version is taken directly from the Internet. It is not
  568. part of \REDUCE\ , but is supplied as \REDUCE\ can generate output for {\bf
  569. gnuplot} and is the usually graphical output system for \REDUCE\ .
  570. {\small
  571. \begin{verbatim}
  572. /*
  573. * Copyright (C) 1986 - 1993 Thomas Williams, Colin Kelley
  574. *
  575. * Permission to use, copy, and distribute this software and its
  576. * documentation for any purpose with or without fee is hereby granted,
  577. * provided that the above copyright notice appear in all copies and
  578. * that both that copyright notice and this permission notice appear
  579. * in supporting documentation.
  580. *
  581. * Permission to modify the software is granted, but not the right to
  582. * distribute the modified code. Modifications are to be distributed
  583. * as patches to released version.
  584. *
  585. * This software is provided "as is" without express or implied warranty.
  586. *
  587. * AUTHORS
  588. *
  589. * Original Software:
  590. * Thomas Williams, Colin Kelley.
  591. *
  592. * Gnuplot 2.0 additions:
  593. * Russell Lang, Dave Kotz, John Campbell.
  594. *
  595. * Gnuplot 3.0 additions:
  596. * Gershon Elber and many others.
  597. *
  598. * Send your comments or suggestions to
  599. * info-gnuplot@dartmouth.edu.
  600. * This is a mailing list; to join it send a note to
  601. * info-gnuplot-request@dartmouth.edu.
  602. * Send bug reports to
  603. * bug-gnuplot@dartmouth.edu.
  604. */
  605. \end{verbatim}
  606. }
  607. \subsection{\REDUCE\ Help System}
  608. \label{help}
  609. The \REDUCE\ help is presented in HTML and is viewed via a browser,
  610. either the system default, or as selected from the Reduce Help menu.
  611. The initial page is a list of major topics.
  612. {\em *** would be nice if it had at least a Reduce and/or CSL picture
  613. and header!!}
  614. There is also a link to an alphabetical index page.
  615. \section{Managing Images}
  616. \label{OptO}
  617. The state of a \REDUCE\ session can be captured through use of the
  618. LISP function {\tt preserve}. When CSL is first entered it loads a
  619. heap image from the data fork of the application; a call to {\tt lisp
  620. preserve()} dumps the current state of CSL, including all current
  621. variable and function definitions (but not the stack), back onto that
  622. file. CSL then stops. Optionally a quoted argument can be given to
  623. {\tt preserve}: this will be treated as the name of a function to be
  624. called when the dumped image is re-loaded, and typically it will be a
  625. replacement for the built-in CSL read--eval--print loop. In general
  626. for \REDUCE\ this function is {\tt begin}. If such an argument is not
  627. given, or if {\tt NIL} is specified, then the startup function present
  628. when CSL was loaded is retained. The InitialImage subfile is kept as
  629. part of the data fork of the application, so those wanting to produce
  630. a modified version of the system will usually need to take a copy of
  631. the entire file. Alternatively use can be made of the -O option
  632. discussed later and -Z which can start up CSL without the benefit of
  633. any initial Image file. From within a running system a call to {\tt
  634. restart!-csl} abandons all existing calculations and sets the system
  635. up as if it had just been loaded. If the argument to {\tt
  636. restart!-csl} is nil then it is as if the -Z option had been given,
  637. and only a very minimal Lisp environment is available. Otherwise an
  638. initial image is loaded, as at the start of a normal run. This
  639. function is used in the scripts that rebuild a complete \REDUCE, but
  640. is not expected to be of interest to the casual \REDUCE\ user.
  641. {\em More Needed here???}
  642. \end{document}
  643. [end]
  644. }