sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.34k stars 452 forks source link

libGAP! -- create a Cython library interface to gap #13588

Closed vbraun closed 11 years ago

vbraun commented 11 years ago

Currently, libGAP doesn't give useful errors if something goes wrong during initialization.

Also, the GAP SIGINT handler got installed, this is fixed in the new spkg. Now Ctrl-C works as expected.

The trac_6391_* patch has already been reviewed at #6391.

Depends on #13211 Depends on #13880

CC: @miguelmarco @sagetrac-tfeulner @gvol @simon-king-jena

Component: group theory

Author: Volker Braun

Reviewer: Dmitrii Pasechnik

Merged: sage-5.7.beta1

Issue created by migration from https://trac.sagemath.org/ticket/13588

vbraun commented 11 years ago

Author: Volker Braun

vbraun commented 11 years ago
comment:1

Miguel, you said that you had some mysterious error. Can you try this patch? It depends on the recently-updated patches on #6391, #13211.

vbraun commented 11 years ago

Dependencies: #6391, #13211

miguelmarco commented 11 years ago
comment:2

I have been checking the different updates of libgap, and the error seemed to go away several versions ago. Anyways, i will keep testing it.

miguelmarco commented 11 years ago
comment:3

I don't know if it is an issue related with this patch or if it comes from libgap itself, but i have experienced some problems when i use tab completion in a session in the command line (i haven't checked it in the notebook).

An example:

sage: F=libgap.eval('FreeGroup(2)')
sage: (a,b)=F.GeneratorsOfGroup()
sage: H=F/libgap([a^2,b^2,a*b*a*b])
sage: H
<fp group on the generators [ f1, f2 ]>
sage: H.IsomorphismSimplifiedFpGroup()
[ f1, f2 ] -> [ f1, f2 ]
sage: H=F/libgap([a^2,b^2,a*b])    
sage: c=H.Gene
H.GeneralLinearGroup      H.GeneralisedEigenspaces  H.GeneralizedEigenvalues  H.GeneratorsOfIdeal
H.GeneralOrthogonalGroup  H.GeneralisedEigenvalues  H.GeneratorsOfField       
H.GeneralUnitaryGroup     H.GeneralizedEigenspaces  H.GeneratorsOfGroup       
sage: c=H.GeneratorsOfGroup()[0]
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)

/home/mmarco/sage-5.4/<ipython console> in <module>()

/home/mmarco/sage-5.4/local/lib/python2.7/site-packages/sage/libs/gap/element.so in sage.libs.gap.element.GapElement.__getattr__ (sage/libs/gap/element.c:3555)()

AttributeError: Name "GeneratorsOfGroup" is not defined in GAP.
sage: c=H.GeneratorsOfGroup()   
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)

/home/mmarco/sage-5.4/<ipython console> in <module>()

/home/mmarco/sage-5.4/local/lib/python2.7/site-packages/sage/libs/gap/element.so in sage.libs.gap.element.GapElement.__getattr__ (sage/libs/gap/element.c:3555)()

AttributeError: Name "GeneratorsOfGroup" is not defined in GAP.
sage: H
Exception RuntimeError: 'Entered a critical block twice' in 'sage.libs.gap.util.error_handler' ignored
<fp group on the generators [ f1, f2 ]>
sage: H.GeneratorsOfGroup()
[ f1, f2 ]
sage: c=H.GeneratorsOfGroup()[0]
sage: c
f1
sage: c=H.Generat
H.GeneratorsOfField  H.GeneratorsOfGroup  H.GeneratorsOfIdeal  
sage: c=H.GeneratorsOfGroup()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)

/home/mmarco/sage-5.4/<ipython console> in <module>()

/home/mmarco/sage-5.4/local/lib/python2.7/site-packages/sage/libs/gap/element.so in sage.libs.gap.element.GapElement.__getattr__ (sage/libs/gap/element.c:3555)()

AttributeError: Name "GeneratorsOfGroup" is not defined in GAP.
sage: c=H.GeneratorsOfGroup()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)

/home/mmarco/sage-5.4/<ipython console> in <module>()

/home/mmarco/sage-5.4/local/lib/python2.7/site-packages/sage/libs/gap/element.so in sage.libs.gap.element.GapElement.__getattr__ (sage/libs/gap/element.c:3555)()

