It a draft

Le mer. 8 janv. 2025, 18:15, Grégory Vanuxem <[email protected]> a écrit :

> Error.
>
> Sorry
>
>
> Le mer. 8 janv. 2025 à 18:12, Grégory Vanuxem <[email protected]> a
> écrit :
> >
> > --- LONG MAIL --
> >
> > Hello here,
> >
> > I am requesting some testing for FriCAS with minimal support of Julia
> > behind the scenes using libjulia. A work in progress I am working on
> > among other FriCAS related things. I call it jlFriCAS as of now.
> > Thanks to Qian for his work on GitHub CIs (Actions tab) which allowed
> > me to automatically build this work on arch/OS that I do not have
> > access to.
> >
> > Julia, https://julialang.org/, is necessary of course to load
> > dynamically libjulia.(.so | .dll | .dylib). You can build it if the
> > julia(.exe) executable is in your PATH. For simplicity I have tagged
> > some binaries on GitHub built from the GitHub CI upload (you can use
> > checksums to check their content if necessary, see Actions tab,I have
> > only changed the names of some archives). The x86_64 Linux is built
> > with all options set, Hunchentoot, HTML doc using Sphinx, Aldor
> > support etc... './configure --help' shows them. All versions are built
> > using SBCL as Common LISP backend.
> > https://github.com/gvanuxem/jlfricas/releases/tag/snaphot-20241216
> >
> > I would be very happy if you can download one or more of them and use
> > some simple functions with your settings, see below for two main
> > functions that interest me a lot, this addon uses two ways to
> > interface Julia.
> >
> > I am testing this work with 'make check' on GitHub using CIs. For
> > macOS I use 'julia-actions/setup-julia@latest' for CIs. But 'brew
> > install julia' worked too. Since macOS version 13 it is more difficult
> > to load the Julia library. For Windows julia.exe needs to be available
> > in your PATH, the same directory contains libjulia.dll. For x86_64
> > Linux, I provide a .deb package. Every binaries are build by GitHub
> > from GitHub source code, so source and commit are available (no
> > security problem):
> >
> > https://github.com/gvanuxem/jlfricas
> >
> > For Windows I still have a .iss file (Inno Setup Script Wizard
> > script). I will eventually adapt it, make a self install executable
> > wizard for my snapshot binaries (testing purpose) and send the .iss
> > script here for the contrib/ directory for example. Nevertheless,
> > thanks again to Qian, clicking on FRICASsys after unzipping the
> > archive starts jlFriCAS and the function jf64 does its job for
> > example, I just checked (JuliaFloat64 is supported at underlying C and
> > Lisp levels as a Lisp DoubleFloat).
> >
> > The Julia binaries are available here:
> > https://julialang.org/downloads/. I tried juliaup on GitHub CIs for
> > macOS without success but I do not have filesystem access to macOS so
> > that's not easy to understand why, but 'brew install julia' does the
> > job, see https://formulae.brew.sh/formula/julia
> >
> > About the internals, to resume things, I implemented two ways to use
> > Julia in FriCAS, the first interface uses the underlying CL FFI, only
> > SBCL and Clozure CL are supported actually. For data, JuliaInt64 uses
> > (signed-byte 64) for arrays or the same implementation than
> > SingeInteger in FriCAS for scalars. JuliaFloat32 and JuliaFloat64 use
> > Lisp single-float and double-float CL type. A wrapper in C interfaces
> > the CL FFI to use directly some specific operations in Julia. For
> > scalars data are passed by values, for arrays, via the CL FFI from the
> > underlying CL implementation, a C pointer is passed to Julia using
> > libjulia available operations. The principal goal is efficiency, so
> > even if some special scalar functions are added to FriCAS using Julia,
> > the main part is operating on arrays (vectors or matrices). Usual
> > linear algebra operations are provided using BLAS and LAPACK. a ')show
> > JuliaF64LinearAlgebra' will show you somes for 64bit arrays. Julia
> > uses internally the hardware optimized OpenBlas library which
> > historically comes from the Goto BLAS library (autotuned at startup
> > contrary to Atlas which used to tune the library a build time
> > depending on your processor). This library can be changed at run time,
> > for example with my Intel processor I can use MKL (called Intel oneAPI
> > as of now), with jlUsing "MKL".
> >
> > The second interface is completely different. It implements a very
> > simple Common Lisp class 'jlref' that holds a reference to every
> > object used in Julia but created in FriCAS, and its Julia type. The
> > manipulated Julia objects are used in FriCAS using this reference and
> > the real data, arrays for example, but virtually everything in Julia,
> > are in the Julia processes (multithreaded).
> >
> >
> >
> >
> >
> >
> > - Greg
>

-- 
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 view this discussion visit 
https://groups.google.com/d/msgid/fricas-devel/CAHnU2dYAWdXTuMGOK%3DYaxvT1Pg4AJMTvZiQ_mwbs_6%2Bijb%3DNJg%40mail.gmail.com.

Reply via email to