vslmanual.tex 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. \documentclass[a4paper,12pt]{article}
  2. \title{Visible Standard Lisp User Manual}
  3. \author{Arthur Norman}
  4. \usepackage{epsfig}
  5. \usepackage{times,latexsym}
  6. \usepackage{wrapfig}
  7. \makeindex
  8. \newcommand{\vsl}{{\ttfamily vsl}}
  9. \newcommand{\nil}{{\ttfamily nil}}
  10. \newcommand{\tx}{\ttfamily}
  11. \newcommand{\sverb}{\small\begin{verbatim}}
  12. \begin{document}
  13. \maketitle
  14. There is a separate larger document that explaims what \vsl is
  15. and how it is implemented. This merely contains an explanation of how
  16. to fetch the sources and compile them, and a list of the functions
  17. that \vsl then provides.
  18. \section{Fetching and building vsl}
  19. You can fetch \vsl sources using {\tx subversion}. If you do not have that
  20. installed on your computer already you need to discover how to fetch it.
  21. On Linux this will be easy using a package manager (typically {\tx yum}
  22. on Fedora or {\tx apt-get} on Debian or Ubuntu). On Windows if you visit
  23. {\tx www.cygwin.com} you can fetch their setup program and install their
  24. environment -- ensuring that you install {\tx make}, {\tx gcc} and
  25. {\tx subversion}, and probably {\tx tex}.
  26. Then you can go
  27. {\sverb
  28. U=https://reduce-algebra.svn.sourceforge.net
  29. V=$U/svnroot/reduce-algebra/trunk
  30. svn co $V/vsl
  31. \end{verbatim}}
  32. which should create a directory called {\tx vsl} and put a collection of
  33. files in it. The above instructions build up the path at {\tx sourceforge}
  34. to fetch this from in parts so you only have to type a modest
  35. amount on each line. The files you will fetch amount to about a megabyte,
  36. and so should not be a severe strain on anything.
  37. If you also want to use \vsl{} to build a version of the Reduce algebra
  38. system you should follow up the subversion calls with another call (relying
  39. on the variable {\tx \$V} you set up to point to the subversion repository).
  40. {\sverb
  41. svn co $V/packages
  42. \end{verbatim}}
  43. This time you will end up with around 60 Mbytes in a directory called
  44. {\tx packages}. That is the full set of sources for Reduce. Even though you
  45. are not liable to be able to make use of all of them the easiest recipe
  46. involves you fetching everything.
  47. To build \vsl{} and then try it you can then go
  48. {\sverb
  49. cd vsl
  50. make
  51. ./vsl
  52. (oblist)
  53. (stop 0)
  54. \end{verbatim}}
  55. For the build to succeed you will need to have the {\tx gcc} C compiler
  56. installed, and to rebuild the manual the {\tx pdflatex}\footnote{typically
  57. instaled for you as part of some broader \LaTeX package such as texlive.}
  58. command is required. Again you may need to use a package manager to ensure
  59. that they are available.
  60. In the above small example you verify that \vsl{} will run by calling the
  61. function {\tx (oblist)} to display a list of all \vsl's built-in
  62. symbols, then you use {\tx (stop 0)} to exit from the system.
  63. To try Reduce (see {\tx http://reduce-algebra/sourceforge.net} for
  64. full information. In particular there is a manual hidden there) you go
  65. {\sverb
  66. make reduce
  67. ./vsl
  68. \end{verbatim}}
  69. The ``{\tx make reduce}'' step builds (much of) Reduce and saves
  70. the result in {\tx vsl.img}. When you next start \vsl it reloads that
  71. image file. Then you can try various algebraic examples. One of my
  72. favourites is
  73. {\sverb
  74. int(1/(x^6-1), x);
  75. in "../packages/alg/alg.tst";
  76. \end{verbatim}}
  77. The \vsl-hosted Reduce will be significantly slower than other versions
  78. and it certainly has severe limitations because \vsl{} does not provide
  79. arbitrary prevision arithmetic. It is expected that there will be cases
  80. where some Reduce facilities try to use functions that \vsl{} does not
  81. provide -- and then crashes. It would be helpful if such cases can be
  82. collected and reported at least so that a section can be inserted here
  83. documenting Reduce limitations under \vsl.
  84. \section{Summary of functions in \vsl}
  85. \input vslfunctions.tex
  86. \input vslmanual.ind
  87. \end{document}