Differences between revisions 8 and 24 (spanning 16 versions)
Revision 8 as of 2009-01-11 00:45:57
Size: 5324
Comment: add numerical noise in sage/rings/qqbar.py issue
Revision 24 as of 2022-04-05 02:15:00
Size: 0
Editor: mkoeppe
Comment: outdated
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Sage 3.2.3 on Solaris x86 build notes =

== Build Issues ==

 * numpy's root finding code segfaults when linked against ATLAS - no solution yet, but as a workaround build numpy without ATLAS support
 * spkg-install in jmol is borken - a fix is coming
 * gnucrypot 1.4.0 needs too much entropy at startup - an upgrade to 1.4.3 fixes that. From the release notes of version 1.4.1 (2008-04-25):
{{{

* Fixed a bug introduced by 1.3.1 which led to the comsumption of far
too much entropy for the intial seeding.
}}}

== Fixes ==

=== sage-native-execute is using bashism ===
{{{
diff -r 396119818b99 sage-native-execute
--- a/sage-native-execute Fri Jan 02 14:18:47 2009 -0800
+++ b/sage-native-execute Thu Jan 08 03:15:44 2009 -0500
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/usr/bin/env bash
 
 export LD_LIBRARY_PATH=$SAGE_ORIG_LD_LIBRARY_PATH
 if [ `uname` = 'Darwin' ]; then
}}}


=== interface/singular.py pexpect hangs ===
Singular seems to be limited to about 180 characters via the pexpect interface. Applying this patch works around that limitation by using the file interface:
{{{
diff -r e69ceb84399b sage/interfaces/singular.py
--- a/sage/interfaces/singular.py Fri Jan 02 23:01:05 2009 -0500
+++ b/sage/interfaces/singular.py Sat Jan 10 13:29:09 2009 -0500
@@ -316,7 +316,7 @@
                         restart_on_ctrlc = True,
                         verbose_start = False,
                         logfile = logfile,
- eval_using_file_cutoff=1000)
+ eval_using_file_cutoff=100)
         self.__libs = []
         self._prompt_wait = prompt
         self.__to_clear = [] # list of variable names that need to be cleared.
}}}

=== NaN vs. nan and Infinity vs. inf in real_double.pyx ===
{{{
**********************************************************************
File "/home/mabshoff/build-3.2.3.final/sage-3.2.3.final-fulvia/devel/sage/sage/rings/real_double.pyx", line 1311:
    sage: RDF(0).log()
Expected:
    -inf
Got:
    -Infinity
**********************************************************************
File "/home/mabshoff/build-3.2.3.final/sage-3.2.3.final-fulvia/devel/sage/sage/rings/real_double.pyx", line 1313:
    sage: RDF(-1).log()
Expected:
    nan
Got:
    -NaN
}}}
This is fixed by the following patch since we now rely on GSL again instead of the underlying libc representation:
{{{
diff -r e69ceb84399b sage/rings/real_double.pyx
--- a/sage/rings/real_double.pyx Fri Jan 02 23:01:05 2009 -0500
+++ b/sage/rings/real_double.pyx Sat Jan 10 19:05:27 2009 -0500
@@ -1283,9 +1283,9 @@
     cdef _log_base(self, double log_of_base):
         if self._value < 2:
             if self._value == 0:
- return -1./0
+ return RDF(-1)/RDF(0)
             if self._value < 0:
- return 0./0
+ return RDF(0)/RDF(0)
             _sig_on
             a = self._new_c(gsl_sf_log_1plusx(self._value - 1) / log_of_base)
             _sig_off
}}}

=== nan vs. NaN in complex_double.pyx ===
{{{
**********************************************************************
File "/home/mabshoff/build-3.2.3.final/sage-3.2.3.final-fulvia/devel/sage/sage/rings/complex_double.pyx", line 895:
    sage: ~(0*CDF(0,1))
Expected:
    nan + nan*I
Got:
    -NaN + NaN*I
**********************************************************************
}}}
The following terrible hack fixes that problem:
{{{
diff -r e69ceb84399b sage/rings/complex_double.pyx
--- a/sage/rings/complex_double.pyx Fri Jan 02 23:01:05 2009 -0500
+++ b/sage/rings/complex_double.pyx Sat Jan 10 19:30:41 2009 -0500
@@ -789,7 +789,8 @@
             s = s+"%s*I"%y
         if len(s) == 0:
             s = "0"
- return s
+ s_clean=s.replace("NaN","nan").replace("-nan","nan")
+ return s_clean
 
     def _latex_(self):
         """
}}}

=== Numerical noise in sage/rings/qqbar.py ===
{{{
[4:36pm] mabs: cwitty: I have another interesting bug for you:
[4:36pm] mabs: File "/home/mabshoff/build-3.2.3.final/sage-3.2.3.final-fulvia/devel/sage/sage/rings/qqbar.py", line 3826:
[4:36pm] mabs: sage: cp.complex_roots(30, 1)
[4:36pm] mabs: Expected:
[4:36pm] mabs: [1.189207115002721?,
[4:36pm] mabs: -1.189207115002721?,
[4:36pm] mabs: 1.189207115002721?*I,
[4:36pm] mabs: -1.189207115002721?*I]
[4:36pm] mabs: Got:
[4:36pm] mabs: [1.189207115002721?, -1.189207115002722?, 1.189207115002721?*I, -1.189207115002721?*I]
[4:37pm] mabs: Notice that the second and third entries are different?
[4:37pm] mabs: Ehh, the second only
[4:38pm] cwitty: Yes. It's probably not a bug; complex_roots doesn't guarantee to find the tightest possible
interval, and it depends on ATLAS which doesn't guarantee identical results.
[4:38pm] mabs: ok
[4:38pm] mabs: Should I use "..." then?
[4:38pm] cwitty: Yes.
}}}

 * Other fixes to the Sage library: 3.2.3.final-solaris-fixes.patch, 3.2.3.final-solaris-getrusage-.patch

== Doctest Failures ==

 * coming soon - about 30 doctests failed, but about 15 to 20 are fixable with little effort


== Other Annoyances ==

 * -sdist as well as -bdist is seriously broken with BSD-ish shell utils installed in the default path on Solaris