>> Then maybe we do that with HashTable afterwards. I would rather
>> like this hunchentoot thing inside FRICASsys as I described here
>>
>>
https://hemmecke.github.io/fricas/install.html#jfricas-optional
>>
>> patches are in the wip/fricas-jfricas branch of my github repo.
>
> Hmm, in one place you mention wip/fricas-sbcl-hunchentoot, which one
> should I look at.aaOoop...
I say
git clone -b wip/fricas-sbcl-hunchentoot
https://github.com/hemmecke/fricas.git
on the above URL (install.html), then it is certainly that.
I locally work on wip/fricas-jfricas but never pushed that back to
github. Anyway wip/fricas-sbcl-hunchentoot is the one.
>> The above basically describes a way to build everything from the
>> gitrepo that could then make a distribution.
> Well, quicklisp dependence is very problematic. One trouble is that
> during release build there is no network access.
OK, but you must somehow get all fricas prerequisites onto that machine.
I experimented with Kurt and using quicklisp was the easiest to get
hunchentoot into a loadable situation without juggling too much with a
lot of problems.
There are two problems to solve.
1) easily build from github sources (getting prerequisites on the fly)
for end users that build fricas themselves
2) build a distribution as a release manager
I was not aware that you insist on "no network" during release build
(but actually, at the time you are able to start "configure && make" no
network is concacted).
I think the whole thing can also made to work with an apt installed
hunchentoot, but the boilerplate code would be too complicated to care
for every platform.
You can also install a quicklisp environment with hunchentoot already
loaded (just as any other prerequisite). That is why on install.html all
that stuff is listed in the prerequisites section. If you are in the
section "Detailed installation instructions", then network access is
only needed to get the fricas sources.
> Another is that it seem to be unversioned, so there is no way to say
> "works with P1 version x1.y1, P2 version x2.y2, ..., Pn verion
> xn.yn". It seems that to work around this we will need to bundle
> everything that quicklisp fetches from the net.
OK, that seems indeed to be a problem, not being able if quicklisp
doesn't let me pin some versions of the things I fetch. I must look into it.
> Another trouble is hardcoded paths. FriCAS is supposed to find all
> files that it needs relative to path specified by FRICAS environment
> variable. Currently for Lisp files I use simple approach:
> everything that is needed is loaded and dumped as part of core.
If you saw some paths on the above URL, then they are deliberately done
through environment variables. Nothing is hardcoded. I just used FDIR as
a common place to do all the work. When that directory is remove,
nothing else on your computer would be change. (That was done for users
that want to install themselves, but is actually also interesting for
building a distribution.
The other thing is, once FRICASsys is built, and put into the binary
release tarball, then the target system (end user) does not have to have
quicklisp or hunchentoot, because hunchentoot is inside the FRICASsys
image. That's the whole idea -- hunchentoot into the image. There is
then also no need to fiddle around with SBCL_HOME.
I'm a bit busy with other things, but will try to open a pull request on
github so that we can discus further on the PR and hopefully Kurt will
then also chime in and comment.
I hope that clarifies the big picture.
Ralf