On Wed, Mar 04, 2026 at 02:54:11PM -0500, Camm Maguire wrote:
> Greetings, and thanks for your report!
>
> The preferred solution to this is one of
>
> 1) (setq si::*code-block-reserve* (make-array 50000000 :element-type 'character :static t)
> or whatever size in build image before build
We had
#+:gcl(progn (setq si::*code-block-reserve* "")(si::gbc t)(setq si::*code-block-reserve* (make-array 10000000 :element-type (quote character) :static t) si::*optimize-maximum-pages* t))
Replacing 10000000 by 50000000 fixes the problem (actually evan much
smaller increment seem to be enough). I am not sure how
big this should be. On my machine total size of .o files that
potentially may be loaded as reported by 'size -t' is 39384980. On
different architecture this may be bigger. Also, given file may
be loaded multiple times, so there is some possiblity of fragmentation.
> 2) export GCL_MEM_BOUND=29 to limit the build heap to 1G
> 3) (setq compiler::*default-large-memory-model-p* t)
>
> The last is the least preferable as it incurs a 10% performance penalty.
>
> The Debian fricas package does not seem to run into this, though it uses
> gcl27, also in Debian testing.
I saw no memory problem with version which describes itself as "2.7.1
git: Version_2_7_0".
> I would like both 2.6 and 2.7 to work at
> the moment, but there does not seem any reason to prefer 2.6 at this
> point.
I looked at this version as this is what Debian 13 user gets by
default (at least I got this version upgrading to current Debian).
> Please note that I believe you also need the ANSI image for fricas,
> which you can get with export GCL_ANSI=t for the gcl package. It is the
> default for gcl27.
I get the same test result regardless of if it is ANSI or CLtL image.
For completeness let me add that both give the following error:
draw(1/x, x = 0.0..2.0, adaptive == false)
Compiling function %C with type DoubleFloat -> DoubleFloat
>> System error:
Condition in FUNCALL [or a callee]: INTERNAL-SIMPLE-ERROR: Zero divisor.
Continuing to read the file...
After increasing reserved memory size it is the only problem that
I see.
This happened also with 2.6.14. Other problems with 2.6.14 are no
longer present. In 2.7.1 the above does not signal error, but resulting
graph is wrong, namely it looks as if the function was 0
> In case fricas supports parallel make, you might want to investigate the
> other important GCL memory environment variable, export
> GCL_MULTIPROCESS_MEMORY_POOL=$(pwd). This allows the sharing of one
> designated heap size, either limited only by system memory or restricted
> via GCL_MEM_BOUND, among many processes. Both axiom and acl2 make use
> of this at present.
I routinely use parallel make, now it seems to work without extra
settings, at least on my machines.
--
Waldek Hebisch