Sage: Ticket #11574: update M4RI to newest upstream release
https://trac.sagemath.org/ticket/11574
<p>
M4RI 20110601 changed the API, so we need to apply a patch as well,
</p>
<blockquote>
<p>
cf. <a class="ext-link" href="https://bitbucket.org/malb/m4ri/wiki/M4RI-20110601"><span class="icon"></span>https://bitbucket.org/malb/m4ri/wiki/M4RI-20110601</a>
cf. <a class="ext-link" href="https://bitbucket.org/malb/m4ri/wiki/M4RI-20110715"><span class="icon"></span>https://bitbucket.org/malb/m4ri/wiki/M4RI-20110715</a>
</p>
</blockquote>
<ul><li><strong>Install</strong> <a class="ext-link" href="http://sage.math.washington.edu/home/malb/spkgs/libm4ri-20110715.spkg"><span class="icon"></span>http://sage.math.washington.edu/home/malb/spkgs/libm4ri-20110715.spkg</a>
</li><li><strong>Apply</strong> <a class="attachment" href="https://trac.sagemath.org/attachment/ticket/11574/m4ri_20110601.patch" title="Attachment 'm4ri_20110601.patch' in Ticket #11574">m4ri_20110601.patch</a><a class="trac-rawlink" href="https://trac.sagemath.org/raw-attachment/ticket/11574/m4ri_20110601.patch" title="Download"></a>
</li><li><strong>Apply</strong> <a class="attachment" href="https://trac.sagemath.org/attachment/ticket/11574/trac_11574_m4ri_sse2.patch" title="Attachment 'trac_11574_m4ri_sse2.patch' in Ticket #11574">trac_11574_m4ri_sse2.patch</a><a class="trac-rawlink" href="https://trac.sagemath.org/raw-attachment/ticket/11574/trac_11574_m4ri_sse2.patch" title="Download"></a>
</li></ul>en-usSagehttps://trac.sagemath.org/chrome/site/logo_sagemath_trac.png
https://trac.sagemath.org/ticket/11574
Trac 1.1.6malbMon, 04 Jul 2011 16:39:50 GMTstatus, description changed
https://trac.sagemath.org/ticket/11574#comment:1
https://trac.sagemath.org/ticket/11574#comment:1
<ul>
<li><strong>status</strong>
changed from <em>new</em> to <em>needs_review</em>
</li>
<li><strong>description</strong>
modified (<a href="/ticket/11574?action=diff&version=1">diff</a>)
</li>
</ul>
TicketmalbMon, 04 Jul 2011 21:02:26 GMTdependencies set
https://trac.sagemath.org/ticket/11574#comment:2
https://trac.sagemath.org/ticket/11574#comment:2
<ul>
<li><strong>dependencies</strong>
set to <em>#11261</em>
</li>
</ul>
TicketkcrismanTue, 05 Jul 2011 13:55:32 GMT
https://trac.sagemath.org/ticket/11574#comment:3
https://trac.sagemath.org/ticket/11574#comment:3
<p>
I'm a little confused. The spkgs here and at <a class="closed ticket" href="https://trac.sagemath.org/ticket/9562" title="enhancement: Add M4RIE to Sage (closed: fixed)">#9562</a> are both libm4ri, and seem to be numbered backwards (the "earlier" one in the dependency is from 2011).
</p>
TicketkcrismanTue, 05 Jul 2011 14:52:19 GMT
https://trac.sagemath.org/ticket/11574#comment:4
https://trac.sagemath.org/ticket/11574#comment:4
<p>
Okay, I think I figured it out. Sorry for the noise.
</p>
TicketkcrismanTue, 05 Jul 2011 17:05:57 GMT
https://trac.sagemath.org/ticket/11574#comment:5
https://trac.sagemath.org/ticket/11574#comment:5
<p>
I don't know what I did wrong, but I still get the problem with the <code> Symbol not found: _m4ri_swap_bits</code> while trying to start, even after this patch. I may have done something wrong, but at any rate I can't spend more time on this now, sorry.
</p>
TicketmalbWed, 06 Jul 2011 16:39:56 GMTdescription changed; author set
https://trac.sagemath.org/ticket/11574#comment:6
https://trac.sagemath.org/ticket/11574#comment:6
<ul>
<li><strong>description</strong>
modified (<a href="/ticket/11574?action=diff&version=6">diff</a>)
</li>
<li><strong>author</strong>
set to <em>Martin Albrecht</em>
</li>
</ul>
TicketmalbThu, 07 Jul 2011 09:26:56 GMT
https://trac.sagemath.org/ticket/11574#comment:7
https://trac.sagemath.org/ticket/11574#comment:7
<p>
For the record, I tried spkg + patch on t2 and doctests pass.
</p>
TicketmalbMon, 11 Jul 2011 14:27:36 GMTdescription changed
https://trac.sagemath.org/ticket/11574#comment:8
https://trac.sagemath.org/ticket/11574#comment:8
<ul>
<li><strong>description</strong>
modified (<a href="/ticket/11574?action=diff&version=8">diff</a>)
</li>
</ul>
TicketmalbMon, 15 Aug 2011 21:33:30 GMT
https://trac.sagemath.org/ticket/11574#comment:9
https://trac.sagemath.org/ticket/11574#comment:9
<p>
applies & passes doctests with 4.7.1.rc2.
</p>
TicketSimonKingTue, 16 Aug 2011 12:08:46 GMTstatus changed; reviewer set
https://trac.sagemath.org/ticket/11574#comment:10
https://trac.sagemath.org/ticket/11574#comment:10
<ul>
<li><strong>status</strong>
changed from <em>needs_review</em> to <em>needs_work</em>
</li>
<li><strong>reviewer</strong>
set to <em>Simon King</em>
</li>
</ul>
<p>
Why is the documentation for matrices over GF(2) not part of the reference manual? I think you should use the upgrade to expose the documentation to the audience.
</p>
TicketmalbTue, 16 Aug 2011 12:29:00 GMT
https://trac.sagemath.org/ticket/11574#comment:11
https://trac.sagemath.org/ticket/11574#comment:11
<p>
I am not sure this documentation is much use in the reference manual since most of the interesting functions won't show up. Also, these matrices are expected to behave just as other matrices. On the other hand, there are a few - not many - special functions which are only available for GF(2). I'll take a look.
</p>
TicketmalbWed, 17 Aug 2011 13:57:33 GMTstatus changed
https://trac.sagemath.org/ticket/11574#comment:12
https://trac.sagemath.org/ticket/11574#comment:12
<ul>
<li><strong>status</strong>
changed from <em>needs_work</em> to <em>needs_review</em>
</li>
</ul>
<p>
It seems that you agreed in a different ticket (<a class="closed ticket" href="https://trac.sagemath.org/ticket/9562" title="enhancement: Add M4RIE to Sage (closed: fixed)">#9562</a>) that this class doesn't need to be in the reference manual? Hence, returning to <strong>needs review</strong>. Feel free to change it back, though.
</p>
TicketSimonKingWed, 17 Aug 2011 18:36:44 GMT
https://trac.sagemath.org/ticket/11574#comment:13
https://trac.sagemath.org/ticket/11574#comment:13
<p>
I think I can live with not including it into the references. However, currently I am getting segment faults when doctesting on mark (one of the skynet machines). I try to make sure that I properly install everything from scratch again, before reporting details.
</p>
TicketSimonKingWed, 17 Aug 2011 19:51:59 GMT
https://trac.sagemath.org/ticket/11574#comment:14
https://trac.sagemath.org/ticket/11574#comment:14
<p>
I did a forced new installation of the polybori spkg, then of the M4RI spkg, and I also installed the patches. I get on mark:
</p>
<pre class="wiki">sage: P.<a,b,c,d,e> = PolynomialRing(GF(2), 5, order='lex')
sage: I1 = ideal([a*b + c*d + 1, a*c*e + d*e, a*b*e + c*e, b*c + c*d*e + 1])
sage: B.<a,b,c,d,e> = BooleanPolynomialRing(5, order='lex')
sage: I2 = ideal([B(f) for f in I1.gens()])
sage: I2.groebner_basis()
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
/home/simonking/SAGE/sage-4.7.1.rc1mark/devel/sage-main/<ipython console> in <module>()
/home/simonking/SAGE/sage-4.7.1.rc1mark/local/lib/python2.6/site-packages/sage/rings/polynomial/pbori.so in sage.rings.polynomial.pbori.BooleanPolynomialIdeal.groebner_basis (sage/rings/polynomial/pbori.cpp:26221)()
RuntimeError: Segmentation fault
</pre><p>
Of course, it could be that the problem comes from the polybori spkg. That would be unfortunate, since it is already merged.
</p>
TicketSimonKingWed, 17 Aug 2011 20:14:25 GMT
https://trac.sagemath.org/ticket/11574#comment:15
https://trac.sagemath.org/ticket/11574#comment:15
<p>
Now, I tried to force re-installation of the original polybori spkg. However, that failed as well. I hope that it will not be needed to rebuild all of sage, which takes ages on mark.
</p>
TicketmalbWed, 17 Aug 2011 21:40:19 GMT
https://trac.sagemath.org/ticket/11574#comment:16
https://trac.sagemath.org/ticket/11574#comment:16
<p>
I think the issue is that one needs to install stuff in the right order:
</p>
<ul><li>install new M4RI
</li><li>install new <a class="missing wiki">PolyBoRi?</a>
</li><li>apply the M4RI patch
</li><li>touch <code>sage/libs/polybori/decl.pxd</code>
</li><li><code>sage -b</code>
</li></ul>
TicketSimonKingThu, 18 Aug 2011 07:14:16 GMT
https://trac.sagemath.org/ticket/11574#comment:17
https://trac.sagemath.org/ticket/11574#comment:17
<p>
Meanwhile I managed to revert to the original state, and can confirm that, with vanilla sage-4.7.1.rc2 on 32-bit solaris, the segfault above does not occur.
</p>
<p>
I will now try to do things in the order you suggested: In fact, originally I had installed polybori, then m4ri, then the m4ri patch, and then sage -b (without touching decl.pxd).
</p>
<p>
But how can the new polybori spkg be merged if apparently it depends on the new m4ri?
</p>
TicketSimonKingThu, 18 Aug 2011 08:17:23 GMT
https://trac.sagemath.org/ticket/11574#comment:18
https://trac.sagemath.org/ticket/11574#comment:18
<p>
The new installation order did the trick, the segfault has gone. I am now repeating the failing doctests.
</p>
TicketSimonKingThu, 18 Aug 2011 08:19:20 GMT
https://trac.sagemath.org/ticket/11574#comment:19
https://trac.sagemath.org/ticket/11574#comment:19
<p>
Or actually I am repeating sage -testall.
</p>
TicketmalbThu, 18 Aug 2011 09:10:35 GMT
https://trac.sagemath.org/ticket/11574#comment:20
https://trac.sagemath.org/ticket/11574#comment:20
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:17" title="Comment 17">SimonKing</a>:
</p>
<blockquote class="citation">
<p>
But how can the new polybori spkg be merged if apparently it depends on the new m4ri?
</p>
</blockquote>
<p>
Hi, the <a class="missing wiki">PolyBoRi?</a> does not depend on the new M4RI. This version of M4RI breaks binary compatibility with previous M4RI, i.e. we changed how matrices look internally. Hence, for many pieces of software linking against M4RI one needs to rebuild them to make sure they are talking to the right M4RI library in the right way. That's why M4RI and the <a class="missing wiki">PolyBoRi?</a> is necessary: to tell <a class="missing wiki">PolyBoRi?</a> to use this new version. I think we need to updated <a class="missing wiki">PolyBoRi?</a> as well because some macro names changed and <a class="missing wiki">PolyBoRi?</a> 0.7.1.p4 contains the necessary code to deal with it.
</p>
TicketSimonKingFri, 19 Aug 2011 09:19:47 GMTstatus changed
https://trac.sagemath.org/ticket/11574#comment:21
https://trac.sagemath.org/ticket/11574#comment:21
<ul>
<li><strong>status</strong>
changed from <em>needs_review</em> to <em>positive_review</em>
</li>
</ul>
<p>
The tests took 84373.7 seconds on mark, and there were a couple of timeouts. However, there was no failure. The segfault that I reported above vanished by installing everything in the right order. On my computer, all tests pass.
</p>
<p>
Moreover, it is a prerequisite for working with M4RIE (<a class="closed ticket" href="https://trac.sagemath.org/ticket/9562" title="enhancement: Add M4RIE to Sage (closed: fixed)">#9562</a>), which I think is a very important contribution - currently, matrices over GF(2<sup>e</sup>) are painfully slow in Sage.
</p>
<p>
I think it is ok that the matrices over GF(2) do not have their own section in the reference manual, since there seems that all non-underscore methods are already present for general matrices.
</p>
<p>
Hence, it is a positive review.
</p>
TicketmalbFri, 19 Aug 2011 10:05:52 GMT
https://trac.sagemath.org/ticket/11574#comment:22
https://trac.sagemath.org/ticket/11574#comment:22
<p>
Woot!
</p>
TicketwasSat, 20 Aug 2011 03:43:28 GMTpriority changed
https://trac.sagemath.org/ticket/11574#comment:23
https://trac.sagemath.org/ticket/11574#comment:23
<ul>
<li><strong>priority</strong>
changed from <em>major</em> to <em>critical</em>
</li>
</ul>
<p>
I'm upping the priority, since this fixes a serious mathematical bug reported on sage-support.
</p>
TicketjdemeyerMon, 22 Aug 2011 09:14:07 GMTstatus changed
https://trac.sagemath.org/ticket/11574#comment:24
https://trac.sagemath.org/ticket/11574#comment:24
<ul>
<li><strong>status</strong>
changed from <em>positive_review</em> to <em>needs_work</em>
</li>
</ul>
<p>
The directory <code>m4ri</code> should be added to <code>.hgignore</code>
</p>
TicketmalbMon, 22 Aug 2011 18:08:34 GMTstatus, description changed
https://trac.sagemath.org/ticket/11574#comment:25
https://trac.sagemath.org/ticket/11574#comment:25
<ul>
<li><strong>status</strong>
changed from <em>needs_work</em> to <em>positive_review</em>
</li>
<li><strong>description</strong>
modified (<a href="/ticket/11574?action=diff&version=25">diff</a>)
</li>
</ul>
<p>
the updated SPKG fixes this issue.
</p>
TicketjdemeyerTue, 23 Aug 2011 06:30:37 GMTstatus changed; resolution, merged set
https://trac.sagemath.org/ticket/11574#comment:26
https://trac.sagemath.org/ticket/11574#comment:26
<ul>
<li><strong>status</strong>
changed from <em>positive_review</em> to <em>closed</em>
</li>
<li><strong>resolution</strong>
set to <em>fixed</em>
</li>
<li><strong>merged</strong>
set to <em>sage-4.7.2.alpha2</em>
</li>
</ul>
TicketjdemeyerWed, 24 Aug 2011 21:54:43 GMTstatus changed; resolution, merged deleted
https://trac.sagemath.org/ticket/11574#comment:27
https://trac.sagemath.org/ticket/11574#comment:27
<ul>
<li><strong>status</strong>
changed from <em>closed</em> to <em>new</em>
</li>
<li><strong>resolution</strong>
<em>fixed</em> deleted
</li>
<li><strong>merged</strong>
<em>sage-4.7.2.alpha2</em> deleted
</li>
</ul>
<p>
On some 32-bit Linux systems (for example, the buildbot machine <code>cicero</code>), this causes polybori to fail to install:
</p>
<pre class="wiki">g++ -o groebner/src/randomset.o -c -O3 -Wno-long-long -Wreturn-type -g -fPIC -ftemplate-depth-100 -O3 -Wno-long-long -Wreturn-type -g -fPIC -DNDEBUG -DHAVE_GD -DHAVE_TR1_UNORDERED_MAP -DPACKED -DHAVE_M4RI -DHAVE_GD -DHAVE_IEEE_754 -DBSD -I/home/jdemeyer/sage-4.7.2.alpha1/local/include -I/home/jdemeyer/sage-4.7.2.alpha1/local/include/python2.6 -Ipolybori/include -ICudd/obj -ICudd/util -ICudd/cudd -ICudd/mtr -ICudd/st -ICudd/epd groebner/src/randomset.cc
In file included from /home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:42,
from /home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/permutation.h:31,
from /home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/m4ri.h:50,
from groebner/src/nf.h:15,
from groebner/src/randomset.cc:11:
/usr/lib/gcc/i686-pc-linux-gnu/4.4.3/include/emmintrin.h:32:3: error: #error "SSE2 instruction set not enabled"
In file included from /home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/permutation.h:31,
from /home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/m4ri.h:50,
from groebner/src/nf.h:15,
from groebner/src/randomset.cc:11:
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h: In function 'void mzd_row_add_offset(mzd_t*, rci_t, rci_t, rci_t)':
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:741: error: '__m128i' was not declared in this scope
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:741: error: '__src' was not declared in this scope
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:741: error: expected primary-expression before ')' token
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:741: error: expected ';' before 'src'
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:742: error: '__dst' was not declared in this scope
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:742: error: expected primary-expression before ')' token
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:742: error: expected ';' before 'dst'
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:743: error: expected primary-expression before 'const'
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:743: error: expected ';' before 'const'
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:746: error: expected ';' before 'xmm1'
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:747: error: 'xmm1' was not declared in this scope
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:749: error: 'eof' was not declared in this scope
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h: In function 'void mzd_combine_even_in_place(mzd_t*, rci_t, wi_t, const mzd_t*, rci_t, wi_t)':
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1190: error: '__m128i' was not declared in this scope
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1190: error: 'a128' was not declared in this scope
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1190: error: expected primary-expression before ')' token
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1190: error: expected ';' before 'a'
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1191: error: 'b128' was not declared in this scope
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1191: error: expected primary-expression before ')' token
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1191: error: expected ';' before 'b'
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1192: error: expected initializer before '*' token
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1195: error: '_mm_xor_si128' was not declared in this scope
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1198: error: 'eof' was not declared in this scope
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h: In function 'void mzd_combine_even(mzd_t*, rci_t, wi_t, const mzd_t*, rci_t, wi_t, const mzd_t*, rci_t, wi_t)':
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1274: error: '__m128i' was not declared in this scope
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1274: error: 'a128' was not declared in this scope
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1274: error: expected primary-expression before ')' token
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1274: error: expected ';' before 'a'
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1275: error: 'b128' was not declared in this scope
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1275: error: expected primary-expression before ')' token
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1275: error: expected ';' before 'b'
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1276: error: 'c128' was not declared in this scope
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1276: error: expected primary-expression before ')' token
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1276: error: expected ';' before 'c'
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1277: error: expected initializer before '*' token
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1280: error: '_mm_xor_si128' was not declared in this scope
/home/jdemeyer/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1284: error: 'eof' was not declared in this scope
scons: *** [groebner/src/randomset.o] Error 1
scons: building terminated because of errors.
</pre>
TicketjdemeyerWed, 24 Aug 2011 21:54:53 GMTstatus changed
https://trac.sagemath.org/ticket/11574#comment:28
https://trac.sagemath.org/ticket/11574#comment:28
<ul>
<li><strong>status</strong>
changed from <em>new</em> to <em>needs_review</em>
</li>
</ul>
TicketjdemeyerWed, 24 Aug 2011 21:56:13 GMTstatus changed
https://trac.sagemath.org/ticket/11574#comment:29
https://trac.sagemath.org/ticket/11574#comment:29
<ul>
<li><strong>status</strong>
changed from <em>needs_review</em> to <em>needs_work</em>
</li>
</ul>
TicketmalbWed, 24 Aug 2011 22:34:38 GMT
https://trac.sagemath.org/ticket/11574#comment:30
https://trac.sagemath.org/ticket/11574#comment:30
<p>
Can you allow me to read your build on cicero (my username is malb). I don't have a copy of Sage on cicero and it would save me some time.
</p>
TicketwasWed, 24 Aug 2011 23:49:26 GMTkeywords set
https://trac.sagemath.org/ticket/11574#comment:31
https://trac.sagemath.org/ticket/11574#comment:31
<ul>
<li><strong>keywords</strong>
<em>sd32</em> added
</li>
</ul>
TicketjdemeyerThu, 25 Aug 2011 08:24:22 GMT
https://trac.sagemath.org/ticket/11574#comment:32
https://trac.sagemath.org/ticket/11574#comment:32
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:30" title="Comment 30">malb</a>:
</p>
<blockquote class="citation">
<p>
Can you allow me to read your build on cicero (my username is malb). I don't have a copy of Sage on cicero and it would save me some time.
</p>
</blockquote>
<p>
It's in <code>/home/buildbot/build/sage/cicero-1/cicero_full/build/sage-4.7.2.alpha2</code> (should be accessible through NFS on any Skynet machine).
</p>
TicketAlexanderDreyerThu, 25 Aug 2011 13:34:10 GMT
https://trac.sagemath.org/ticket/11574#comment:33
https://trac.sagemath.org/ticket/11574#comment:33
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:27" title="Comment 27">jdemeyer</a>:
</p>
<blockquote class="citation">
<p>
On some 32-bit Linux systems (for example, the buildbot machine <code>cicero</code>), this causes polybori to fail to install:
</p>
</blockquote>
<p>
[...]
Here on my system the old <code>m4ri/config.h</code> stays when the new libm4ri spkg is installed. Maybe something around polybori picks the outdated file?
</p>
<p>
Regards,
</p>
<blockquote>
<p>
Alexander
</p>
</blockquote>
TicketAlexanderDreyerFri, 26 Aug 2011 06:41:42 GMT
https://trac.sagemath.org/ticket/11574#comment:34
https://trac.sagemath.org/ticket/11574#comment:34
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:33" title="Comment 33">AlexanderDreyer</a>:
</p>
<blockquote class="citation">
<p>
Here on my system the old <code>m4ri/config.h</code> stays when the new libm4ri spkg is installed. Maybe something around polybori picks the outdated file?
</p>
</blockquote>
<p>
As Jeroen pointed out this is not related. Unfortunately I cannot reproduce this behaviour. Is there some machine on which this occurs, which I may be granted access to?
</p>
TicketmalbFri, 26 Aug 2011 13:23:49 GMT
https://trac.sagemath.org/ticket/11574#comment:35
https://trac.sagemath.org/ticket/11574#comment:35
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:34" title="Comment 34">AlexanderDreyer</a>:
</p>
<blockquote class="citation">
<p>
As Jeroen pointed out this is not related. Unfortunately I cannot reproduce this behaviour. Is there some machine on which this occurs, which I may be granted access to?
</p>
</blockquote>
<p>
The only machine which I know of is 'cicero' on skynet. We could try to get you an account there but it would take a while I guess. Right now, I cannot even log into the machine.
</p>
TicketAlexanderDreyerFri, 26 Aug 2011 14:34:49 GMT
https://trac.sagemath.org/ticket/11574#comment:36
https://trac.sagemath.org/ticket/11574#comment:36
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:35" title="Comment 35">malb</a>:
</p>
<blockquote class="citation">
<p>
The only machine which I know of is 'cicero' on skynet. We could try to get you an account there but it would take a while I guess. Right now, I cannot even log into the machine.
</p>
</blockquote>
<p>
This would be nice. I'm about to prepare a qemu image for Gentoo x86. But that will last for some time since I have to compile everything from scratch (It's Gentoo.)
</p>
TicketfbisseyFri, 26 Aug 2011 22:11:07 GMTcc set
https://trac.sagemath.org/ticket/11574#comment:37
https://trac.sagemath.org/ticket/11574#comment:37
<ul>
<li><strong>cc</strong>
<em>strogdon</em> added
</li>
</ul>
<p>
I think thing go south from there
</p>
<pre class="wiki">/usr/lib/gcc/i686-pc-linux-gnu/4.4.3/include/emmintrin.h:32:3: error: #error "SSE2 instruction set not enabled"
</pre><p>
I had a x86 box without sse2 but it is now collecting dust without an OS installed. I will take a look on the closest thing I can get. Actually Steve Trogdon could have a box where this could be tested, I am copying him.
</p>
TicketstrogdonSat, 27 Aug 2011 02:47:59 GMT
https://trac.sagemath.org/ticket/11574#comment:38
https://trac.sagemath.org/ticket/11574#comment:38
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:37" title="Comment 37">fbissey</a>:
</p>
<blockquote class="citation">
<p>
I think thing go south from there
</p>
<pre class="wiki">/usr/lib/gcc/i686-pc-linux-gnu/4.4.3/include/emmintrin.h:32:3: error: #error "SSE2 instruction set not enabled"
</pre><p>
I had a x86 box without sse2 but it is now collecting dust without an OS installed. I will take a look on the closest thing I can get. Actually Steve Trogdon could have a box where this could be tested, I am copying him.
</p>
</blockquote>
<p>
I get the same failure as <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:33" title="Comment 33">comment:33</a>
</p>
<pre class="wiki">/storage/strogdon/gentoo/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/include/emmintrin.h:32:3: error: #error "SSE2 instruction set not enabled"
In file included from /storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/permutation.h:31:0,
from /storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/m4ri.h:50,
from groebner/src/nf.h:15,
from groebner/src/randomset.cc:11:
...
scons: *** [groebner/src/randomset.o] Error 1
scons: building terminated because of errors.
Error building PolyBoRi.
</pre>
TicketmalbSat, 27 Aug 2011 11:01:36 GMT
https://trac.sagemath.org/ticket/11574#comment:39
https://trac.sagemath.org/ticket/11574#comment:39
<p>
M4RI *should* test for SSE2 and only include that header if it is present. Since it worked so far, I assume it still does that. However, we recently switched from <code>HAVE_SSE2</code> to <code>__M4RI_HAVE_SSE2</code> and this might be a change that <a class="missing wiki">PolyBoRi?</a> didn't pick up? However, it shouldn't be <a class="missing wiki">PolyBoRi?</a>'s responsibility to check for SSE2 and hence something goes wrong when including <code>m4ri.h</code>.
</p>
TicketmalbSat, 27 Aug 2011 11:36:24 GMT
https://trac.sagemath.org/ticket/11574#comment:40
https://trac.sagemath.org/ticket/11574#comment:40
<p>
For some reason <code>m4ri_config.h</code> on cicero has
</p>
<pre class="wiki">#define __M4RI_HAVE_SSE2 1
</pre><p>
which is totally wrong! I'll investigate.
</p>
TicketmalbSat, 27 Aug 2011 12:34:24 GMT
https://trac.sagemath.org/ticket/11574#comment:41
https://trac.sagemath.org/ticket/11574#comment:41
<p>
More data on cicero:
</p>
<p>
<code>cat /proc/cpuinfo</code> reports SSE2
</p>
<pre class="wiki">flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe up pebs bts
</pre><p>
but <code>/usr/lib/gcc/i686-pc-linux-gnu/4.4.3/include/emmintrin.h:32:3</code> complains. I assume this is because neither PolyBoRi nor Sage pass <code>-msse2</code> when linking against M4RI but <code>-msse2</code> defines <code>__SSE2__</code> which is required by <code>emmintrin.h</code>. But I don't understand yet why the previous version works.
</p>
TicketmalbSat, 27 Aug 2011 12:40:10 GMT
https://trac.sagemath.org/ticket/11574#comment:42
https://trac.sagemath.org/ticket/11574#comment:42
<p>
I can confirm that passing <code>-msse2</code> fixes the issue. I guess I'll have to find a way to save the flags (to disc?) such that third parties (PolyBoRi, Sage) can re-use them? Any suggestions on how to do that?
</p>
TicketAlexanderDreyerSat, 27 Aug 2011 20:16:12 GMT
https://trac.sagemath.org/ticket/11574#comment:43
https://trac.sagemath.org/ticket/11574#comment:43
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:42" title="Comment 42">malb</a>:
</p>
<blockquote class="citation">
<p>
I can confirm that passing <code>-msse2</code> fixes the issue. I guess I'll have to find a way to save the flags (to disc?) such that third parties (PolyBoRi, Sage) can re-use them? Any suggestions on how to do that?
</p>
</blockquote>
<p>
For scons-bases builds (PolyBoRi as well as Sage) I should be able to provide a suitable code snipplet which checks whether <span class="underline">M4RI_HAVE_SSE2 is defined in m4ri/m4ri_config.h.
</span></p>
TicketAlexanderDreyerSat, 27 Aug 2011 23:49:05 GMTowner deleted
https://trac.sagemath.org/ticket/11574#comment:44
https://trac.sagemath.org/ticket/11574#comment:44
<ul>
<li><strong>owner</strong>
changed from <em>tbd</em> to <em>(none)</em>
</li>
</ul>
<p>
We have added some configuration for this here:
<a class="ext-link" href="https://bitbucket.org/brickenstein/polybori/changeset/e5ecbbe5a904"><span class="icon"></span>https://bitbucket.org/brickenstein/polybori/changeset/e5ecbbe5a904</a>
I'll backport this to 0.7.1 and bundle a new spkg asap.
</p>
TicketAlexanderDreyerSat, 27 Aug 2011 23:50:18 GMT
https://trac.sagemath.org/ticket/11574#comment:45
https://trac.sagemath.org/ticket/11574#comment:45
<p>
PS: I'm also checking things like sse3 which m4ri might or might not use in the future.
</p>
TicketmalbSun, 28 Aug 2011 11:59:17 GMT
https://trac.sagemath.org/ticket/11574#comment:46
https://trac.sagemath.org/ticket/11574#comment:46
<p>
Hi Alexander,
</p>
<p>
so your plan is to parse for <code>__M4RI_HAVE_SSE2=1</code> and then pass <code>-msse2</code> manually? The only caveat I could see with that approach is that it limits us to use !GCC. For Sage this isn't really a problem. M4RI supports more compilers. How's that for PolyBoRi?
</p>
<p>
If we want to support more compilers I was thinking about dumping the CFLAGS to disk in M4RI which third party tools then can re-use. I was thinking of using the pkg-config.rc file which one can then either use via pkg-config or parse oneself.
</p>
<p>
PS: Sage's main build scripts are not !Scons based, but I can certainly take care of those.
</p>
TicketmalbSun, 28 Aug 2011 17:41:31 GMTcc changed
https://trac.sagemath.org/ticket/11574#comment:47
https://trac.sagemath.org/ticket/11574#comment:47
<ul>
<li><strong>cc</strong>
<em>leif</em> added
</li>
</ul>
TicketAlexanderDreyerSun, 28 Aug 2011 19:33:21 GMT
https://trac.sagemath.org/ticket/11574#comment:48
https://trac.sagemath.org/ticket/11574#comment:48
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:46" title="Comment 46">malb</a>:
</p>
<blockquote class="citation">
<p>
The only caveat I could see with that approach is that it limits us to use !GCC. For Sage this isn't really a problem. M4RI supports more compilers. How's that for PolyBoRi?
</p>
</blockquote>
<p>
We support only gcc yet. In the case that we would add additional ones we'll add a mapping of non-default compiler options anyway.
(e.g. -msse2 -> -xarch-sse2 for sun studio). But if you could export the original parameters, this would of course be better.
</p>
<blockquote class="citation">
<p>
If we want to support more compilers I was thinking about dumping the CFLAGS to disk in M4RI which third party tools then can re-use. I was thinking of using the pkg-config.rc file which one can then either use via pkg-config or parse oneself.
</p>
</blockquote>
<p>
I would prefer if you could add a macro defining the options as a string literal to m4ri_config.h. But if you need to setup the rc file anyway, you do not have to duplicate work.
</p>
TicketleifSun, 28 Aug 2011 19:39:05 GMT
https://trac.sagemath.org/ticket/11574#comment:49
https://trac.sagemath.org/ticket/11574#comment:49
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:42" title="Comment 42">malb</a>:
</p>
<blockquote class="citation">
<p>
I can confirm that passing <code>-msse2</code> fixes the issue. I guess I'll have to find a way to save the flags (to disc?) such that third parties (PolyBoRi, Sage) can re-use them? Any suggestions on how to do that?
</p>
</blockquote>
<p>
Take a look at GMP's / MPIR's <code>gmp.h</code> and the various libs (like e.g. MPFR) that use it:
</p>
<div class="wiki-code"><div class="code"><pre><span class="nv">$ </span>egrep -B1 <span class="s2">"__GMP_(CC|CFLAGS)"</span> /usr/include/gmp.h
/* Define CC and CFLAGS which were used to build this version of GMP */
<span class="c">#define __GMP_CC "gcc -std=gnu99"
#define __GMP_CFLAGS "-march=native -g -O3"
</span></pre></div></div><p>
I for example use (slightly OT):
</p>
<div class="wiki-code"><div class="code"><pre><span class="c"># We eventually use / add these settings (or parts of them) to "our" CFLAGS,
# e.g. "-march=..." or "-mcpu=..." and "-mtune=..." to let gcc generate better,
# processor-specific code, since ECM doesn't use them if we set our own:
</span><span class="nv">gmp_cc_pat</span><span class="o">=</span><span class="s1">'/^[ ]*#[ ]*define[ ]\+__GMP_CC[ ]\+/s/.*"\([^"]*\)"/\1/p'</span>
<span class="nv">gmp_cflags_pat</span><span class="o">=</span><span class="s1">'/^[ ]*#[ ]*define[ ]\+__GMP_CFLAGS[ ]\+/s/.*"\([^"]*\)"/\1/p'</span>
<span class="nv">gmp_cc</span><span class="o">=</span><span class="sb">`</span>sed -n -e <span class="s2">"$gmp_cc_pat"</span> <span class="s2">"$SAGE_LOCAL"</span>/include/gmp.h<span class="sb">`</span>
<span class="nv">gmp_cflags</span><span class="o">=</span><span class="sb">`</span>sed -n -e <span class="s2">"$gmp_cflags_pat"</span> <span class="s2">"$SAGE_LOCAL"</span>/include/gmp.h<span class="sb">`</span>
<span class="nv">system_gmp_h</span><span class="o">=</span><span class="s2">""</span>
<span class="k">for </span>incdir in /usr/include /usr/local/include; <span class="k">do
if</span> <span class="o">[</span> -f <span class="nv">$incdir</span>/gmp.h <span class="o">]</span>; <span class="k">then
</span><span class="nv">system_gmp_h</span><span class="o">=</span><span class="nv">$incdir</span>/gmp.h
<span class="k">fi
done
if</span> <span class="o">[</span> -n <span class="s2">"$system_gmp_h"</span> <span class="o">]</span>; <span class="k">then
</span><span class="nv">system_gmp_cc</span><span class="o">=</span><span class="sb">`</span>sed -n -e <span class="s2">"$gmp_cc_pat"</span> <span class="nv">$system_gmp_h</span><span class="sb">`</span>
<span class="nv">system_gmp_cflags</span><span class="o">=</span><span class="sb">`</span>sed -n -e <span class="s2">"$gmp_cflags_pat"</span> <span class="nv">$system_gmp_h</span><span class="sb">`</span>
<span class="k">fi</span>
...
<span class="k">else</span>
<span class="c"># 'native' not supported, see if GMP / MPIR provides us some CPU type:
</span> <span class="k">for </span>opt in <span class="nv">$gmp_cflags</span>; <span class="k">do
case</span> <span class="nv">$opt</span> in
-march<span class="o">=</span>*|-mcpu<span class="o">=</span>*|-mtune*<span class="o">)</span>
<span class="nb">echo</span> <span class="s2">"Found CPU parameter in gmp.h: $opt"</span>
<span class="nv">cpu_params</span><span class="o">=</span><span class="s2">"$cpu_params $opt"</span>
;;
<span class="c"># perhaps add other options, too (e.g. for different compilers)
</span> *<span class="o">)</span> <span class="nv">other_gmp_cflags</span><span class="o">=</span><span class="s2">"$other_gmp_cflags $opt"</span>
<span class="k">esac
done
fi</span>
<span class="c"># Only add them if CFLAGS do not already contain similar:
</span> <span class="k">if</span> <span class="o">[</span> -n <span class="s2">"$cpu_params"</span> <span class="o">]</span> <span class="o">&&</span>
! <span class="o">(</span><span class="nb">echo</span> <span class="s2">"$CFLAGS"</span> | egrep -- <span class="s1">'-march=|-mcpu=|-mtune='</span> >/dev/null<span class="o">)</span>;
<span class="k">then
</span><span class="nb">echo</span> <span class="s2">"Using additional host-specific CFLAGS: $cpu_params"</span>
<span class="nv">CFLAGS</span><span class="o">=</span><span class="s2">"$cpu_params $CFLAGS"</span>
<span class="k">fi
if</span> <span class="o">[</span> -n <span class="s2">"$other_gmp_cflags"</span> <span class="o">]</span>; <span class="k">then
</span><span class="nb">echo</span> <span class="s2">"Not using other CFLAGS provided by gmp.h: $other_gmp_cflags"</span>
<span class="k">fi</span>
...
</pre></div></div><p>
Putting at least the <em>necessary</em> flags into <code>libm4ri.pc</code> is of course another, non-exclusive option, and even on systems that lack <code>pkg-config</code>, you could use the <code>.pc</code> file by adding a few lines of shell, Python or whatever code.
</p>
<p>
You can also test whether adding <code>-msse2</code> (if using SSE2 is desired) is necessary at all, or supported (for simplicity, here <code>gcc</code>-specific):
</p>
<div class="wiki-code"><div class="code"><pre><span class="c"># Test whether '-msse2' is supported at all:
</span><span class="k">if</span> <span class="nv">$CC</span> -msse2 -c -x c /dev/null -o /dev/null &>/dev/null; <span class="k">then</span>
<span class="c"># Ok, supported. Do we need it?
</span> <span class="c"># [Should perhaps check whether __SSE2__ is really non-zero.]
</span> <span class="k">if</span> <span class="o">(</span><span class="nv">$CC</span> -E -dM -x c /dev/null | grep -w __SSE2__<span class="o">)</span> &>/dev/null; <span class="k">then</span>
<span class="c"># Fine, we don't need to pass any options to enable SSE2.
</span> <span class="nv">required_cflag</span><span class="o">=</span><span class="s2">""</span>
<span class="k">else
</span><span class="nv">required_cflag</span><span class="o">=</span><span class="s2">"-msse2"</span>
<span class="k">fi</span>
<span class="c"># Check whether the flag conflicts with others, perhaps specified by the user:
</span> <span class="k">if</span> <span class="nv">$CC</span> <span class="nv">$CFLAGS</span> <span class="nv">$required_cflag</span> -c -x c /dev/null -o /dev/null &>/dev/null; <span class="k">then</span>
<span class="c"># Ok, compatible and sufficient.
</span> <span class="k">else</span>
<span class="c"># Conflicting flags, issue error message or try something else...
</span> <span class="k">fi
else</span>
<span class="c"># Not supported, perhaps disable use of SSE2.
</span><span class="k">fi</span>
</pre></div></div><p>
(The same tests can easily be performed from Python as well, e.g. in [Sage's] <code>setup.py</code> or <code>module_list.py</code>. You could also steal macros from autotools.)
</p>
TicketmalbSun, 28 Aug 2011 19:53:21 GMT
https://trac.sagemath.org/ticket/11574#comment:50
https://trac.sagemath.org/ticket/11574#comment:50
<p>
The attached patch manually adds <code>-msse -msse2</code> in module_list.py if <code>__M4RI_HAVE_SSE2</code>. I fully agree that M4RI should export its flags both as an .rc file and as a define like GMP and I will implement this as well.
</p>
TicketmalbSun, 28 Aug 2011 19:56:27 GMT
https://trac.sagemath.org/ticket/11574#comment:51
https://trac.sagemath.org/ticket/11574#comment:51
<p>
Leif, note that M4RI checks for <code>-msse2</code> like this
</p>
<blockquote>
<p>
<a class="ext-link" href="https://bitbucket.org/malb/m4ri/src/58007c8c739a/m4/ax_ext.m4"><span class="icon"></span>https://bitbucket.org/malb/m4ri/src/58007c8c739a/m4/ax_ext.m4</a>
</p>
</blockquote>
TicketleifSun, 28 Aug 2011 20:06:00 GMT
https://trac.sagemath.org/ticket/11574#comment:52
https://trac.sagemath.org/ticket/11574#comment:52
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:48" title="Comment 48">AlexanderDreyer</a>:
</p>
<blockquote class="citation">
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:46" title="Comment 46">malb</a>:
</p>
<blockquote class="citation">
<p>
The only caveat I could see with that approach is that it limits us to use !GCC. For Sage this isn't really a problem. M4RI supports more compilers. How's that for PolyBoRi?
</p>
</blockquote>
<p>
We support only gcc yet. In the case that we would add additional ones we'll add a mapping of non-default compiler options anyway.
</p>
</blockquote>
<p>
Yep. Adding such is almost trivial, at least for a fixed set of compilers (and platforms).
</p>
<p>
<br />
</p>
<blockquote class="citation">
<p>
(e.g. -msse2 -> -xarch-sse2 for sun studio). But if you could export the original parameters, this would of course be better.
</p>
</blockquote>
<p>
I'd do both, and resort to the SCons method in case no (suitable) parameters are available.
</p>
<p>
<br />
</p>
<blockquote class="citation">
<blockquote class="citation">
<p>
If we want to support more compilers I was thinking about dumping the CFLAGS to disk in M4RI which third party tools then can re-use. I was thinking of using the pkg-config.rc file which one can then either use via pkg-config or parse oneself.
</p>
</blockquote>
<p>
I would prefer if you could add a macro defining the options as a string literal to m4ri_config.h. But if you need to setup the rc file anyway, you do not have to duplicate work.
</p>
</blockquote>
<p>
I'd do both, but preferably use the header method. Using the <code>.pc</code> file is limited and to some extent dangerous, since <code>pkg-config</code> files lack (by default) a compiler command entry such that the flags may be invalid or insufficient for the actual compiler used. <br />
(Note that some people even put flags into <code>CC</code> rather than <code>CFLAGS</code>, and different installed GCC versions might default to different architectures as well.)
</p>
<p>
You could either define other variables there, to get parsed / interpreted "manually", or simply put exactly the same lines you put into your header file into the <code>.pc</code> file, since incidentally any <code>#define</code> in a <code>.pc</code> file happens to be just a comment. :-)
</p>
<p>
(You'll have to use e.g. <code>grep</code> to extract them though, rather than <code>pkg-config</code>.)
</p>
TicketleifSun, 28 Aug 2011 20:35:31 GMT
https://trac.sagemath.org/ticket/11574#comment:53
https://trac.sagemath.org/ticket/11574#comment:53
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:50" title="Comment 50">malb</a>:
</p>
<blockquote class="citation">
<p>
The attached patch manually adds <code>-msse -msse2</code> in module_list.py if <code>__M4RI_HAVE_SSE2</code>. I fully agree that M4RI should export its flags both as an .rc file and as a define like GMP and I will implement this as well.
</p>
</blockquote>
<p>
Shouldn't the modules also depend on <code>SAGE_LOCAL + "/include/m4ri/m4ri_config.h"</code>? (You should use <code>SAGE_INC</code> there, too, btw. ;-) )
</p>
<p>
This should be done in a more general or automatic way, i.e., <code>m4ri_extra_compile_args</code> (and probably <code>-std=c99</code>) should be added in <code>setup.py</code> for every module that links against <code>libm4ri</code>.
</p>
<p>
(I'm adding similar for dependencies, e.g. at <a class="closed ticket" href="https://trac.sagemath.org/ticket/8664" title="enhancement: Upgrade Sage's MPIR spkg to version 2.1.3 (closed: fixed)">#8664</a>, and other stuff, in order to make <code>module_list.py</code> more modular and less error-prone.)
</p>
<p>
P.S.: SSE2 is a superset of SSE, just as <code>-msse2</code> implies <code>-msse</code>.
</p>
<p>
The patch doesn't yet check whether adding these flags is sufficient. Haven't looked at your M4RI code, but if you add something like
</p>
<div class="wiki-code"><div class="code"><pre><span class="cp">#if defined(__M4RI_HAVE_SSE2) && __M4RI_HAVE_SSE2
# if !defined(__SSE2__) || !__SSE2__
# error Your current compiler and / or CFLAGS setting doesn't allow SSE2 code. Please change that or these to the setting(s) you used when compiling M4RI.
# endif
#endif
</span></pre></div></div><p>
(I wanted to post that to sage-devel a few hours ago, in response to:
</p>
<pre class="wiki">> > If 'configure' determined the machine supports SSE2, __M4RI_HAVE_SSE2
> > is set to 1, but even if that's the case, you should still also test
> > __SSE2__ when compiling code later (including code *using* the
> > library).
> Why? I want that whoever links against M4RI lives in the same world as M4RI.
</pre><p>
for the reasons given above.)
</p>
TicketleifSun, 28 Aug 2011 21:24:35 GMT
https://trac.sagemath.org/ticket/11574#comment:54
https://trac.sagemath.org/ticket/11574#comment:54
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:53" title="Comment 53">leif</a>:
</p>
<blockquote class="citation">
<p>
This should be done in a more general or automatic way, i.e., <code>m4ri_extra_compile_args</code> (and probably <code>-std=c99</code>) should be added in <code>setup.py</code> for every module that links against <code>libm4ri</code>.
</p>
</blockquote>
<p>
P.S.: I don't mean you have to do / change that <em>here</em>, as e.g. Francois is also messing around in that area of <code>setup.py</code> ;-) , such that patches were likely to conflict, so I could also change that later on another ticket, perhaps unrelated to M4RI, but dealing with <code>setup.py</code>.
</p>
TicketAlexanderDreyerMon, 29 Aug 2011 00:02:17 GMT
https://trac.sagemath.org/ticket/11574#comment:55
https://trac.sagemath.org/ticket/11574#comment:55
<p>
A new <a class="missing wiki">PolyBoRi?</a> 0.7.1 spkg (with activated -msse2 option, when necessary) can be found here:
<a class="ext-link" href="http://sage.math.washington.edu/home/dreyer/spkg/polybori-0.7.1.p5.spkg"><span class="icon"></span>http://sage.math.washington.edu/home/dreyer/spkg/polybori-0.7.1.p5.spkg</a>
</p>
TicketfbisseyMon, 29 Aug 2011 01:47:19 GMT
https://trac.sagemath.org/ticket/11574#comment:56
https://trac.sagemath.org/ticket/11574#comment:56
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:54" title="Comment 54">leif</a>:
</p>
<blockquote class="citation">
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:53" title="Comment 53">leif</a>:
</p>
<blockquote class="citation">
<p>
This should be done in a more general or automatic way, i.e., <code>m4ri_extra_compile_args</code> (and probably <code>-std=c99</code>) should be added in <code>setup.py</code> for every module that links against <code>libm4ri</code>.
</p>
</blockquote>
<p>
P.S.: I don't mean you have to do / change that <em>here</em>, as e.g. Francois is also messing around in that area of <code>setup.py</code> ;-) , such that patches were likely to conflict, so I could also change that later on another ticket, perhaps unrelated to M4RI, but dealing with <code>setup.py</code>.
</p>
</blockquote>
<p>
All my changes have been merged in 4.7.2.alpha1 I don't see them getting out again. So I would say it is safe to base your patch on that.
</p>
TicketleifMon, 29 Aug 2011 02:12:00 GMT
https://trac.sagemath.org/ticket/11574#comment:57
https://trac.sagemath.org/ticket/11574#comment:57
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:56" title="Comment 56">fbissey</a>:
</p>
<blockquote class="citation">
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:54" title="Comment 54">leif</a>:
</p>
<blockquote class="citation">
<p>
P.S.: I don't mean you have to do / change that <em>here</em>, as e.g. Francois is also messing around in that area of <code>setup.py</code> ;-) , such that patches were likely to conflict, so I could also change that later on another ticket, perhaps unrelated to M4RI, but dealing with <code>setup.py</code>.
</p>
</blockquote>
<p>
All my changes have been merged in 4.7.2.alpha1 I don't see them getting out again. So I would say it is safe to base your patch on that.
</p>
</blockquote>
<p>
But <strong>I've</strong> to again rebase my patch from <a class="closed ticket" href="https://trac.sagemath.org/ticket/8664" title="enhancement: Upgrade Sage's MPIR spkg to version 2.1.3 (closed: fixed)">#8664</a> on yours... :D
</p>
<p>
P.S.: Some good and bad news for <a class="closed ticket" href="https://trac.sagemath.org/ticket/9958" title="enhancement: Upgrade python to 2.7.x (closed: fixed)">#9958</a> coming soon...
</p>
TicketfbisseyMon, 29 Aug 2011 02:24:51 GMT
https://trac.sagemath.org/ticket/11574#comment:58
https://trac.sagemath.org/ticket/11574#comment:58
<p>
Indeed, I mothballed SAGE_DEBIAN ! I didn't notice you had a patch touching that area in <a class="closed ticket" href="https://trac.sagemath.org/ticket/8664" title="enhancement: Upgrade Sage's MPIR spkg to version 2.1.3 (closed: fixed)">#8664</a>, it took too long to merge that one really. It has to go in.
</p>
<p>
I am bracing myself for <a class="closed ticket" href="https://trac.sagemath.org/ticket/9958" title="enhancement: Upgrade python to 2.7.x (closed: fixed)">#9958</a>, you know we already ship sage-on-gentoo with python-2.7 and it works well (<a class="closed ticket" href="https://trac.sagemath.org/ticket/11339" title="defect: Refcounting for Singular rings (closed: fixed)">#11339</a> excluded) on x86/amd64 linux and OS X in a prefix. But we are getting off-track.
</p>
TicketAlexanderDreyerMon, 29 Aug 2011 09:59:20 GMT
https://trac.sagemath.org/ticket/11574#comment:59
https://trac.sagemath.org/ticket/11574#comment:59
<p>
The PolyBoRi spkg has now its own ticket: <a class="closed ticket" href="https://trac.sagemath.org/ticket/11756" title="defect: PolyBoRi 0.7.1 needs to activate -msse2 (closed: fixed)">#11756</a> It it solved the problem (it does for me on a Gentoo VM), please review.
</p>
TicketmalbMon, 29 Aug 2011 11:50:49 GMT
https://trac.sagemath.org/ticket/11574#comment:60
https://trac.sagemath.org/ticket/11574#comment:60
<p>
Hi,
</p>
<p>
so how's this for a strategy:
</p>
<ul><li>we do the fixes (or something similar) that Alexander and I proposed for PolyBoRi and !Sage respectively now
</li><li>I provide (in a new ticket) an updated M4RI which exports its !CLFAGS both in the headers and in the .rc file and also checks for <span class="underline">SSE2</span> to fail gracefully.
</li><li>We then update !Sage & PolyBoRi again to use these !CFLAGS?
</li></ul>
TicketstrogdonMon, 29 Aug 2011 14:04:01 GMT
https://trac.sagemath.org/ticket/11574#comment:61
https://trac.sagemath.org/ticket/11574#comment:61
<p>
polybori-0.7.1.p5.spkg does build. I applied the two indicated patches but building of sage itself fails:
</p>
<pre class="wiki">gcc -fno-strict-aliasing -g -O2 -DNDEBUG -g -O3 -Wall -Wstrict-prototypes -fPIC -I/storage/sage-python2.6/sage-4.7.2.alpha1/local/include -I/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/csage -I/storage/sage-python2.6/sage-4.7
.2.alpha1/devel/sage/sage/ext -I/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/python2.6 -c sage/matrix/matrix_integer_dense.c -o build/temp.linux-i686-2.6/sage/matrix/matrix_integer_dense.o -std=c99 -w
In file included from /storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:42:0,
from /storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/permutation.h:31,
from /storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/m4ri.h:50,
from sage/matrix/matrix_integer_dense.c:240:
/storage/strogdon/gentoo/usr/lib/gcc/i686-pc-linux-gnu/4.5.2/include/emmintrin.h:32:3: error: #error "SSE2 instruction set not enabled"
In file included from /storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/permutation.h:31:0,
from /storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/m4ri.h:50,
from sage/matrix/matrix_integer_dense.c:240:
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h: In function mzd_row_add_offset:
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:741:5: error: __m128i undeclared (first use in this function)
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:741:5: note: each undeclared identifier is reported only once for each function it appears in
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:741:14: error: __src undeclared (first use in this function)
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:741:31: error: expected expression before ) token
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:742:14: error: __dst undeclared (first use in this function)
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:742:31: error: expected expression before ) token
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:743:14: error: expected expression before const
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:746:15: error: expected ; before xmm1
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:747:18: error: xmm1 undeclared (first use in this function)
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:749:21: error: eof undeclared (first use in this function)
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h: In function mzd_combine_even_in_place:
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1190:7: error: __m128i undeclared (first use in this function)
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1190:16: error: a128 undeclared (first use in this function)
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1190:32: error: expected expression before ) token
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1191:16: error: b128 undeclared (first use in this function)
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1191:32: error: expected expression before ) token
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1192:21: error: expected =, ,, ;, asm or __attribute__ before * token
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1192:22: error: eof undeclared (first use in this function)
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1192:37: error: expected expression before ) token
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h: In function mzd_combine_even:
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1274:7: error: __m128i undeclared (first use in this function)
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1274:16: error: a128 undeclared (first use in this function)
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1274:32: error: expected expression before ) token
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1275:16: error: b128 undeclared (first use in this function)
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1275:32: error: expected expression before ) token
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1276:16: error: c128 undeclared (first use in this function)
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1276:32: error: expected expression before ) token
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1277:21: error: expected =, ,, ;, asm or __attribute__ before * token
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1277:22: error: eof undeclared (first use in this function)
/storage/sage-python2.6/sage-4.7.2.alpha1/local/include/m4ri/packedmatrix.h:1277:37: error: expected expression before ) token
</pre>
TicketmalbMon, 29 Aug 2011 14:16:04 GMT
https://trac.sagemath.org/ticket/11574#comment:62
https://trac.sagemath.org/ticket/11574#comment:62
<p>
Okay, I know what the issue is and will update the patch accordingly!
</p>
TicketleifMon, 29 Aug 2011 14:54:15 GMT
https://trac.sagemath.org/ticket/11574#comment:63
https://trac.sagemath.org/ticket/11574#comment:63
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:60" title="Comment 60">malb</a>:
</p>
<blockquote class="citation">
<p>
so how's this for a strategy:
<br />
</p>
<ul><li>we do the fixes (or something similar) that Alexander and I proposed for PolyBoRi and !Sage respectively now <br />
</li><li>I provide (in a new ticket) an updated M4RI which exports its !CLFAGS both in the headers and in the .rc file and also checks for <span class="underline">SSE2</span> to fail gracefully. <br />
</li><li>We then update !Sage & PolyBoRi again to use these !CFLAGS?
</li></ul></blockquote>
<p>
!That ?sounds !reasonable!!
</p>
<p>
And also avoids circular ticket dependencies for the follow-up(s)...
</p>
TicketleifMon, 29 Aug 2011 14:58:12 GMT
https://trac.sagemath.org/ticket/11574#comment:64
https://trac.sagemath.org/ticket/11574#comment:64
<p>
... though you could easily add the graceful dead <em>here' as well.
</em></p>
TicketmalbMon, 29 Aug 2011 15:28:56 GMT
https://trac.sagemath.org/ticket/11574#comment:65
https://trac.sagemath.org/ticket/11574#comment:65
<p>
I wanted to add it to M4RI and so far the update to this ticket does not require a new M4RI SPKG. I'm in the process of patching M4RI and will open a new ticket for it shortly. Once that's done we can easily make that a dependency for this ticket?
</p>
TicketmalbMon, 29 Aug 2011 15:29:32 GMTattachment set
https://trac.sagemath.org/ticket/11574
https://trac.sagemath.org/ticket/11574
<ul>
<li><strong>attachment</strong>
set to <em>trac_11574_m4ri_sse2.patch</em>
</li>
</ul>
TicketmalbMon, 29 Aug 2011 15:32:22 GMTstatus changed
https://trac.sagemath.org/ticket/11574#comment:66
https://trac.sagemath.org/ticket/11574#comment:66
<ul>
<li><strong>status</strong>
changed from <em>needs_work</em> to <em>needs_review</em>
</li>
</ul>
<p>
The updated patch <em>should</em> allow the Sage build to go through. Testing on cicero now. I also added some <code>depends</code> fields as suggested by Leif.
</p>
TicketmalbMon, 29 Aug 2011 16:20:36 GMT
https://trac.sagemath.org/ticket/11574#comment:67
https://trac.sagemath.org/ticket/11574#comment:67
<p>
The new M4RI SPKG is at <a class="closed ticket" href="https://trac.sagemath.org/ticket/11757" title="enhancement: update M4RI to version 20110901 or later (closed: fixed)">#11757</a>
</p>
TicketSimonKingMon, 29 Aug 2011 18:21:23 GMTstatus changed
https://trac.sagemath.org/ticket/11574#comment:68
https://trac.sagemath.org/ticket/11574#comment:68
<ul>
<li><strong>status</strong>
changed from <em>needs_review</em> to <em>needs_info</em>
</li>
</ul>
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:67" title="Comment 67">malb</a>:
</p>
<blockquote class="citation">
<p>
The new M4RI SPKG is at <a class="closed ticket" href="https://trac.sagemath.org/ticket/11757" title="enhancement: update M4RI to version 20110901 or later (closed: fixed)">#11757</a>
</p>
</blockquote>
<p>
Does that mean that <a class="closed ticket" href="https://trac.sagemath.org/ticket/11757" title="enhancement: update M4RI to version 20110901 or later (closed: fixed)">#11757</a> makes this ticket a duplicate?
</p>
TicketstrogdonTue, 30 Aug 2011 04:27:56 GMT
https://trac.sagemath.org/ticket/11574#comment:69
https://trac.sagemath.org/ticket/11574#comment:69
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:66" title="Comment 66">malb</a>:
</p>
<blockquote class="citation">
<p>
The updated patch <em>should</em> allow the Sage build to go through. Testing on cicero now. I also added some <code>depends</code> fields as suggested by Leif.
</p>
</blockquote>
<p>
Yes, the updated patch does allow Sage to build and there are no failing tests.
</p>
TicketmalbTue, 30 Aug 2011 10:34:59 GMT
https://trac.sagemath.org/ticket/11574#comment:70
https://trac.sagemath.org/ticket/11574#comment:70
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:68" title="Comment 68">SimonKing</a>:
</p>
<blockquote class="citation">
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:67" title="Comment 67">malb</a>:
</p>
<blockquote class="citation">
<p>
The new M4RI SPKG is at <a class="closed ticket" href="https://trac.sagemath.org/ticket/11757" title="enhancement: update M4RI to version 20110901 or later (closed: fixed)">#11757</a>
</p>
</blockquote>
<p>
Does that mean that <a class="closed ticket" href="https://trac.sagemath.org/ticket/11757" title="enhancement: update M4RI to version 20110901 or later (closed: fixed)">#11757</a> makes this ticket a duplicate?
</p>
</blockquote>
<p>
I guess one could look at it this way. I'd suggest: We deal with this ticket here first and if people then still have energy and are not sick of M4RI yet we can also include <a class="closed ticket" href="https://trac.sagemath.org/ticket/11757" title="enhancement: update M4RI to version 20110901 or later (closed: fixed)">#11757</a>.
</p>
TicketleifTue, 30 Aug 2011 19:20:34 GMTstatus changed
https://trac.sagemath.org/ticket/11574#comment:71
https://trac.sagemath.org/ticket/11574#comment:71
<ul>
<li><strong>status</strong>
changed from <em>needs_info</em> to <em>needs_review</em>
</li>
</ul>
TicketmalbWed, 31 Aug 2011 10:57:44 GMT
https://trac.sagemath.org/ticket/11574#comment:72
https://trac.sagemath.org/ticket/11574#comment:72
<p>
So, anybody up for reviewing this? Or are people waiting for <a class="attachment" href="https://trac.sagemath.org/attachment/ticket/11574/trac_11574_m4ri_sse2.patch" title="Attachment 'trac_11574_m4ri_sse2.patch' in Ticket #11574">trac_11574_m4ri_sse2.patch</a><a class="trac-rawlink" href="https://trac.sagemath.org/raw-attachment/ticket/11574/trac_11574_m4ri_sse2.patch" title="Download"></a> being ported to <a class="closed ticket" href="https://trac.sagemath.org/ticket/11757" title="enhancement: update M4RI to version 20110901 or later (closed: fixed)">#11757</a>?
</p>
TicketstrogdonThu, 01 Sep 2011 01:06:41 GMT
https://trac.sagemath.org/ticket/11574#comment:73
https://trac.sagemath.org/ticket/11574#comment:73
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:72" title="Comment 72">malb</a>:
</p>
<blockquote class="citation">
<p>
So, anybody up for reviewing this? Or are people waiting for <a class="attachment" href="https://trac.sagemath.org/attachment/ticket/11574/trac_11574_m4ri_sse2.patch" title="Attachment 'trac_11574_m4ri_sse2.patch' in Ticket #11574">trac_11574_m4ri_sse2.patch</a><a class="trac-rawlink" href="https://trac.sagemath.org/raw-attachment/ticket/11574/trac_11574_m4ri_sse2.patch" title="Download"></a> being ported to <a class="closed ticket" href="https://trac.sagemath.org/ticket/11757" title="enhancement: update M4RI to version 20110901 or later (closed: fixed)">#11757</a>?
</p>
</blockquote>
<p>
I should probably defer review to Simon since I got in through the backdoor. However,
since Sage builds here and there are no doctest failures I would give it a positive review. I do have one question. Shouldn't this ticket depend upon ticket <a class="closed ticket" href="https://trac.sagemath.org/ticket/11756" title="defect: PolyBoRi 0.7.1 needs to activate -msse2 (closed: fixed)">#11756</a>, even though that one has a positive review?
</p>
TicketleifThu, 01 Sep 2011 02:48:17 GMTdependencies changed
https://trac.sagemath.org/ticket/11574#comment:74
https://trac.sagemath.org/ticket/11574#comment:74
<ul>
<li><strong>dependencies</strong>
changed from <em>#11261</em> to <em>#11261 #11756</em>
</li>
</ul>
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:73" title="Comment 73">strogdon</a>:
</p>
<blockquote class="citation">
<p>
Shouldn't this ticket depend upon ticket <a class="closed ticket" href="https://trac.sagemath.org/ticket/11756" title="defect: PolyBoRi 0.7.1 needs to activate -msse2 (closed: fixed)">#11756</a>, even though that one has a positive review?
</p>
</blockquote>
<p>
Yep, IMHO even if <a class="closed ticket" href="https://trac.sagemath.org/ticket/11756" title="defect: PolyBoRi 0.7.1 needs to activate -msse2 (closed: fixed)">#11756</a> had already been merged into some devel release.
</p>
TicketSimonKingThu, 01 Sep 2011 11:34:19 GMT
https://trac.sagemath.org/ticket/11574#comment:75
https://trac.sagemath.org/ticket/11574#comment:75
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:73" title="Comment 73">strogdon</a>:
</p>
<blockquote class="citation">
<p>
Replying to <a class="ticket" href="https://trac.sagemath.org/ticket/11574#comment:72" title="Comment 72">malb</a>:
</p>
<blockquote class="citation">
<p>
So, anybody up for reviewing this? Or are people waiting for <a class="attachment" href="https://trac.sagemath.org/attachment/ticket/11574/trac_11574_m4ri_sse2.patch" title="Attachment 'trac_11574_m4ri_sse2.patch' in Ticket #11574">trac_11574_m4ri_sse2.patch</a><a class="trac-rawlink" href="https://trac.sagemath.org/raw-attachment/ticket/11574/trac_11574_m4ri_sse2.patch" title="Download"></a> being ported to <a class="closed ticket" href="https://trac.sagemath.org/ticket/11757" title="enhancement: update M4RI to version 20110901 or later (closed: fixed)">#11757</a>?
</p>
</blockquote>
<p>
I should probably defer review to Simon since I got in through the backdoor.
</p>
</blockquote>
<p>
Sorry, I will probably not be able to review it in the next couple of days. So, iI'd appreciate if someone was quicker than I.
</p>
TicketmalbTue, 06 Sep 2011 15:44:10 GMTdescription changed
https://trac.sagemath.org/ticket/11574#comment:76
https://trac.sagemath.org/ticket/11574#comment:76
<ul>
<li><strong>description</strong>
modified (<a href="/ticket/11574?action=diff&version=76">diff</a>)
</li>
</ul>
<p>
anyone?
</p>
TicketAlexanderDreyerWed, 07 Sep 2011 09:14:52 GMTcc, reviewer, status changed
https://trac.sagemath.org/ticket/11574#comment:77
https://trac.sagemath.org/ticket/11574#comment:77
<ul>
<li><strong>cc</strong>
<em>AlexanderDreyer</em> added
</li>
<li><strong>reviewer</strong>
changed from <em>Simon King</em> to <em>Simon King, Alexander Dreyer</em>
</li>
<li><strong>status</strong>
changed from <em>needs_review</em> to <em>positive_review</em>
</li>
</ul>
<p>
The spkg builds and and installs fine. Together with the patches <code>sage -testall </code> was run successfully on a SuSE Linux Enterprise 11 x86_64, Gentoo i486, and Mac OS X 10.5 ppc.
</p>
<p>
So, I can cordially give a positive review!
</p>
TicketleifMon, 12 Sep 2011 06:39:08 GMT
https://trac.sagemath.org/ticket/11574#comment:78
https://trac.sagemath.org/ticket/11574#comment:78
<p>
<a class="attachment" href="https://trac.sagemath.org/attachment/ticket/11574/m4ri_20110601.patch" title="Attachment 'm4ri_20110601.patch' in Ticket #11574">m4ri_20110601.patch</a><a class="trac-rawlink" href="https://trac.sagemath.org/raw-attachment/ticket/11574/m4ri_20110601.patch" title="Download"></a> has no ticket number in its commit message.
</p>
TicketmalbMon, 12 Sep 2011 14:12:42 GMTattachment set
https://trac.sagemath.org/ticket/11574
https://trac.sagemath.org/ticket/11574
<ul>
<li><strong>attachment</strong>
set to <em>m4ri_20110601.patch</em>
</li>
</ul>
<p>
rebased to 4.7.1.alpha4
</p>
TicketmalbMon, 12 Sep 2011 14:13:07 GMT
https://trac.sagemath.org/ticket/11574#comment:79
https://trac.sagemath.org/ticket/11574#comment:79
<p>
fixed.
</p>
TicketleifMon, 12 Sep 2011 18:36:03 GMTstatus changed; resolution, merged set
https://trac.sagemath.org/ticket/11574#comment:80
https://trac.sagemath.org/ticket/11574#comment:80
<ul>
<li><strong>status</strong>
changed from <em>positive_review</em> to <em>closed</em>
</li>
<li><strong>resolution</strong>
set to <em>fixed</em>
</li>
<li><strong>merged</strong>
set to <em>sage-4.7.2.alpha3</em>
</li>
</ul>
Ticket