Skip to content

Commit c260296

Browse files
authored
Update README.md
1 parent e2be227 commit c260296

File tree

1 file changed

+56
-39
lines changed

1 file changed

+56
-39
lines changed

README.md

+56-39
Original file line numberDiff line numberDiff line change
@@ -8,81 +8,98 @@
88
[FriCAS](https://fricas.github.io) is a general purpose computer algebra
99
system (CAS).
1010

11-
In this work-in-progress repository, wrappers to some [Julia](https://julialang.org)
12-
specific operations are added to FriCAS. It supports SBCL or Clozure CL build but, as of now, only Julia 1.10.0 is
13-
supported for a SBCL based FriCAS, see [Caveats](#caveats). It should not be considered production-ready.
11+
In this work-in-progress repository, a C wrapper using libjulia is embedded in FriCAS to support some [Julia](https://julialang.org) based specific operations (for example, system optimized BLAS and LAPACK libraries). It supports SBCL (preferred) and Clozure CL build, but only Julia 1.10.0 and Julia 1.11.0-alpha* or -beta* are supported with SBCL, see [Caveats](#caveats). It must not be considered production-ready.
1412

1513
## Building and Installing
1614

1715
For general installation instructions see INSTALL. For general documentation
1816
consult <https://fricas.github.io>.
1917

20-
To build FriCAS with Julia support, a simple
21-
<code>./configure --enable-julia</code> should do the trick. The required Julia packages are Suppressor, Nemo and SpecialFunctions. If you want to visualize your data, small support is provided using Plots and eventually LaTeXStrings Julia packages .
18+
To build FriCAS with Julia support, the <code>julia</code> executable needs to be available in your PATH, and a simple <code>./configure --enable-julia</code> should do the trick. The required Julia packages are Suppressor, Nemo and SpecialFunctions. As of now with Clozure CL [queues](https://github.com/oconnore/queues) is also required. Use installed [quicklisp](https://www.quicklisp.org/beta/) with `queues`, and at configure time, if necessary, use the `--with-quicklisp` option, see the `quicklisp` documentation. If you want to visualize your data using Julia, small support is provided using StatsPlots and eventually the LaTeXStrings Julia packages. See the available FriCAS packages below.
2219

23-
The <code>julia</code> executable needs to be available in your PATH.
24-
If you want to add Jupyter support with a SBCL based FriCAS, make sure [hunchentoot](https://edicl.github.io/hunchentoot/) is installed, and as of now on Clozure CL [queues](https://github.com/oconnore/queues) is also required (use installed [quicklisp](https://www.quicklisp.org/beta/) with `queues` at configure time if necessary, see the `quicklisp` documentation).
20+
If you want to add Jupyter support with a SBCL based FriCAS, make sure [hunchentoot](https://edicl.github.io/hunchentoot/) is installed. On a Debian like system you can add `hunchentoot` with <code>sudo apt install cl-hunchentoot</code> and issue, for example, <code>./configure --enable-gmp --enable-julia --enable-hunchentoot</code>.
2521

26-
On a Debian like system you can add `hunchentoot` with <code>sudo apt install cl-hunchentoot</code>
27-
and issue, for example,
28-
<code>./configure --enable-gmp --enable-julia --enable-hunchentoot</code>.
2922
To know which categories/domains/packages are added to FriCAS issue in the
3023
FriCAS interpreter <code>)what things julia</code> and/or <code>)what things nemo</code> or use HyperDoc:
3124

3225
```
3326
(1) -> )what things julia
27+
Operations whose names satisfy the above pattern(s):
28+
29+
juliaCMPrint juliaCVPrint juliaIVPrint juliaMPrint
30+
juliaVPrint
31+
32+
To get more information about an operation such as juliaVPrint ,
33+
issue the command )display op juliaVPrint
3434
------------------------------- Categories --------------------------------
35+
36+
Categories with names matching patterns:
37+
julia
38+
3539
JARBPR JuliaArbitraryPrecision JMATCAT JuliaMatrixCategory
36-
JOBJECT JuliaObject(only with SBCL) JRING JuliaRing
40+
JOBJTYP JuliaObjectType JRING JuliaRing
3741
JTYPE JuliaType JVECCAT JuliaVectorCategory
3842
--------------------------------- Domains ---------------------------------
43+
44+
Domains with names matching patterns:
45+
julia
46+
3947
JCF64 JuliaComplexF64 JCF64MAT JuliaComplexF64Matrix
4048
JCF64SMA JuliaComplexF64SquareMatrix JCF64VEC JuliaComplexF64Vector
41-
JCFLOAT JuliaComplexFloat (only with SBCL)
42-
JF64 JuliaFloat64
43-
JF64MAT JuliaFloat64Matrix JF64SMAT JuliaF64SquareMatrix
44-
JF64VEC JuliaFloat64Vector JFLOAT JuliaFloat (only with SBCL)
45-
JI64 JuliaInt64 JI64VEC JuliaInt64Vector
46-
JMATRIX JuliaMatrix (only with SBCL) JOBJECT- JuliaObject& (only with SBCL)
49+
JCFLOAT JuliaComplexFloat JDFRAME JuliaDataFrame
50+
JF64 JuliaFloat64 JF64MAT JuliaFloat64Matrix
51+
JF64SMAT JuliaF64SquareMatrix JF64VEC JuliaFloat64Vector
52+
JFLOAT JuliaFloat JI64 JuliaInt64
53+
JI64VEC JuliaInt64Vector JMATRIX JuliaMatrix
54+
JOBJECT JuliaObject JOBJTYP- JuliaObjectType&
4755
JSTR JuliaString JSYM JuliaSymbol
48-
JVECTOR JuliaVector (only with SBCL)
56+
JVECTOR JuliaVector
4957
-------------------------------- Packages ---------------------------------
58+
59+
Packages with names matching patterns:
60+
julia
61+
5062
JCF64MTF JuliaComplexF64MatrixTranscendentalFunctions
5163
JCFSF JuliaComplexFloatSpecialFunctions
5264
JCLA JuliaComplexLinearAlgebra JDRAW JuliaDrawFunctions
5365
JF64MTF JuliaF64MatrixTranscendentalFunctions
5466
JF64SF JuliaFloat64SpecialFunctions
5567
JF64SF2 JuliaFloat64SpecialFunctions2
56-
JF64VEC2 JuliaFloat64VectorFunctions2
57-
JFSF JuliaFloatSpecialFunctions (only with SBCL)
58-
JFSF2 JuliaFloatSpecialFunctions2 (only with SBCL)
59-
JPLOT JuliaPlotFunctions
68+
JF64VEC2 JuliaFloat64VectorFunctions2 JFSF JuliaFloatSpecialFunctions
69+
JFSF2 JuliaFloatSpecialFunctions2 JPLOT JuliaPlotFunctions
6070
JRLA JuliaRealLinearAlgebra JUF JuliaUtilityFunctions
6171
JVECTOR2 JuliaVectorFunctions2
6272
--------------- System Commands for User Level: development ---------------
63-
64-
------------------------- System Command Synonyms -------------------------
73+
74+
System commands at this level matching patterns:
75+
julia
76+
77+
julia juliad jlapropos jldoc
6578
```
66-
Nemo Categories/Domains/Packages (JuliaObject) are only built using SBCL:
79+
Nemo Categories/Domains (JuliaObject):
6780
```
6881
(1) -> )what things nemo
6982
------------------------------- Categories --------------------------------
83+
84+
Categories with names matching patterns:
85+
nemo
86+
7087
NRING NemoRing NTYPE NemoType
7188
--------------------------------- Domains ---------------------------------
89+
90+
Domains with names matching patterns:
91+
nemo
92+
7293
NAN NemoAlgebraicNumber NCB NemoComplexBall
7394
NCF NemoComplexField NECF NemoExactComplexField
74-
NFF NemoFiniteField NINT NemoInteger
75-
NMP NemoMultivariatePolynomial NPF NemoPrimeField
76-
NRAT NemoRational NRB NemoRealBall
77-
NRF NemoRealField NUP NemoUnivariatePolynomial
78-
NZMOD NemoIntegerMod
79-
-------------------------------- Packages ---------------------------------
80-
--------------- System Commands for User Level: development ---------------
81-
82-
System commands at this level matching patterns:
83-
julia
95+
NFF NemoFiniteField NFR NemoFactored
96+
NINT NemoInteger NMP NemoMultivariatePolynomial
97+
NPF NemoPrimeField NRAT NemoRational
98+
NRB NemoRealBall NRF NemoRealField
99+
NUP NemoUnivariatePolynomial NZMOD NemoIntegerMod
84100
85-
julia juliad
101+
```
102+
```
86103
------------------------- System Command Synonyms -------------------------
87104
88105
user-defined synonyms satisfying patterns:
@@ -93,10 +110,10 @@ user-defined synonyms satisfying patterns:
93110
94111
```
95112

96-
If you want to build and install locally the HTML documentation,
113+
If you want to build and locally install the HTML documentation,
97114
you need to install Sphinx. On a Debian like system, to add it, issue in a
98115
terminal <code>sudo apt install python3 python3-pip && pip3 install -U Sphinx</code>.
99-
After building FriCAS, and before the installation, issue in the terminal
116+
After building FriCAS, and before the installation, issue in your terminal
100117
<code>make htmldoc</code>.
101118

102119
## Description
@@ -132,4 +149,4 @@ Current development goals:
132149

133150
## Caveats
134151

135-
Julia support with SBCL is erratic, depending on the Julia version used. The 1.10.0 version seems to have solved problems related to memory management interactions with SBCL, but with Julia 1.10.1 and 1.10.2 problems occur again. Note that with Julia 1.11.0-alpha2, FriCAS seems to work fine. More work needs to be done in this regards. So, if you use SBCL to build FriCAS, imperatively use a version of Julia that is known to be compatible.
152+
Julia support with FriCAS built with SBCL is/was erratic, depending on the Julia version used. The 1.10.0 version seems to have solved problems related to memory management interactions with SBCL, but with Julia 1.10.1 and 1.10.2 problems occur again. Note that with Julia 1.11.0-alpha* and later, FriCAS seems to work fine again. More work needs to be done in this regard. So, if you use SBCL to build FriCAS, imperatively use a version of Julia that is known to be compatible.

0 commit comments

Comments
 (0)