Refactor to Libraries
Brought to you by:
whebisch
Hi,
I've wondered that Axiom and its forks including FriCAS are Linux/Unix only and needs Cygwin/VM-Ware to run on windows.
I understand that these projects are very old. But there should be the possibility for this project to
a) run natively in an windows environment and
b) be used as library by other applications
I think the project needs some heavily refactoring to do so. I guess the first step would be to refactor the source into distinct libraries:
* input/output (including formaters for MathML, TeX, etc.)
* user interface
* compiler
* math/algebra
The libraries should have bindings to other programming languages including Java and .NET, as they are the most common these days.
Core FriCAS can run natively (as a native executable) on Windows.
Currently "only" GUI part does not work a native program. GUI
could work natively given native Xlib. But currently the only
freely available Xlib on Windows is provided by Cygwin. In
Principle FriCAS GUI could be ported to use Windows API. This
would require moderate effort, but realistically can be only
done by a Windows user. To the moment no Windows user volunteered
to do such port. So we provide Cygwin binaries because alternatives
would lack GUI.
Concerning refactoring into distinct libraries: FriCAS already consits
of several libraries. About 70% FriCAS code is dynamically loaded
on first use. But FriCAS is written in high-level language
and needs special runtime support. Each high level language imposes
its own memory organization which typically is incompatible with
other languages. So cooperation with other languages requires
translation layers, which require effort to develop.
So cooperation wit .NET or Java may happen, but is of relatively
low priority: effort is large compared to effect.