On 1/09/2014 3:18 PM, David Billinghurst wrote:
On 1/09/2014 1:37 PM, David Billinghurst wrote:
On 1/09/2014 1:03 PM, David Billinghurst wrote:
I have problems with maxima-5.33.0 and Version_2_6_11pre on
msys/windows. Simple test case below.
There are issues with maxima-5.34.0 - released a few days ago - and
Lisp implementations which compute floating point infinity by
default (GCL, ECL). See
http://sourceforge.net/p/maxima/mailman/message/32778820/ for
irrelevant details. To avoid these I have focused on maxima-5.33.0,
which works nicely with gcl-2.6.10.
I am comparing two freshly built gcls, using current mingw/msys
32-bit system under Windows XP SP3.
1. gcl-2.6.10 built from tarball, with configure patched to use
system gmp
2. gcl git Version_2_6_11pre of around 12 hours ago
Both gcls are built using "./configure --enable-ansi --enable-dynsysgmp"
Then build maxima-5.33.0 from tarball, using the two uninstalled gcl
./configure --enable-gcl --with-gcl=<path
to>/gcl-xxx/unixport/saved_ansi_gcl.exe
make
make check
Using gcl-2.6.10, all tests pass. Using Version_2_6_11pre I get a
testsuite failure and then a "hang" in rtest11.mac.
I have started digging. The first reduced testcase is the maxima
command "is(%pi>1);"
Using maxima/gcl-2.6.10 the answer is "true"
With maxima/Version_2_6_11pre the answer is "unknown"
I need to put this aside for now, but may get back to it later today.
A further reduced maxima test case is "?sign1(%e);", or at the lisp
level (sign1 '$%e)
Using maxima/gcl-2.6.10 the answer is "pos"
With maxima/Version_2_6_11pre the answer is "pnz"
Digging further, the lisp variables in maxima that contains the
floating point value for e and pi are symbols when compiled with
Version_2_6_11pre
When compiled with gcl-2.6.10
to_lisp();
MAXIMA> %e-val
2.718281828459045
MAXIMA> (type-of %e-val)
LONG-FLOAT
When compiled with Version_2_6_11pre
to_lisp();
%e-val
|2.718281828459..(pruning extra digits).... |
MAXIMA> (type-of %e-val)
SYMBOL
and similarly for %pi-val
Sorry for spamming the list, but I have made more progress. Maxima
stores the numerical value of float constants %e. %pi, %phi and %gamma
on the property list of these symbols.
They are defined in the maxima file mlisp.lisp to 2048 bits of
precision. I have trimmed the digits for readability
(mdefprop $%e 2.7182818284..<pruning extra digits>... $numer)
The two versions of gcl treat long decimal numbers differently. Here is
a self contained lisp test case
(setq e 2.7182818...<pruning extra digits>.... )
with gcl-2.6.10
2.718281828459045
with Version_2_6_11pre
Cell error on |2.718281828459045..(pruning extra digits)....|
Unbound variable.The variable |2.71828182845904..(pruning extra
digits)....| is unbound
_______________________________________________
Gcl-devel mailing list
Gcl-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/gcl-devel