#10138: Doctest failure in trace.py with 64-bit OS X build
-----------------------+----------------------------------------------------
   Reporter:  mpatel   |       Owner:  mvngu   
       Type:  defect   |      Status:  new     
   Priority:  major    |   Milestone:  sage-4.6
  Component:  doctest  |    Keywords:          
     Author:           |    Upstream:  N/A     
   Reviewer:           |      Merged:          
Work_issues:           |  
-----------------------+----------------------------------------------------

Comment(by drkirkby):

 I've many times tried building Sage 64-bit on Solaris or !OpenSolaris and
 then set {{{SAGE64=yes}}}. I've often seen the message:

 {{{
 Creating SAGE_LOCAL/lib/sage-64.txt since it does not exist
 }}}

 when the file should have existed. There's no reason that file should ever
 be (re)created more than once, so something must be unnecessarily creating
 that file. (Either that, or something is unnecessarily deleting it, so it
 needs to be recreated, which seems a less likely cause).

 The idea of that file is apparently to stop someone building a 64-bit
 version of Sage, then upgrading it a later date, but this time with SAGE64
 unset, which would result in a mix of 32-bit and 64-bit objects. I can see
 that is sensible - for someone who has builds with SAGE64 set and builds
 with it unset, it is easy to get in a mess and get a mix of 32-bit ans
 64-bit objects.

 The opposite problem can also exist too. One can start a 32-bit build,
 then try to upgrade, with SAGE64=yes set by accident. The file
 {{{SAGE_LOCAL/lib/sage-64.txt}}} does not protect against this. One still
 gets a mix of 32-bit and 64-bit objects, which causes a mess.

 I believe an optimal solution would be he file
 {{{SAGE_LOCAL/lib/sage-64.txt}}} should '''always''' be created, and it
 have either the word "yes" or "no" in it, depending on whether SAGE64=yes
 when the build started or not. Then the Sage environment should

  * export SAGE64=yes if the file contains the word "yes"
  * unset SAGE64 if the file contains the word "no".

 Currently it appears the file does not fully protect against mixing 32-bit
 and 64-bit objects, and for reasons unknown is being created more than
 once.

 I think since bsd.math creates 64-bit objects by default, you will not
 actually see the mix of 32-bit and 64-bit objects that can happen on
 Solaris. But for any Solaris system, and any OS X system where the default
 it to build 32-bit objects, the protection system that this file is
 supposed to address is not addressed very well.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10138#comment:2>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to