AttributeError: Name "GeneratorsOfGroup" is not defined in GAP.
sage: H
Exception RuntimeError: 'Entered a critical block twice' in 'sage.libs.gap.util.error_handler' ignored
<fp group on the generators [ f1, f2 ]>
sage: c=H.GeneratorsOfGroup()
miguelmarco commented 11 years ago
comment:4

This same behaviour appears when i don't use this patch, so reported in the libgap ticket.

vbraun commented 11 years ago

Description changed:

--- 
+++ 
@@ -1 +1,5 @@
 Currently, libGAP doesn't give useful errors if something goes wrong during initialization.
+
+Also, the GAP SIGINT handler got installed, this is fixed in the new spkg. Now Ctrl-C works as expected.
+
+Install [http://www.stp.dias.ie/~vbraun/Sage/spkg/libgap-4.5.6.p1.spkg](http://www.stp.dias.ie/~vbraun/Sage/spkg/libgap-4.5.6.p1.spkg)
vbraun commented 11 years ago
comment:6

Updated patch fixes the issue with the command line completion

vbraun commented 11 years ago
comment:7

Updated spkg fixes long input lines (>32k characters):

sage: S = SymmetricGroup(10000)
sage: s = S.random_element()
sage: len(str(s._gap_()))
61673
sage: libgap(s)
(1,5243,8582,5012,6862,7477,1681,7423,8405,3101,...,5257,9362,2495,8500)( [...] )
vbraun commented 11 years ago

Description changed:

--- 
+++ 
@@ -2,4 +2,4 @@

 Also, the GAP SIGINT handler got installed, this is fixed in the new spkg. Now Ctrl-C works as expected.

-Install [http://www.stp.dias.ie/~vbraun/Sage/spkg/libgap-4.5.6.p1.spkg](http://www.stp.dias.ie/~vbraun/Sage/spkg/libgap-4.5.6.p1.spkg)
+Install [http://sagepad.org/spkg/libgap-4.5.6.p1.spkg](http://sagepad.org/spkg/libgap-4.5.6.p1.spkg)
vbraun commented 11 years ago
comment:9

I've added the same workaround for the gap command line option issue as just discussed in #13211

vbraun commented 11 years ago
comment:10

I've added __nonzero__ for wrapped GAP booleans for easier use.

vbraun commented 11 years ago

Updated patch

vbraun commented 11 years ago
comment:11

Attachment: trac_13588_improve_libGAP.patch.gz

The new patch allows to change the comparison method for libgap objects since not all GAP objects can be compared. This is important if you want use them as cache keys.

Also, the comparison was not properly wrapped in sig_on/sig_off

vbraun commented 11 years ago
comment:12

I forgot to package aclocal.m4, updated spkg adds that file.

vbraun commented 11 years ago

Description changed:

--- 
+++ 
@@ -2,4 +2,4 @@

 Also, the GAP SIGINT handler got installed, this is fixed in the new spkg. Now Ctrl-C works as expected.

-Install [http://sagepad.org/spkg/libgap-4.5.6.p1.spkg](http://sagepad.org/spkg/libgap-4.5.6.p1.spkg)
+Install [http://www.stp.dias.ie/~vbraun/Sage/spkg/libgap-4.5.6.p1.spkg](http://www.stp.dias.ie/~vbraun/Sage/spkg/libgap-4.5.6.p1.spkg)
vbraun commented 11 years ago

Description changed:

--- 
+++ 
@@ -2,4 +2,4 @@

 Also, the GAP SIGINT handler got installed, this is fixed in the new spkg. Now Ctrl-C works as expected.

-Install [http://www.stp.dias.ie/~vbraun/Sage/spkg/libgap-4.5.6.p1.spkg](http://www.stp.dias.ie/~vbraun/Sage/spkg/libgap-4.5.6.p1.spkg)
+Install [http://www.stp.dias.ie/~vbraun/Sage/spkg/libgap-4.5.7.spkg](http://www.stp.dias.ie/~vbraun/Sage/spkg/libgap-4.5.7.spkg)
vbraun commented 11 years ago
comment:15

Updated to libGap-4.5.7

vbraun commented 11 years ago

Description changed:

--- 
+++ 
@@ -2,4 +2,9 @@

 Also, the GAP SIGINT handler got installed, this is fixed in the new spkg. Now Ctrl-C works as expected.

-Install [http://www.stp.dias.ie/~vbraun/Sage/spkg/libgap-4.5.7.spkg](http://www.stp.dias.ie/~vbraun/Sage/spkg/libgap-4.5.7.spkg)
+* Install [http://www.stp.dias.ie/~vbraun/Sage/spkg/gap-4.5.7.p1.spkg](http://www.stp.dias.ie/~vbraun/Sage/spkg/gap-4.5.7.p1.spkg) from #13211
+* Install [http://www.stp.dias.ie/~vbraun/Sage/spkg/libgap-4.5.7.spkg](http://www.stp.dias.ie/~vbraun/Sage/spkg/libgap-4.5.7.spkg)
+* Apply [attachment: trac_6391_libGAP.patch](https://github.com/sagemath/sage-prod/files/10656443/trac_6391_libGAP.patch.gz) to the Sage library
+* Apply [attachment: trac_6391_libGAP_root.patch](https://github.com/sagemath/sage-prod/files/10656444/trac_6391_libGAP_root.patch.gz) to the root repository
+
+The patches have already been reviewed at #6391, I'm just attaching them to this ticket for convenience.
vbraun commented 11 years ago

Changed dependencies from #6391, #13211 to #13211

vbraun commented 11 years ago

patch from #6391

vbraun commented 11 years ago

Attachment: trac_6391_libGAP.patch.gz

Attachment: trac_6391_libGAP_root.patch.gz

patch from #6391

vbraun commented 11 years ago

Description changed:

--- 
+++ 
@@ -4,7 +4,8 @@

 * Install [http://www.stp.dias.ie/~vbraun/Sage/spkg/gap-4.5.7.p1.spkg](http://www.stp.dias.ie/~vbraun/Sage/spkg/gap-4.5.7.p1.spkg) from #13211
 * Install [http://www.stp.dias.ie/~vbraun/Sage/spkg/libgap-4.5.7.spkg](http://www.stp.dias.ie/~vbraun/Sage/spkg/libgap-4.5.7.spkg)
+* Apply [attachment: trac_6391_libGAP_root.patch](https://github.com/sagemath/sage-prod/files/10656444/trac_6391_libGAP_root.patch.gz) to the root repository
 * Apply [attachment: trac_6391_libGAP.patch](https://github.com/sagemath/sage-prod/files/10656443/trac_6391_libGAP.patch.gz) to the Sage library
-* Apply [attachment: trac_6391_libGAP_root.patch](https://github.com/sagemath/sage-prod/files/10656444/trac_6391_libGAP_root.patch.gz) to the root repository
+* Apply [attachment: trac_13588_improve_libGAP.patch](https://github.com/sagemath/sage-prod/files/10656442/trac_13588_improve_libGAP.patch.gz) to the Sage library

 The patches have already been reviewed at #6391, I'm just attaching them to this ticket for convenience.
vbraun commented 11 years ago

Description changed:

--- 
+++ 
@@ -8,4 +8,4 @@
 * Apply [attachment: trac_6391_libGAP.patch](https://github.com/sagemath/sage-prod/files/10656443/trac_6391_libGAP.patch.gz) to the Sage library
 * Apply [attachment: trac_13588_improve_libGAP.patch](https://github.com/sagemath/sage-prod/files/10656442/trac_13588_improve_libGAP.patch.gz) to the Sage library

-The patches have already been reviewed at #6391, I'm just attaching them to this ticket for convenience.
+The `trac_6391_*` patches have already been reviewed at #6391, I'm just attaching them to this ticket for convenience.
miguelmarco commented 11 years ago
comment:21

I still see the segfault when trying to execute "Exec" trough libgap. This seems to make it impossible to load gap packages that make use of external programs.

vbraun commented 11 years ago
comment:22

Thanks for reminding me, I completely forgot about the Exec thing.

In the meantime, can we get this reviewed and included into Sage before the next GAP version comes out?

vbraun commented 11 years ago
comment:23

I've replaced the spkg with a new version that fixes the GAP Exec command.

vbraun commented 11 years ago

Description changed:

--- 
+++ 
@@ -7,5 +7,6 @@
 * Apply [attachment: trac_6391_libGAP_root.patch](https://github.com/sagemath/sage-prod/files/10656444/trac_6391_libGAP_root.patch.gz) to the root repository
 * Apply [attachment: trac_6391_libGAP.patch](https://github.com/sagemath/sage-prod/files/10656443/trac_6391_libGAP.patch.gz) to the Sage library
 * Apply [attachment: trac_13588_improve_libGAP.patch](https://github.com/sagemath/sage-prod/files/10656442/trac_13588_improve_libGAP.patch.gz) to the Sage library
+* Apply [attachment: trac_13588_exec_fix.patch](https://github.com/sagemath/sage-prod/files/10656445/trac_13588_exec_fix.patch.gz) to the Sage library

 The `trac_6391_*` patches have already been reviewed at #6391, I'm just attaching them to this ticket for convenience.
vbraun commented 11 years ago

Attachment: trac_13588_exec_fix.patch.gz

Updated patch

miguelmarco commented 11 years ago
comment:24

Thanks. Still i can't load the kbmag package :(

vbraun commented 11 years ago
comment:25

I've updated the spkg, now loading kbmag works for me. I had to install it by hand since your spkg at #13673 is offline.

dimpase commented 11 years ago
comment:26

I get a slew of errors in ptestlong after following the instructions of the ticket with Sage 5.5; e.g.:

sage -t  --long -force_lib devel/sage/sage/libs/gap/libgap.pyx
**********************************************************************
File "/usr/local/src/sage/sage-5.5/devel/sage-main/sage/libs/gap/libgap.pyx", line 11:
    sage: a = libgap(10)
Exception raised:
    Traceback (most recent call last):
      File "/usr/local/src/sage/sage-5.5/local/bin/ncadoctest.py", line 1231, in run_one_test
        self.run_one_example(test, example, filename, compileflags)
      File "/usr/local/src/sage/sage-5.5/local/bin/sagedoctest.py", line 38, in run_one_example
        OrigDocTestRunner.run_one_example(self, test, example, filename, compileflags)
      File "/usr/local/src/sage/sage-5.5/local/bin/ncadoctest.py", line 1172, in run_one_example
        compileflags, 1) in test.globs
      File "<doctest __main__.example_0[2]>", line 1, in <module>
        a = libgap(Integer(10))###line 11:
    sage: a = libgap(10)
      File "lazy_import.pyx", line 244, in sage.misc.lazy_import.LazyImport.__call__ (sage/misc/lazy_import.c:2012)
      File "lazy_import.pyx", line 148, in sage.misc.lazy_import.LazyImport._get_object (sage/misc/lazy_import.c:1291)
      File "libgap.pyx", line 574, in init sage.libs.gap.libgap (sage/libs/gap/libgap.c:4157)
        libgap = Gap()
      File "libgap.pyx", line 395, in sage.libs.gap.libgap.Gap.__init__ (sage/libs/gap/libgap.c:2716)
        initialize()
      File "util.pyx", line 193, in sage.libs.gap.util.initialize (sage/libs/gap/util.c:3312)
        from sage.interfaces.gap import get_gap_memory_pool_size
    ImportError: cannot import name get_gap_memory_pool_size
**********************************************************************
File "/usr/local/src/sage/sage-5.5/devel/sage-main/sage/libs/gap/libgap.pyx", line 12:
    sage: a
Exception raised:
    Traceback (most recent call last):
      File "/usr/local/src/sage/sage-5.5/local/bin/ncadoctest.py", line 1231, in run_one_test
        self.run_one_example(test, example, filename, compileflags)
      File "/usr/local/src/sage/sage-5.5/local/bin/sagedoctest.py", line 38, in run_one_example
        OrigDocTestRunner.run_one_example(self, test, example, filename, compileflags)
      File "/usr/local/src/sage/sage-5.5/local/bin/ncadoctest.py", line 1172, in run_one_example
        compileflags, 1) in test.globs
      File "<doctest __main__.example_0[3]>", line 1, in <module>
        a###line 12:
    sage: a
    NameError: name 'a' is not defined

are some patches missing or not up date?

vbraun commented 11 years ago
comment:27

Did you apply the patches from #13211? The get_gap_memory_pool_size() function was added in trac_13211_fix_gap_doctests_vb.patch.

dimpase commented 11 years ago
comment:28

Replying to @vbraun:

Did you apply the patches from #13211? The get_gap_memory_pool_size() function was added in trac_13211_fix_gap_doctests_vb.patch.

indeed, I overlooked that #13211 isn't merged in 5.5. Sorry for noise.

dimpase commented 11 years ago
comment:29

Does sig_on() need a matching sig_off() in case sig_on() is issued in a try block, which throws an exception?

Comparison functions returning -1, 0, +1... So FORTRAN |V... :-)

vbraun commented 11 years ago
comment:30

sig_on and sig_off must be paired, though ideally they enclose only C/Cython code which cannot raise Python exceptions. A C signal will jump back to sig_on and raise there.

http://www.sagemath.org/doc/developer/coding_in_cython.html#using-sig-on-and-sig-off

dimpase commented 11 years ago
comment:31

patches from #13880 are needed for doctests to (eventually) pass here.

dimpase commented 11 years ago

Changed dependencies from #13211 to #13211, #13880

jdemeyer commented 11 years ago

Description changed:

--- 
+++ 
@@ -2,7 +2,7 @@

 Also, the GAP SIGINT handler got installed, this is fixed in the new spkg. Now Ctrl-C works as expected.

-* Install [http://www.stp.dias.ie/~vbraun/Sage/spkg/gap-4.5.7.p1.spkg](http://www.stp.dias.ie/~vbraun/Sage/spkg/gap-4.5.7.p1.spkg) from #13211
+* Start with sage-5.6.beta1 or later.
 * Install [http://www.stp.dias.ie/~vbraun/Sage/spkg/libgap-4.5.7.spkg](http://www.stp.dias.ie/~vbraun/Sage/spkg/libgap-4.5.7.spkg)
 * Apply [attachment: trac_6391_libGAP_root.patch](https://github.com/sagemath/sage-prod/files/10656444/trac_6391_libGAP_root.patch.gz) to the root repository
 * Apply [attachment: trac_6391_libGAP.patch](https://github.com/sagemath/sage-prod/files/10656443/trac_6391_libGAP.patch.gz) to the Sage library
jdemeyer commented 11 years ago

Description changed:

--- 
+++ 
@@ -2,7 +2,7 @@

 Also, the GAP SIGINT handler got installed, this is fixed in the new spkg. Now Ctrl-C works as expected.

-* Start with sage-5.6.beta1 or later.
+* Start with sage-5.6.beta3 or later.
 * Install [http://www.stp.dias.ie/~vbraun/Sage/spkg/libgap-4.5.7.spkg](http://www.stp.dias.ie/~vbraun/Sage/spkg/libgap-4.5.7.spkg)
 * Apply [attachment: trac_6391_libGAP_root.patch](https://github.com/sagemath/sage-prod/files/10656444/trac_6391_libGAP_root.patch.gz) to the root repository
 * Apply [attachment: trac_6391_libGAP.patch](https://github.com/sagemath/sage-prod/files/10656443/trac_6391_libGAP.patch.gz) to the Sage library
jdemeyer commented 11 years ago
comment:35

Is the test program sage/libs/gap/test/main.c used anywhere in the Sage library? I don't mind having such a program, but I'd say it belongs in the libgap spkg and not in the Sage library. It could be run when installing libGAP.

jdemeyer commented 11 years ago

Reviewer: Dmitrii Pasechnik

vbraun commented 11 years ago
comment:37

sage/libs/gap/test/main.c is not used anywhere. As the readme file explains, it is there if you need an example for how to link with libGAP without Sage. This can be useful for debugging. LibGAP has its own testsuite.

jdemeyer commented 11 years ago
comment:38

libgap tries to run various autotools, which should be avoided (as it can lead to build errors). Probably this is simply timestamps were clobbered during the packaging.

libgap-4.5.7.log:WARNING: 'aclocal-1.12' is missing on your system.  You should only need it if
libgap-4.5.7.log:WARNING: 'automake-1.12' is missing on your system.  You should only need it if
libgap-4.5.7.log:WARNING: 'autoconf' is missing on your system.  You should only need it if
libgap-4.5.7.log:WARNING: 'autoheader' is missing on your system.  You should only need it if
vbraun commented 11 years ago
comment:39

Ok I've regenerated the files and checked that it builds without the WARNING on an older machine. Spkg at the same place.

jdemeyer commented 11 years ago
comment:40

While building the documentation with this patch included, twice something went wrong.

  1. First time, I got an "unhandled SIGSEGV" in Sage while reading the sources of some elliptic curve file (sorry, forgot which one) for the PDF documentation. I didn't store the exact logs since I thought it was a cosmic ray or something...
  2. Next attempt, building from scratch again during the build of the HTML documentation:
reading sources... [ 86%] sage/schemes/elliptic_curves/cm
reading sources... [ 87%] sage/schemes/elliptic_curves/constructor
reading sources... [ 87%] sage/schemes/elliptic_curves/ec_database
reading sources... [ 87%] sage/schemes/elliptic_curves/ell_curve_isogeny
reading sources... [ 87%] sage/schemes/elliptic_curves/ell_field
reading sources... [ 87%] sage/schemes/elliptic_curves/ell_finite_field
reading sources... [ 87%] sage/schemes/elliptic_curves/ell_generic

Exception occurred:
  File "/release/merger/sage-5.7.alpha0/local/lib/python2.7/site-packages/Sphinx-1.1.2-py2.7.egg/sphinx/environment.py", line 831, in read_doc
    pickle.dump(doctree, f, pickle.HIGHEST_PROTOCOL)
MemoryError
The full traceback has been saved in /tmp/release/sphinx-err-QDcECu.log, if you want to report the issue to the developers.

Full traceback:

# Sphinx version: 1.1.2
# Python version: 2.7.3
# Docutils version: 0.7 release
# Jinja2 version: 2.5.5
Traceback (most recent call last):
  File "/release/merger/sage-5.7.alpha0/local/lib/python2.7/site-packages/Sphinx-1.1.2-py2.7.egg/sphinx/cmdline.py", line 189, in main
    app.build(force_all, filenames)
  File "/release/merger/sage-5.7.alpha0/local/lib/python2.7/site-packages/Sphinx-1.1.2-py2.7.egg/sphinx/application.py", line 204, in build
    self.builder.build_update()
  File "/release/merger/sage-5.7.alpha0/local/lib/python2.7/site-packages/Sphinx-1.1.2-py2.7.egg/sphinx/builders/__init__.py", line 196, in build_update
    'out of date' % len(to_build))
  File "/release/merger/sage-5.7.alpha0/local/lib/python2.7/site-packages/Sphinx-1.1.2-py2.7.egg/sphinx/builders/__init__.py", line 216, in build
    purple, length):
  File "/release/merger/sage-5.7.alpha0/local/lib/python2.7/site-packages/Sphinx-1.1.2-py2.7.egg/sphinx/builders/__init__.py", line 120, in status_iterator
    for item in iterable:
  File "/release/merger/sage-5.7.alpha0/local/lib/python2.7/site-packages/Sphinx-1.1.2-py2.7.egg/sphinx/environment.py", line 616, in update_generator
    self.read_doc(docname, app=app)
  File "/release/merger/sage-5.7.alpha0/local/lib/python2.7/site-packages/Sphinx-1.1.2-py2.7.egg/sphinx/environment.py", line 831, in read_doc
    pickle.dump(doctree, f, pickle.HIGHEST_PROTOCOL)
MemoryError

I cannot say for sure that this ticket is to blame, but the MemoryError certainly made me suspect GAP. And I also saw some "halving pool size" messages appear during the docbuilding.

dimpase commented 11 years ago
comment:41

Replying to @jdemeyer:

While building the documentation with this patch included, twice something went wrong.

  1. First time, I got an "unhandled SIGSEGV" in Sage while reading the sources of some elliptic curve file (sorry, forgot which one) for the PDF documentation. I didn't store the exact logs since I thought it was a cosmic ray or something...
  2. Next attempt, building from scratch again during the build of the HTML documentation:

if this happens on one host only, I'd blame the RAM there.

jdemeyer commented 11 years ago
comment:42

Replying to @dimpase:

if this happens on one host only, I'd blame the RAM there.

If this happens only with the libGAP patches, I'd blame libGAP. Besides, why would faulty RAM lead to a MemoryError exception?

vbraun commented 11 years ago
comment:43

All GAP/libGAP processes should be terminated by the time we are building the manual, so I don't see how we could possibly impact that.

Is this a 32-bit machine? There you might run into warts caused by the limited address space, and the halving pool size would support that. Sphinx uses quite a lot of memory and might fail to load its pickles if there is no memory left or no contiguous address space block available.

jdemeyer commented 11 years ago
comment:44

Replying to @vbraun:

All GAP/libGAP processes should be terminated by the time we are building the manual

Not really, as building the manual runs Sage code (as witnessed for example that Segmentation Faults run the Sage signal handler and display "Unhandled SIGSEGV...")