Note that "rebuilding" does not mean recompiling all the constituent files.
As for finding a way to customize how much memory Maxima can use:
this is a limit of the underlying lisp (GCL), and I do not see
how it can be changed in any portable way.
There are some lisps that do a better job of this, but there
is a strong temptation to fix the size of a stack sometime before
you start computing.
The particular example of rectest can be improved simply by
doing compile(rectest). The program uses far less stack, and
I don't know when it overflows the stack, but rectest(n) works
for n < 1007 instead of messing up at n=95.
RJF
Milan Lukic wrote:
>Joshua Scholar [19/10/03 09:52 -0700]:
>
>
>>Eek! Did you mistype that? I have to recompile GCL!? and then recompile
>>Maxima in this new GCL.. Or did you actually mean that I only need to
>>recompile Maxima.
>>
>>
>>
>
>I do not even know if I am connecting the problems correctly. Here
>is what Vadim wrote on a "The CONS storage exhausted" problem, back
>on August 18, 2003:
>
> "Maxima's background lisp GCL has compile time maximum
> memory limit. Default value - 32K pages which amounts to
> ~128Mb of RAM. Your computation exhausted all this
> memory. Take a look at the output generated by the command
> :lisp (room)
> If your really need more RAM for your should rebuild
> GCL with --enable-maxpages=64*1024 or some other
> greater value and use this new GCL to rebuild Maxima."
>
>I don't really know anything about these issues.
>Milan
>
>
>
>>We need to find a way to make it possible to customize how much memory
>>Maxima can use - I would think there should be some way to send a command
>>line option to GCL to get it to start up differently... I'm running a
>>simplification routine over an equation that isn't huge, so I'm getting the
>>impression that the default stack size is amazingly small.
>>
>>I wrote a little factorial program to verify that the stack is miniscule.
>>
>>(C40) rectest(x):= if x=0 then 1 else rectest(x-1)*x;
>>(D40) rectest(x) := IF x = 0 THEN 1 ELSE rectest(x - 1) x
>>(C41) rectest(5);
>>(D41) 120
>>(C42) rectest(95);
>>
>>Error: Bind stack overflow.
>>Fast links are on: do (si::use-fast-links nil) for debugging
>>Error signalled by CATCH.
>>Broken at MACSYMA-TOP-LEVEL. Type :H for Help.
>>MAXIMA>>
>>
>>
>>Joshua Scholar
>>
>>----- Original Message -----
>>From: "Milan Lukic" <lmilan at shell>
>>To: "Joshua Scholar" <joshscholar@yahoo.com>
>>Sent: Saturday, October 18, 2003 10:10 PM
>>Subject: Re: [Maxima] how do compile lisp/init part of Maxima
>>
>>
>>
>>
>>>Hello Joshua,
>>>
>>>I had similar problems not so long ago. A month or so ago somebody
>>>(can't remember who) asked a similar question which I seconded. I
>>>think that Vadim replied that one needs to recompile GCL and set the
>>>stack variable there. My e-mail is in a mess right now, but if you
>>>do not get a reply from somebody knowledgable, I will try to find
>>>that Vadim's reply and send it to you. Sorry for such an incomplete
>>>answer.
>>>
>>>Milan Lukic
>>>
>>>
>>>Joshua Scholar [18/10/03 17:34 -0700]:
>>>
>>>
>>>>From my web searches I'm getting the impression that there's no way to
>>>>
>>>>
>>increase Maxima/GCL's bind-stack space without recompiling Maxima from
>>scratch. The *multiply-stacks* variable makes no difference until you get
>>back to the top level which apparently never happens.
>>
>>
>>>>changing Maximia-init.lisp does nothing, even if I reload it, which for
>>>>
>>>>
>>the same reason is unsurprising.
>>
>>
>>>>So how does the build process work? Does the install come with enough
>>>>
>>>>
>>stuff or do I need to download a GCL build...
>>
>>
>>>>How is this all done?
>>>>
>>>>Joshua Scholar
>>>>
>>>>
>>_______________________________________________
>>Maxima mailing list
>>Maxima@www.math.utexas.edu
>>http://www.math.utexas.edu/mailman/listinfo/maxima
>>
>>
>>
>
>_______________________________________________
>Maxima mailing list
>Maxima@www.math.utexas.edu
>http://www.math.utexas.edu/mailman/listinfo/maxima
>
>