Ralf Hemmecke wrote:
> 
> Waldek, I'd be happy, if we had somewhere an informal description of how
> the FriCAS build process works. In particular, the first bootstrap
> steps. Or have you already written up something? I'd be happy if this
> lives inside the repository as a simple .txt file or (better) a .rst or
> .md file. That should not be a repetition of what the Makefile.in says,
> but rather describing the rough idea of what passes are run in order to
> end up with AXIOMsys. I think, half a page would be sufficient.
> 
> Looking into build/x86_64-linux-gnu/bin, I also find lisp, bootsys,
> interpsys. A short text about their meaning would not be a bad thing.

Normal build from svn works as follows:

1) First is src/lisp subdirectory.  This creates 'lisp' executable
   which is kind of virtual Lisp specialized to support FriCAS.
   In particular it contains Lisp packages, utility functions
   for creating executables and various Lisp macros and functions
   for supporting Shoe and Spad.  Basically, thanks to our
   functionality added to 'lisp' in other stages we have
   resonably uniform set of tools.
2) src/boot.  This contains Shoe to Lisp translator.  Uses bootstrap
   techinque to build from cached (precompiled) Lisp files and
   then re-build form Shoe sources.  Part titled 'The Boot Compiler'
   in src/boot/Makenotes.tex contains reasonable description of
   bootstrap process for Shoe.  The result of Shoe bootstrap
   is 'bootsys'.
3) src/interp.  Here we use 'bootsys' to compile '.boot' files.
   Things are somewhat complicated because we want to include
   Shoe to Lisp translator in 'interpsys' and 'AXIOMsys'.
   Also ECL is different than other Lisps.  That is why we
   first create 'makeint.lisp' from the Makefile and delegate
   creation of executable to 'makeint.lisp'.  The result
   is 'interpsys'.
4) 'interpsys' is used to compile Spad files and bootstrap
   algebra.  This is described in 'doc/algebra_build.txt'.
5) Once algebra is build small but frequently used part
   of algebra is preloaded into 'interpsys' creating
   'AXIOMsys' (the rest of algebra is loaded on demand).
   Also a few variables in 'AXIOMsys' have different value
   than in 'interpsys'.  For ECL preloading does not work
   and 'AXIOMsys' differs from 'interpsys' only in few
   variables.
6) AXIOMsys is used to generate .pht pages for HyperDoc.

Release tarball contains pregenerated Lisp files for algebra,
databases and .pht pages so in stage 4 there is only Lisp
compilation and stage 6 is completely skipped.

If this description is good enough I would put is in
doc/build.txt

-- 
                              Waldek Hebisch

-- 
You received this message because you are subscribed to the Google Groups 
"FriCAS - computer algebra system" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/fricas-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to