FriCAS Project

Problem statement.

FriCAS a fork of Axiom project. Its starting point is wh-sandbox branch of the Axiom project. Axiom project tried to use literate programming methodology and switch emphasis from code to documentation. In practice that meants that almost all code is wrapped in so called pamhlet files and must be extracted by noweb tool before use in build process. This causes significant difficulties during developement, starting from having long file name, problems of tracking errors to exact source locations and complications in Makefiles. Literate programming practice in Axiom produced little documentation, but makes sources harder to read for programmer. FriCAS will use traditional methodology for new developement and gradually convert other files back to traditional form (back because Axiom was originally developed using traditional methodology, and only during transition to open source project files where mechanically converted to "literate" form). Axiom project evolved very slowly, many simple fixes were not applied for long time (years). FriCAS will use lightweight developement, allowing much faster evolution.

Short term planned new technical developements.

Axiom system is written in multiple languages, main two called Boot and Spad are specific to Axiom. Boot and Spad are translated to Common Lisp. Currently Axiom is fully functional when working on top of Gnu Common Lisp (GCL). In wh-sandbox branch core functionlity works also with other Lisp implementations, and FriCAS should fully support other Lisp implementations. This should increase acceptance of FriCAS, because on some platforms GCL is hard to build, on some does not work at all and also Lisp developers frequently find other Lisp implementation preferable. The Spad language used for mathematical code in Axiom is strongly typed. Axiom system caches type information between builds -- during build it uses type information from previous build. This makes modifications to Axiom code very difficult, because after changing type in source old type information is used in many cases, causing spurious type errors. FriCAS will use only type information from sources eliminationg such problems. Many modern mathematical codes to get better speed are written in C or C++. FriCAS will interface to such codes to gain speed advantage. Currently Axiom system offers its own user interface, but it is somewhat dated -- mostly text based, graphics has old looks and feel. FriCAS add hooks which make adding alternative user interfaces easier.

Longer term plans.

The compiler for Spad language included in Axiom is buggy and has serious performance problems -- new compiler is needed. New mathematical algorithms. Assertion support.