[sage-devel] Re: Sage 3.0.alpha3 released

2008-04-10 Thread John Cremona

I built alpha3 ok but had two bad fails with --testall:

The following tests failed:

sage -t  devel/sage/sage/plot/plot.py # Segfault
sage -t  devel/sage/sage/interfaces/psage.py # Segfault
--

BUT when I re-ran these two manually they were fine.  The original
--testall took place in the background (in an unattended screen
session) if that is relevant.

Linux host-57-71 2.6.18.8-0.3-default #1 SMP Tue Apr 17 08:42:35 UTC
2007 x86_64 x86_64 x86_64 GNU/Linux
gcc version 4.1.2 20061115 (prerelease) (SUSE Linux)

John
On 10/04/2008, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:

  Try alpha3, and ignore my last email.  William and I have been re-working 
 js.py quite a bit.  As of alpha2, I think you needed to use ctrl-backspace to 
 delete a cell.  That didn't last long, and backspace is back in alpha3.  
 Please tell me if you find otherwise.



  On Wed, 9 Apr 2008, Robert Miller wrote:

  
   On OSX 10.5/Firefox 2, I cannot delete cells in a notebook worksheet
   as of sage-3.0.alpha2.
  
   On Apr 9, 9:48 pm, Justin C. Walker [EMAIL PROTECTED] wrote:
   On Apr 9, 2008, at 12:56 , mabshoff wrote:
  
   On Apr 9, 8:40 pm, mabshoff [EMAIL PROTECTED]
   dortmund.de wrote:
   Can somebody on OSX 10.4 try the spkg at
   http://sage.math.washington.edu/home/mabshoff/SPKG/polybori-0.3.1.p0
   You need to first install the updated linbox.spkg at
   http://sage.math.washington.edu/home/mabshoff/release-cycles-3.0/alph...
   to get past the LinBox build problem.
  
   Josh Kantor will check if it builds in a couple hours, but I wouldn't
   be hurt about some feedback sooner.
  
   Mac OS X, 10.4.11 (Core 2 Duo, -j2):
  
real   123m10.195s
user   88m28.361s
sys26m32.847s
...
SAGE build/upgrade complete!
  
All tests passed!
Total time for all tests: 4608.7 seconds
  
   Cheers,
  
   Justin
  
   --
   Justin C. Walker, Curmudgeon-At-Large, Director
   Institute for the Enhancement of the Director's Income
   
   The path of least resistance:
   it's not just for electricity any more.
   
   
  



  


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: should bool(x 0) be False or an exception?

2008-04-10 Thread Simon King

On Apr 10, 4:18 am, Carl Witty [EMAIL PROTECTED] wrote:
 I like the raise an exception behavior, because it would eliminate
 questions asking why form1 and form2 below are different (from this
 sage-support 
 threadhttp://groups.google.com/group/sage-support/browse_thread/thread/79d0...).
 (I have seen this exact problem at least twice on sage-support.)  What
 do you think?

I guess what i suggest wouldn't solve the plot-issue. However, i think
if one doesn't know whether an inequality holds, or if the inequality
simply makes no sense (such as in the case of an unordered field) then
bool() should neither raise an exception nor return False but return
None. I think it is much simpler to have
 if bool(x0) == True:
   bla1
 elif bool(x0)==None:
   bla2
 else:
   bla3
than catching exceptions.

Perhaps it would even make sense to have a new type UnknownBool. This
could be returned if the inequality may be true, whereas None could be
returned if the inequality simply makes no sense. I don't like at all
what happens for complex numbers or finite fields!

Here are some examples.
sage: bool(x0)
False  # i think it should be None, or better UnknownBool or so
sage: assume(x0)
sage: bool(x-1)
True  # fine
sage: bool(xComplexNumber(0,0))
True  # ??? The complex field is not ordered. So, the answer True
doesn't make sense!
sage: bool(xGF(2)(0))
False # Again,  does not apply. So, to get False or True isn't
quite correct.
sage: bool(xComplexNumber(-1,0))
True  #  
sage: bool(xComplexNumber(-1,1))
False # 

Yours
 Simon




--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Fwd: use zip instead of 7zip for distributing the sage binary

2008-04-10 Thread Harald Schilly

On Apr 10, 4:29 am, mabshoff [EMAIL PROTECTED]
dortmund.de wrote:

 It is *341* MB vs. *601* MB,
that's really huge.

 Well, I prefer not to use self extracting executables either,...
Well, I don't see a problem in using a self extracting 7z archive. A
note on the download site with short instructions and a link to
7zip.org should help everybody. It's really bad to have users unable
to handle compressed archives, because they will have problems with
the vmware system, too. Therefore we need to include good instructions
on the website.
(I'll try to cover these issues in my current design for the next
website)

h
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: tick marks

2008-04-10 Thread Joel B. Mohler

On Wednesday 09 April 2008 07:37:56 pm gerhard wrote:
 * The actual bounds used for the axes
can yield very surprising results.
Should the range bounds be honored if
the user sets them explicitely?

Since we had a thread about this a bit ago and I was allegedly going to write 
a patch, I'll share my results of the patch.  I had a patch which (in the 
case I was interested in) eliminated 3 places which nudge the margins about 
for aesthetic reasons.  I thought it might be a manageable job to turn that 
into a more generic patch which honors margins.

However, I was thoroughly scared off when I saw what would need to be done to 
honor the bounds setting for all cases (frame/no frame, etc).  There is a lot 
of magic constants in the code (0.1, 0.015, 0.002, etc) which evidently 
were labored over for days.  This is a very worthwhile task, but it sure 
looks like it needs a more massive overhaul than I wanted to engage in.

In general, I think the right algorithm is something like this:
1)  Honor the bounds settings
2)  Check if there are tick marks, axis labels, tick labels outside the 
viewable area
3)  Enlarge the viewable area using font metrics to include these labels.

I know nothing about matplotlib so parts 23 are not possible for me in any 
amount of time I wanted to commit to this.  However, parts 23 are necessary 
for the frames=True option.  I don't know if it is actually difficult or not.  
I totally reject the aesthetic padding idea though so it really is (IMO) 
just a matter of finding font metrics from whatever code is making text.

--
Joel

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Fwd: use zip instead of 7zip for distributing the sage binary

2008-04-10 Thread mhampton

An anecdote: I have been unable to get 95% of my students to install
sage on their own machines; in at least two cases they got hung up on
7zip and came to me for help.  Probably several more got stuck and
didn't come for help.  (To be fair: I haven't tried that hard to push
personal installs, since I supply three powerful servers for a class
of 12 people, and its easier to collaborate on the servers.)

A link to 7zip.org right by the archive or in the install instructions
would help.

Its funny, I often listen to faculty who are not great with computers
marvel at the skills of the net generation (or whatever buzzword
generation), but I'm not convinced that computer literacy of any depth
as increased at all since my generation (I'm in my mid-thirties) and
if anything I think it might have gone down as people get more and
more removed from the underpinnings.

-M. Hampton

On Apr 10, 5:24 am, Harald Schilly [EMAIL PROTECTED] wrote:
 On Apr 10, 4:29 am, mabshoff [EMAIL PROTECTED]

 dortmund.de wrote:
  It is *341* MB vs. *601* MB,

 that's really huge.

  Well, I prefer not to use self extracting executables either,...

 Well, I don't see a problem in using a self extracting 7z archive. A
 note on the download site with short instructions and a link to
 7zip.org should help everybody. It's really bad to have users unable
 to handle compressed archives, because they will have problems with
 the vmware system, too. Therefore we need to include good instructions
 on the website.
 (I'll try to cover these issues in my current design for the next
 website)

 h
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Sage 3.0.alpha3 released

2008-04-10 Thread David Joyner

Installs fine (ubuntu 7.10 amd64) but has anyone seen something like this:

snip
sage -t  devel/sage/sage/gsl/gsl_random.pxi
 [2.3 s]
sage -t  devel/sage/sage/lfunctions/lcalc.py
Aborted (core dumped)

A mysterious error (perphaps a memory error?) occurred, which may have
crashed doctest.

 [6.0 s]
sage -t  devel/sage/sage/lfunctions/dokchitser.py
 [11.7 s]
sage -t  devel/sage/sage/lfunctions/sympow.py
 [12.9 s]
sage -t  devel/sage/sage/plot/plot3d/index_face_set.pyx
 [2.7 s]
sage -t  devel/sage/sage/plot/plot3d/parametric_surface.pyx
 [4.4 s]
sage -t  devel/sage/sage/plot/plot3d/help.pyx
 [3.8 s]
sage -t  devel/sage/sage/plot/plot3d/texture.py
 [2.5 s]
sage -t  devel/sage/sage/plot/plot3d/list_plot3d.py
 [6.5 s]
sage -t  devel/sage/sage/plot/plot3d/transform.pyx
 [6.7 s]
sage -t  devel/sage/sage/plot/plot3d/platonic.py
 [6.4 s]
sage -t  devel/sage/sage/plot/plot3d/point_c.pxi
 [2.3 s]
sage -t  devel/sage/sage/plot/plot3d/shapes.pyx
 [12.0 s]
sage -t  devel/sage/sage/plot/plot3d/parametric_plot3d.py
 [13.4 s]
sage -t  devel/sage/sage/plot/plot3d/base.pyx
 [3.8 s]
sage -t  devel/sage/sage/plot/plot3d/shapes2.py
 [4.4 s]
sage -t  devel/sage/sage/plot/plot3d/plot3d.py
 [8.3 s]
sage -t  devel/sa

at which point, it is frozen?


On Wed, Apr 9, 2008 at 7:18 AM, mabshoff
[EMAIL PROTECTED] wrote:

  Hello folks,

  here is alpha3. Loads of small fixes, a total of 141 tickets
  have been closed for the 3.0 milestone so far.

  First the good news:

  The Fortran doctest issue has been fixed by Josh Kantor.

  Now the not so good news:

  Issue: Invalid read in libgroebner.so (#2822): No solution
  yet, various leads.

  Issue: Linbox build failure on OSX 10.4 intel (#2833): Clement
  Pernet is on it and will likely just rip out the commentator
  code since we don't use it anyway.

  Issue: sage-3.0-alpha1 on ppc -- new randstate code doesn't
  work right at all (#2814): Carl Witty is back and has some
  patches in preparation. We will probably need some testing
  of those patches.

  Sources, binaries and documentation [due to special request]:

  
 http://sage.math.washington.edu/home/mabshoff/release-cycles-3.0/sage-3.0.alpha3.tar

  
 http://sage.math.washington.edu/home/mabshoff/release-cycles-3.0/sage-3.0.alpha3-sage.math-only-x86_64-Linux.tar.gz

  
 http://sage.math.washington.edu/home/mabshoff/release-cycles-3.0/doc-3.0.alpha3.spkg

  Cheers,

  Michael

  Merged in alpha3:

  #1761: Tom Boothby, Nick Alexander: Graphviz output for graphs
  #2242: Jason Grout: optional nauty package
  #2379: Gary Furnish, Michael Abshoff: Merge sage-ptest into
sage-test
  #2748: Dan Drake: Permutation constructor does not accept lists
of tuples
  #2802: Josh Kantor: Sage 3.0.alpha1: sage/misc/inline_fortran.py
doctest failure
  #2820: William Stein: notebook -- turn off the jsmath warning;
fix other misc polish issues and bugs resulting from #2840
  #2826: William Stein: notebook -- in safari, pressing enter after
showing the list of completions doesn't work. You have to
click
  #2834: Martin Albrecht: PyLint import cleanup for
sage.rings.polynomial
  #2835: Nick Alexander: primes_of_degree_one iterator for
NumberField_generic
  #2839: Mike Hansen: bug in conversion from symmetrica's longint
  #2840: William Stein: notebook -- remove ALL unused javascript
from js.py and DOCUMENT every single function
  #2842: Martin Albrecht: PyLint - unused variable cleanup for
sage.rings.polynomial
  #2844: Marshall Hampton: Polyhedral improvements, round 2
  #2845: Martin Albrecht: fix PolyBoRi assertion errror
  #2846: Robert Bradshaw: no need for bitset.h with new Cython
  #2847: Robert Bradshaw: more speedups to cyclotomic polynomials
  #2848: Michael Abshoff: numerical noise in sage/misc/prandom.py
on MacIntel OSX 10.5
  #2849: John Cremona, Alex Ghitza: Bug in elliptic curve
cardinality for j=0 in char. 3
  #2852: Tom Boothby: ctrl-enter broken in firefox/linux
  #2853: Dan Bump: A correction to the weight of crystal
elements for type A and a speedup for all types
  #2856: Martin Albrecht: PyLint unused variable cleanup for
sage.rings.polynomial - Part 2
  #2859: Jason Grout: arrow3d((0,0,0), (0,0,-1)) plots an *upward*
pointing arrow
  #2862: Michael Abshoff: Sage 3.0.alpha2: fix tex problems
  #2863: Dan Drake: Integer() does not specify that numbers
beginning with 0 and 0x are treated specially

  Merged in alpha2:

  #358: John Cremona: padic_height_pairing_matrix computes too
   many heights
  #530: Martin Albrecht: leak in Matrix_integer_dense__solve_iml
   exposed by matrix/strassen.pyx
  #2316: Yi Qiang: dsage.start_all() can leave zombie workers
around
  #2346: Robert Bradshaw: Sage needs a simple api for interaction
with other 

[sage-devel] Re: tick marks

2008-04-10 Thread mhampton

I would just like to give a +1 on the importance of fixing this.  I am
often irritated by my explicit bounds being expanded in hard to
predict ways.  I am somewhat confused by the way the 2D graphics use
and alter matplotlib, so I didn't fix it myself either, but I could at
least review a patch.

The first thing a lot of people want to do with something like Sage is
plot something, and if it doesn't look good they might not try it
again.  I have literally seen that happen.  The 3D graphics have been
a huge boost but 2D is what people try first.

-M. Hampton

On Apr 10, 6:15 am, Joel B. Mohler [EMAIL PROTECTED] wrote:
 On Wednesday 09 April 2008 07:37:56 pm gerhard wrote:

  * The actual bounds used for the axes
 can yield very surprising results.
 Should the range bounds be honored if
 the user sets them explicitely?

 Since we had a thread about this a bit ago and I was allegedly going to write
 a patch, I'll share my results of the patch.  I had a patch which (in the
 case I was interested in) eliminated 3 places which nudge the margins about
 for aesthetic reasons.  I thought it might be a manageable job to turn that
 into a more generic patch which honors margins.

 However, I was thoroughly scared off when I saw what would need to be done to
 honor the bounds setting for all cases (frame/no frame, etc).  There is a lot
 of magic constants in the code (0.1, 0.015, 0.002, etc) which evidently
 were labored over for days.  This is a very worthwhile task, but it sure
 looks like it needs a more massive overhaul than I wanted to engage in.

 In general, I think the right algorithm is something like this:
 1)  Honor the bounds settings
 2)  Check if there are tick marks, axis labels, tick labels outside the
 viewable area
 3)  Enlarge the viewable area using font metrics to include these labels.

 I know nothing about matplotlib so parts 23 are not possible for me in any
 amount of time I wanted to commit to this.  However, parts 23 are necessary
 for the frames=True option.  I don't know if it is actually difficult or not.
 I totally reject the aesthetic padding idea though so it really is (IMO)
 just a matter of finding font metrics from whatever code is making text.

 --
 Joel
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Fwd: use zip instead of 7zip for distributing the sage binary

2008-04-10 Thread Harald Schilly

On Apr 10, 2:14 pm, mhampton [EMAIL PROTECTED] wrote:

 A link to 7zip.org right by the archive or in the install instructions
 would help.

will be there ...

 but I'm not convinced that computer literacy of any depth
 as increased ...

Yes, especially because I think that's far more general. That computer
literacy only increases, if there is some interest/force/reward to
master the problems [e.g. nobody knows more about graphic cards +
drivers than active gamers!], but this applies to all areas in life.
Humans constantly optimize themselves and new things with a barrier
are avoided, if there are other shorter path to accomplish the task.
Even if in a long term period the initial higher investment would have
the greater return of investment. So, emphasis should be in explaining
why an open system with involvement of everybody is better than a
closed up encapsulated for-profit one. Then the motivation is higher
to master install instructions.
But, disclaimer, that's just my private theory concerning the dumb
colorful point and click vs. complex and fast functionality war ;)

h
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Fwd: use zip instead of 7zip for distributing the sage binary

2008-04-10 Thread William Stein

On Thu, Apr 10, 2008 at 6:22 AM, Harald Schilly
[EMAIL PROTECTED] wrote:

  On Apr 10, 2:14 pm, mhampton [EMAIL PROTECTED] wrote:

   A link to 7zip.org right by the archive or in the install instructions
   would help.

  will be there ...


   but I'm not convinced that computer literacy of any depth
   as increased ...

  Yes, especially because I think that's far more general. That computer
  literacy only increases, if there is some interest/force/reward to
  master the problems [e.g. nobody knows more about graphic cards +
  drivers than active gamers!], but this applies to all areas in life.
  Humans constantly optimize themselves and new things with a barrier
  are avoided, if there are other shorter path to accomplish the task.
  Even if in a long term period the initial higher investment would have
  the greater return of investment. So, emphasis should be in explaining
  why an open system with involvement of everybody is better than a
  closed up encapsulated for-profit one. Then the motivation is higher
  to master install instructions.
  But, disclaimer, that's just my private theory concerning the dumb
  colorful point and click vs. complex and fast functionality war ;)

We should make Sage as easy or easier to install than
any of Mathematica, Maple, Matlab, or Magma.
I see no reason to compromise on this at all, since the
goal is to provide a viable alternative to Mathematica,
Maple, Matlab, and Magma.  Part of this is that Sage must be
as easy to install as those programs.

I don't think we should try to convince people
to install a difficult-to-install version of Sage because it will be better
for them in the long run.  The right thing to do is to make Sage easier
to install.That's been my philosophy since I started Sage, and is
why Sage comes as a complete install, instead of something incomplete
with a huge number of dependencies.

Until now the main goal has been growing the developer community,
so a lot of effort has gone into making Sage easy to install  *for
developers*.   I think Sage is in fact easier to install for developers
(i.e., to get a full developer environment setup) than most math
software projects.   By this I mean that if one were to
become a Magma developer the barrier to getting everything setup
on your system to do development would I think
be higher than for Sage.

Incidentally, here are last weeks download numbers on sagemath.org and
sage.math.washington.edu (2 of the download sites):

Linux Binary: 81
OS X Binary:  42
Source: 76
VMware: 95

TOTAL: 294

 -- William

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Fwd: use zip instead of 7zip for distributing the sage binary

2008-04-10 Thread David Joyner

On Thu, Apr 10, 2008 at 10:40 AM, William Stein [EMAIL PROTECTED] wrote:

  On Thu, Apr 10, 2008 at 6:22 AM, Harald Schilly
  [EMAIL PROTECTED] wrote:
  
On Apr 10, 2:14 pm, mhampton [EMAIL PROTECTED] wrote:
  
 A link to 7zip.org right by the archive or in the install instructions
 would help.
  
will be there ...
  
  
 but I'm not convinced that computer literacy of any depth
 as increased ...
  
Yes, especially because I think that's far more general. That computer
literacy only increases, if there is some interest/force/reward to
master the problems [e.g. nobody knows more about graphic cards +
drivers than active gamers!], but this applies to all areas in life.
Humans constantly optimize themselves and new things with a barrier
are avoided, if there are other shorter path to accomplish the task.
Even if in a long term period the initial higher investment would have
the greater return of investment. So, emphasis should be in explaining
why an open system with involvement of everybody is better than a
closed up encapsulated for-profit one. Then the motivation is higher
to master install instructions.
But, disclaimer, that's just my private theory concerning the dumb
colorful point and click vs. complex and fast functionality war ;)

  We should make Sage as easy or easier to install than
  any of Mathematica, Maple, Matlab, or Magma.
  I see no reason to compromise on this at all, since the
  goal is to provide a viable alternative to Mathematica,
  Maple, Matlab, and Magma.  Part of this is that Sage must be
  as easy to install as those programs.

  I don't think we should try to convince people
  to install a difficult-to-install version of Sage because it will be better
  for them in the long run.  The right thing to do is to make Sage easier
  to install.That's been my philosophy since I started Sage, and is
  why Sage comes as a complete install, instead of something incomplete
  with a huge number of dependencies.

  Until now the main goal has been growing the developer community,
  so a lot of effort has gone into making Sage easy to install  *for
  developers*.   I think Sage is in fact easier to install for developers
  (i.e., to get a full developer environment setup) than most math
  software projects.   By this I mean that if one were to
  become a Magma developer the barrier to getting everything setup
  on your system to do development would I think
  be higher than for Sage.

  Incidentally, here are last weeks download numbers on sagemath.org and
  sage.math.washington.edu (2 of the download sites):

  Linux Binary: 81
  OS X Binary:  42
  Source: 76
  VMware: 95

  TOTAL: 294

I agree with all this but really just want to pipe in one comment since by
coincidence I looked at the download stats for sage.scipy. What was (to me)
unusualy was the *huge* spike in downloads over the winder break last December).
(Nearly a 10-fold increase.)  I would be very interested in knowing if this
294 number increases around the end of next month, when the summer
break starts for a lot of colleges.



   -- William



  


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Sage 3.0.alpha3 released

2008-04-10 Thread William Stein

Alpha 3 issues:

On sage.math:

The following tests failed:

sage -t  devel/sage/sage/matrix/matrix_generic_dense.pyx # Segfault
sage -t  devel/sage/sage/matrix/matrix_mod2_dense.pyx # Segfault
sage -t  devel/sage/sage/libs/ntl/ntl_GF2.pyx # Segfault
sage -t  devel/sage/sage/modular/modform/cuspidal_submodule.py
# Segfault
sage -t  devel/sage/sage/functions/orthogonal_polys.py # Segfault

On sagemath.org:


The following tests failed:

sage -t  devel/sage/sage/server/simple/twist.py # 10 doctests failed
sage -t  devel/sage/sage/matrix/strassen.pyx # Segfault
sage -t
devel/sage/sage/matrix/matrix_integer_dense_saturation.py # Segfault
sage -t
devel/sage/sage/groups/matrix_gps/matrix_group_element.py # Segfault
sage -t  devel/sage/sage/groups/group.pyx # Segfault
sage -t  devel/sage/sage/dsage/tests/testdoc.py # 2 doctests failed
--
Total time for all tests: 3468.0 seconds

On Powerpc osx/Debian 32 I can't even do make check since it keeps asking
me or credentials I don't know.

SAGE_TEST_TEX=1 . local/bin/sage-env  ./sage -t devel/sage/sage/
21 | tee -a test.log
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

I get this on Ubuntu 32-bit:
sage -t  devel/sage/sage/server/notebook/compress/JavaScriptCompressor.py
(skipping) -- nodoctest.py
Enter passphrase (empty for no passphrase): ...
then I'm stuffed.


On debian 64 the whole doctesting freezes midstream:
sage -t  devel/sage/sage/crypto/classical.py
 [2.4 s]
sage -t  devel/sage/sage/crypto/stream_cipher.py
 [1.7 s]
sage -t  deve
[wait 20 hours]

[1]+  Stopped ./bb
[EMAIL PROTECTED]:~$

I suspect sage -tp.

On bsd (os x intel), All tests passed!

 -- William

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Sage 3.0.alpha3 released

2008-04-10 Thread Robert Miller

Tom,

Confirmed working in 3.0.alpha3.

On Apr 9, 10:39 pm, [EMAIL PROTECTED] wrote:
 Try alpha3, and ignore my last email.  William and I have been re-working 
 js.py quite a bit.  As of alpha2, I think you needed to use ctrl-backspace to 
 delete a cell.  That didn't last long, and backspace is back in alpha3.  
 Please tell me if you find otherwise.

 On Wed, 9 Apr 2008, Robert Miller wrote:

  On OSX 10.5/Firefox 2, I cannot delete cells in a notebook worksheet
  as of sage-3.0.alpha2.

  On Apr 9, 9:48 pm, Justin C. Walker [EMAIL PROTECTED] wrote:
  On Apr 9, 2008, at 12:56 , mabshoff wrote:

  On Apr 9, 8:40 pm, mabshoff [EMAIL PROTECTED]
  dortmund.de wrote:
  Can somebody on OSX 10.4 try the spkg at
 http://sage.math.washington.edu/home/mabshoff/SPKG/polybori-0.3.1.p0
  You need to first install the updated linbox.spkg at
 http://sage.math.washington.edu/home/mabshoff/release-cycles-3.0/alph...
  to get past the LinBox build problem.

  Josh Kantor will check if it builds in a couple hours, but I wouldn't
  be hurt about some feedback sooner.

  Mac OS X, 10.4.11 (Core 2 Duo, -j2):

   real   123m10.195s
   user   88m28.361s
   sys26m32.847s
   ...
   SAGE build/upgrade complete!

   All tests passed!
   Total time for all tests: 4608.7 seconds

  Cheers,

  Justin

  --
  Justin C. Walker, Curmudgeon-At-Large, Director
  Institute for the Enhancement of the Director's Income
  
  The path of least resistance:
  it's not just for electricity any more.
  
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Fwd: use zip instead of 7zip for distributing the sage binary

2008-04-10 Thread William Stein

Incidentally, here are last weeks download numbers on sagemath.org and
sage.math.washington.edu (2 of the download sites):
  
Linux Binary: 81
OS X Binary:  42
Source: 76
VMware: 95
  
TOTAL: 294

  I agree with all this but really just want to pipe in one comment since by
  coincidence I looked at the download stats for sage.scipy. What was (to me)
  unusualy was the *huge* spike in downloads over the winder break last 
 December).
  (Nearly a 10-fold increase.)

That was when Sage got on the cover of slashdot, and there were articles
in tons of papers about Sage winning Trophees du Libre.

 I would be very interested in knowing if this
  294 number increases around the end of next month, when the summer
  break starts for a lot of colleges.

294 in one week is unusually high.

 -- william

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Fwd: use zip instead of 7zip for distributing the sage binary

2008-04-10 Thread Simon King

Dear William,

On Apr 10, 4:40 pm, William Stein [EMAIL PROTECTED] wrote:
 We should make Sage as easy or easier to install than
 any of Mathematica, Maple, Matlab, or Magma.

This is very reasonable IMO.

Would it be feasible and reasonable to provide several ways of
installations, with brief comments which one should be chosen? Such as
a self-extracting thing with the comment This is the easiest way to
download Sage (you are just two clicks away), and another one This
option is preferred if your internet connection has restricted
bandwidth?

In that way, one would fit the requirements of various types of users.

Cheers
Simon

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Fwd: use zip instead of 7zip for distributing the sage binary

2008-04-10 Thread mabshoff



On Apr 10, 4:40 pm, William Stein [EMAIL PROTECTED] wrote:
SNIP
 We should make Sage as easy or easier to install than
 any of Mathematica, Maple, Matlab, or Magma.
 I see no reason to compromise on this at all, since the
 goal is to provide a viable alternative to Mathematica,
 Maple, Matlab, and Magma.  Part of this is that Sage must be
 as easy to install as those programs.

Sage *is* easy to install provided one is capable of reading and
following README.txt. All the points about computer literacy aside
[insert when I was young I had to walk both ways to school uphill
rant] I believe that this is a sad, sad world when somebody who is
attempting to get a college education is incapable of following a
simple README.txt. And I am not asking people to do anything hard
here, i.e. Robert's argument that people should learn mathematics
instead of CS skills does not reflect reality, but to follow an url,
download a 1MB binary and install it.

Other people in IRC have pointed out that my expectations of the
average college student seem rather high and not grounded in reality,
so I have no intention of opposing the switch to zip files for the
vmware image. But it is my understanding the people at a University
are supposed to acquire the skills to solve problems, i.e. become
capable to approach a problem they have never solved and solve it by
thinking about it. I don't want to sound like an elitist jerk [too
late I guess], but if you are foiled by a 7zip archive maybe we have a
case of PEBKAC :) [look it up if you don't know what that is ;)]

SNIP
  -- William

Cheers,

Michael
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Fwd: use zip instead of 7zip for distributing the sage binary

2008-04-10 Thread William Stein

On Thu, Apr 10, 2008 at 8:35 AM, mabshoff
[EMAIL PROTECTED] wrote:



  On Apr 10, 4:40 pm, William Stein [EMAIL PROTECTED] wrote:
  SNIP

  We should make Sage as easy or easier to install than
   any of Mathematica, Maple, Matlab, or Magma.
   I see no reason to compromise on this at all, since the
   goal is to provide a viable alternative to Mathematica,
   Maple, Matlab, and Magma.  Part of this is that Sage must be
   as easy to install as those programs.

  Sage *is* easy to install provided one is capable of reading and
  following README.txt.

I think the most productive definition of easy to to
have potential Sage users -- ranging from students to
college professors to professionals -- test out the process and
report their experiences.   If they say it is easy, then it is
easy.  If they say it isn't, then it isn't.  Simple as that.

We've done that a lot recently at UW, and the conclusion
is that we have room to improve.

Regarding:
  We should make Sage as easy or easier to install than
  any of Mathematica, Maple, Matlab, or Magma.
 This is very reasonable IMO.
 Would it be feasible and reasonable to provide several ways of
 installations, with brief comments which one should be chosen?

That is feasible.  Unfortunately having several ways of installation
can be the opposite of easy... so let's be careful.

 -- William

 All the points about computer literacy aside
  [insert when I was young I had to walk both ways to school uphill
  rant] I believe that this is a sad, sad world when somebody who is
  attempting to get a college education is incapable of following a
  simple README.txt. And I am not asking people to do anything hard
  here, i.e. Robert's argument that people should learn mathematics
  instead of CS skills does not reflect reality, but to follow an url,
  download a 1MB binary and install it.

  Other people in IRC have pointed out that my expectations of the
  average college student seem rather high and not grounded in reality,
  so I have no intention of opposing the switch to zip files for the
  vmware image. But it is my understanding the people at a University
  are supposed to acquire the skills to solve problems, i.e. become
  capable to approach a problem they have never solved and solve it by
  thinking about it. I don't want to sound like an elitist jerk [too
  late I guess], but if you are foiled by a 7zip archive maybe we have a
  case of PEBKAC :) [look it up if you don't know what that is ;)]

  SNIP
-- William

  Cheers,

  Michael


 




-- 
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Fwd: use zip instead of 7zip for distributing the sage binary

2008-04-10 Thread David Harvey


On Apr 10, 2008, at 11:35 AM, mabshoff wrote:

 On Apr 10, 4:40 pm, William Stein [EMAIL PROTECTED] wrote:
 SNIP
 We should make Sage as easy or easier to install than
 any of Mathematica, Maple, Matlab, or Magma.
 I see no reason to compromise on this at all, since the
 goal is to provide a viable alternative to Mathematica,
 Maple, Matlab, and Magma.  Part of this is that Sage must be
 as easy to install as those programs.

 Sage *is* easy to install provided one is capable of reading and
 following README.txt. All the points about computer literacy aside
 [insert when I was young I had to walk both ways to school uphill
 rant] I believe that this is a sad, sad world when somebody who is
 attempting to get a college education is incapable of following a
 simple README.txt. And I am not asking people to do anything hard
 here, i.e. Robert's argument that people should learn mathematics
 instead of CS skills does not reflect reality, but to follow an url,
 download a 1MB binary and install it.

 Other people in IRC have pointed out that my expectations of the
 average college student seem rather high and not grounded in reality,
 so I have no intention of opposing the switch to zip files for the
 vmware image. But it is my understanding the people at a University
 are supposed to acquire the skills to solve problems, i.e. become
 capable to approach a problem they have never solved and solve it by
 thinking about it. I don't want to sound like an elitist jerk [too
 late I guess], but if you are foiled by a 7zip archive maybe we have a
 case of PEBKAC :) [look it up if you don't know what that is ;)]

I don't think the issue is whether or not the prospective user is  
capable of following instructions. The real issue is the cost-benefit  
analysis for the prospective user.

I think there are a lot of potential users who might have vaguely  
heard about Sage from a colleague/teacher/whoever, and get to  
sagemath.org, and have to figure out what to do next. For many of  
these people, we now have their eyeballs for about 15 seconds. If  
they can't figure out how to download and start using Sage with less  
neurons than it takes to get distracted by the newspaper or their cup  
of coffee or whatever, then we lose them. The thing is, they *don't  
care about Sage yet*, and if the coffee smells better, they'll go for  
the coffee.

So for this reason I advocate we push this even further. We should  
try to absolutely minimise the number of clicks needed to get them  
running Sage on their own machine. Currently on sagemath.org, they  
have to do the following:
(1) click on download,
(2) click on Microsoft Windows Binary (note that many users may not  
even know what binary means),
(3) figure out that they need to download the zip file, i.e. click on  
it (note that many users at this stage might never have seen an  
apache-served directory listing)

I reckon it needs to be WAY simpler than this. It needs to be a  
single click from the main page, labelled Download Sage for  
Microsoft Windows, which goes straight to a self-extracting  
installer. The contents of README.txt need to be put on the screen  
without even needing to click on README.txt.

david


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Fwd: use zip instead of 7zip for distributing the sage binary

2008-04-10 Thread Martin Albrecht

 I reckon it needs to be WAY simpler than this. It needs to be a
 single click from the main page, labelled Download Sage for
 Microsoft Windows, which goes straight to a self-extracting
 installer. The contents of README.txt need to be put on the screen
 without even needing to click on README.txt.

I guess something like the firefox website would be feasible

   http://www.mozilla.com/en-US/firefox/

(I mean the green button-like thing)

Btw. I think Harald is working on redesigning the website anyway.

Martin

-- 
name: Martin Albrecht
_pgp: http://pgp.mit.edu:11371/pks/lookup?op=getsearch=0x8EF0DC99
_www: http://www.informatik.uni-bremen.de/~malb
_jab: [EMAIL PROTECTED]


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Fwd: use zip instead of 7zip for distributing the sage binary

2008-04-10 Thread William Stein

On Thu, Apr 10, 2008 at 9:04 AM, Martin Albrecht
[EMAIL PROTECTED] wrote:

   I reckon it needs to be WAY simpler than this. It needs to be a
   single click from the main page, labelled Download Sage for
   Microsoft Windows, which goes straight to a self-extracting
   installer. The contents of README.txt need to be put on the screen
   without even needing to click on README.txt.

  I guess something like the firefox website would be feasible

http://www.mozilla.com/en-US/firefox/

  (I mean the green button-like thing)

  Btw. I think Harald is working on redesigning the website anyway.

Yes, let's make it official.   Harald Schilly is now the new official
sagemath.org
webmaster!  And he's working on doing all kinds of cool stuff...

And yes, browser detection, etc., for downloading Sage binaries is a great
idea.  Fortunately, there are many good examples out there to look at?
Do you have a favorite site regarding the download process for their
software?  If so, speak up.  Personally I agree with Martin that Firefox
is quite good.

 -- William

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Locally scoped dynamic memory (in SAGE and elsewhere)

2008-04-10 Thread Brian Granger

Hi,

(dual posted to sage and cython)

A few of us (ipython and mpi4py devs) are wondering what the
best/safest way of allocating dynamic memory in a local scope
(method/function) is when using cython.  An example would be if you
need an array of c ints that is locally scoped.

The big question is how to make sure that the memory gets freed - even
if something goes wrong in the function/method.  That is, you want to
prevent memory leaks.  It looks like in sage, the
sage_malloc/sage_free functions are used for this purpose:

from sage/graphs/graph_isom.pyx:

   176def incorporate_permutation(self, gamma):
   202cdef int *_gamma = int * sage_malloc( n * sizeof(int) )
   203if not _gamma:
   204raise MemoryError(Error allocating memory.)
   205for k from 0 = k  n:
   206_gamma[k] = gamma[k]
   207self._incorporate_permutation(_gamma, n)
   208sage_free(_gamma)

Because sage_malloc is #defined to malloc in stdsage.h, I think there
is a significant potential for memory leaks in code like this.  Are we
thinking correctly on this issue?  Isn't this a huge problem?

Lisandro Dalcin (author of mpi4py) came up with the following trick
that, while more complicated, prevents memory leaks:

cdef extern from Python.h:
object PyString_FromStringAndSize(char*,Py_ssize_t)
char* PyString_AS_STRING(object)

cdef inline object pyalloc_i(int size, int **i):
if size  0: size = 0
cdef Py_ssize_t n = size * sizeof(int)
cdef object ob = PyString_FromStringAndSize(NULL, n)
i[0] = int* PyString_AS_STRING(ob)
return ob

and now

def foo(sequence):
cdef int size = len(sequence),
cdef int *buf = NULL
cdef object tmp = pyalloc_i(size, buf)

This could probably be adapted into a malloc-like function.  What do
people think?

Thanks,

Brian

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Locally scoped dynamic memory (in SAGE and elsewhere)

2008-04-10 Thread William Stein

On Thu, Apr 10, 2008 at 9:51 AM, Brian Granger [EMAIL PROTECTED] wrote:

  Hi,

  (dual posted to sage and cython)

  A few of us (ipython and mpi4py devs) are wondering what the
  best/safest way of allocating dynamic memory in a local scope
  (method/function) is when using cython.  An example would be if you
  need an array of c ints that is locally scoped.

  The big question is how to make sure that the memory gets freed - even
  if something goes wrong in the function/method.  That is, you want to
  prevent memory leaks.  It looks like in sage, the
  sage_malloc/sage_free functions are used for this purpose:

  from sage/graphs/graph_isom.pyx:

176def incorporate_permutation(self, gamma):
202cdef int *_gamma = int * sage_malloc( n * sizeof(int) )
203if not _gamma:
204raise MemoryError(Error allocating memory.)
205for k from 0 = k  n:
206_gamma[k] = gamma[k]
207self._incorporate_permutation(_gamma, n)
208sage_free(_gamma)

  Because sage_malloc is #defined to malloc in stdsage.h,

 I think there
  is a significant potential for memory leaks in code like this.  Are we
  thinking correctly on this issue?

Yes.  In the above code one could easily cause a serious memory
leak by input a gamma so that gamma[k], for some k with 0 = k  n,
results in an exception.

   Isn't this a huge problem?

Yes it's a problem.

  Lisandro Dalcin (author of mpi4py) came up with the following trick
  that, while more complicated, prevents memory leaks:

  cdef extern from Python.h:
 object PyString_FromStringAndSize(char*,Py_ssize_t)
 char* PyString_AS_STRING(object)

  cdef inline object pyalloc_i(int size, int **i):
 if size  0: size = 0
 cdef Py_ssize_t n = size * sizeof(int)
 cdef object ob = PyString_FromStringAndSize(NULL, n)
 i[0] = int* PyString_AS_STRING(ob)
 return ob

  and now

  def foo(sequence):
 cdef int size = len(sequence),
 cdef int *buf = NULL
 cdef object tmp = pyalloc_i(size, buf)

  This could probably be adapted into a malloc-like function.  What do
  people think?

Could you explain what the point is?  Is it that this is a trick so that
Cython will correctly garbage collect the allocated memory, even
if an exception occurs?

 -- William

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: [Cython] Locally scoped dynamic memory (in SAGE and elsewhere)

2008-04-10 Thread Michael.Abshoff

Brian Granger wrote:
 Hi,

Hi Brian,

 (dual posted to sage and cython)
 
 A few of us (ipython and mpi4py devs) are wondering what the
 best/safest way of allocating dynamic memory in a local scope
 (method/function) is when using cython.  An example would be if you
 need an array of c ints that is locally scoped.
 
 The big question is how to make sure that the memory gets freed - even
 if something goes wrong in the function/method.  That is, you want to
 prevent memory leaks.  It looks like in sage, the
 sage_malloc/sage_free functions are used for this purpose:

They generally aren't used in most of the code. The idea for those 
functions is that in the future we can wrap other allocators like slab 
allocators.

 from sage/graphs/graph_isom.pyx:
 
176def incorporate_permutation(self, gamma):
202cdef int *_gamma = int * sage_malloc( n * sizeof(int) )
203if not _gamma:
204raise MemoryError(Error allocating memory.)
205for k from 0 = k  n:
206_gamma[k] = gamma[k]
207self._incorporate_permutation(_gamma, n)
208sage_free(_gamma)
 
 Because sage_malloc is #defined to malloc in stdsage.h, I think there
 is a significant potential for memory leaks in code like this.  Are we
 thinking correctly on this issue?  Isn't this a huge problem?

Well, I don't see an advantage in using Python's allocator there. It is 
likely slower for large allocations and make debugging memory issues 
much more complicated since issues like pointer corruption is 
significantly harder to debug.

 Lisandro Dalcin (author of mpi4py) came up with the following trick
 that, while more complicated, prevents memory leaks:
 
 cdef extern from Python.h:
 object PyString_FromStringAndSize(char*,Py_ssize_t)
 char* PyString_AS_STRING(object)
 
 cdef inline object pyalloc_i(int size, int **i):
 if size  0: size = 0
 cdef Py_ssize_t n = size * sizeof(int)
 cdef object ob = PyString_FromStringAndSize(NULL, n)
 i[0] = int* PyString_AS_STRING(ob)
 return ob
 
 and now
 
 def foo(sequence):
 cdef int size = len(sequence),
 cdef int *buf = NULL
 cdef object tmp = pyalloc_i(size, buf)
 
 This could probably be adapted into a malloc-like function.  What do
 people think?

We valgrind the complete test suite at least weekly and with ever 
increasing doctest coverage I don't see that we have a problem. Python's 
memory management has also some serious issues and I doubt it will offer 
any advantage for anything but loads of small allocs. And by switching 
to a slab allocator on our end will fix that problem.

 Thanks,
 
 Brian

Cheers,

Michael

 ___
 Cython-dev mailing list
 [EMAIL PROTECTED]
 http://codespeak.net/mailman/listinfo/cython-dev
 


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: [Cython] Locally scoped dynamic memory (in SAGE and elsewhere)

2008-04-10 Thread William Stein

On Thu, Apr 10, 2008 at 9:27 AM, Michael.Abshoff
[EMAIL PROTECTED] wrote:

  Brian Granger wrote:
   Hi,

  Hi Brian,


   (dual posted to sage and cython)
  
   A few of us (ipython and mpi4py devs) are wondering what the
   best/safest way of allocating dynamic memory in a local scope
   (method/function) is when using cython.  An example would be if you
   need an array of c ints that is locally scoped.
  
   The big question is how to make sure that the memory gets freed - even
   if something goes wrong in the function/method.  That is, you want to
   prevent memory leaks.  It looks like in sage, the
   sage_malloc/sage_free functions are used for this purpose:

  They generally aren't used in most of the code.

They should be.

 The idea for those
  functions is that in the future we can wrap other allocators like slab
  allocators.


   from sage/graphs/graph_isom.pyx:
  
  176def incorporate_permutation(self, gamma):
  202cdef int *_gamma = int * sage_malloc( n * sizeof(int) )
  203if not _gamma:
  204raise MemoryError(Error allocating memory.)
  205for k from 0 = k  n:
  206_gamma[k] = gamma[k]
  207self._incorporate_permutation(_gamma, n)
  208sage_free(_gamma)
  
   Because sage_malloc is #defined to malloc in stdsage.h, I think there
   is a significant potential for memory leaks in code like this.  Are we
   thinking correctly on this issue?  Isn't this a huge problem?

  Well, I don't see an advantage in using Python's allocator there. It is
  likely slower for large allocations and make debugging memory issues
  much more complicated since issues like pointer corruption is
  significantly harder to debug.

Since our answers differ, I should clarify.  The point is that by giving
bad input a user could cause a memory leak. It's something our doctests
probably wouldn't notice.



   Lisandro Dalcin (author of mpi4py) came up with the following trick
   that, while more complicated, prevents memory leaks:
  
   cdef extern from Python.h:
   object PyString_FromStringAndSize(char*,Py_ssize_t)
   char* PyString_AS_STRING(object)
  
   cdef inline object pyalloc_i(int size, int **i):
   if size  0: size = 0
   cdef Py_ssize_t n = size * sizeof(int)
   cdef object ob = PyString_FromStringAndSize(NULL, n)
   i[0] = int* PyString_AS_STRING(ob)
   return ob
  
   and now
  
   def foo(sequence):
   cdef int size = len(sequence),
   cdef int *buf = NULL
   cdef object tmp = pyalloc_i(size, buf)
  
   This could probably be adapted into a malloc-like function.  What do
   people think?

  We valgrind the complete test suite at least weekly and with ever
  increasing doctest coverage I don't see that we have a problem. Python's
  memory management has also some serious issues and I doubt it will offer
  any advantage for anything but loads of small allocs. And by switching
  to a slab allocator on our end will fix that problem.

I think the point Brian is making is that if you think about a certain class
of code that is common in Sage/Numpy/Scipy, you can construct situations
where exceptions are raised and code isn't freed.  We're almost surely
not actually testing these situations since they are exceptional.  But
they do exist, and we've been planning to address them some day.

-- 
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Locally scoped dynamic memory (in SAGE and elsewhere)

2008-04-10 Thread William Stein

On Thu, Apr 10, 2008 at 10:04 AM, Brian Granger [EMAIL PROTECTED] wrote:

  Lisandro Dalcin (author of mpi4py) came up with the following trick
  that, while more complicated, prevents memory leaks:

  cdef extern from Python.h:
 object PyString_FromStringAndSize(char*,Py_ssize_t)
 char* PyString_AS_STRING(object)

  cdef inline object pyalloc_i(int size, int **i):
 if size  0: size = 0
 cdef Py_ssize_t n = size * sizeof(int)
 cdef object ob = PyString_FromStringAndSize(NULL, n)
 i[0] = int* PyString_AS_STRING(ob)
 return ob

  and now

  def foo(sequence):
 cdef int size = len(sequence),
 cdef int *buf = NULL
 cdef object tmp = pyalloc_i(size, buf)

  This could probably be adapted into a malloc-like function.  What do
  people think?
  
Could you explain what the point is?  Is it that this is a trick so that
Cython will correctly garbage collect the allocated memory, even
if an exception occurs?

  Yes, that is the idea.  By having a python object that knows about the
  memory, the garbage collection should prevent memory leaks if an
  exception occurs.  I am not sure if Lisandro has proved that this is
  the case - he is just wondering how people typically handle this case.

  Seems like we are not alone in thinking this is a problem though.


It's I think a general problem not only in Python but in programming
in general.  The authors of http://www.flintlib.org/ -- a pure C library --
spent a lot of time worrying about this, just to I think decide that it's
a really hard problem.

That said, there is definitely a significant class of problems in the context
of Cython that could be fixed if Lisandro's suggestion works.  Thanks
for posting it!

William

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Fwd: use zip instead of 7zip for distributing the sage binary

2008-04-10 Thread Harald Schilly



On Apr 10, 4:40 pm, William Stein [EMAIL PROTECTED] wrote:
 The right thing to do is to make Sage easier
 to install.  

Yes, of course, I wanted to point out where the problem is and how it
could be handled, the current issue with the Windows install, in my
opinion, is the lack of a native port. And then MSI!!

MSI is necessary, because system administrators for networks of
computers use them like linux packages to push-install them on all
machines .. that's impossible for .exe setups !. so, i think, that's
the best solution, but i know this is not done until tomorrow...
(and there are admins who _only_ take msi packages and forget about
the rest ... too much work)

@webpage:

On Apr 10, 6:04 pm, Martin Albrecht [EMAIL PROTECTED]
wrote:

 Btw. I think Harald is working on redesigning the website anyway.

Yes, I'll try to make it easier ... less text, less clicks, gives a
higher information density. But it's also not done until tomorrow.
Personally, I don't like the firefox install site, but i'll collect
all ideas and mix something up.

Harald
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: [Cython] Locally scoped dynamic memory (in SAGE and elsewhere)

2008-04-10 Thread Brian Granger

On Thu, Apr 10, 2008 at 10:27 AM, Michael.Abshoff
[EMAIL PROTECTED] wrote:
 Brian Granger wrote:

  Hi,
 

  Hi Brian,



  (dual posted to sage and cython)
 
  A few of us (ipython and mpi4py devs) are wondering what the
  best/safest way of allocating dynamic memory in a local scope
  (method/function) is when using cython.  An example would be if you
  need an array of c ints that is locally scoped.
 
  The big question is how to make sure that the memory gets freed - even
  if something goes wrong in the function/method.  That is, you want to
  prevent memory leaks.  It looks like in sage, the
  sage_malloc/sage_free functions are used for this purpose:
 

  They generally aren't used in most of the code. The idea for those
 functions is that in the future we can wrap other allocators like slab
 allocators.

Maybe so, but I am am not very familiar with the sage codebase and I
quickly found numerous examples of sage_malloc :)  Also, from Williams
reponse it sounds like the idea is that sage code _would_ use these
functions.  Also, how else would you allocate dynamic memory?



  from sage/graphs/graph_isom.pyx:
 
176def incorporate_permutation(self, gamma):
202cdef int *_gamma = int * sage_malloc( n * sizeof(int) )
203if not _gamma:
204raise MemoryError(Error allocating memory.)
205for k from 0 = k  n:
206_gamma[k] = gamma[k]
207self._incorporate_permutation(_gamma, n)
208sage_free(_gamma)
 
  Because sage_malloc is #defined to malloc in stdsage.h, I think there
  is a significant potential for memory leaks in code like this.  Are we
  thinking correctly on this issue?  Isn't this a huge problem?
 

  Well, I don't see an advantage in using Python's allocator there. It is
 likely slower for large allocations and make debugging memory issues much
 more complicated since issues like pointer corruption is significantly
 harder to debug.

I am not concerned about performance here, but rather memory leaks.  I
don't think it is a good idea to trade memory leaks for performance.




  Lisandro Dalcin (author of mpi4py) came up with the following trick
  that, while more complicated, prevents memory leaks:
 
  cdef extern from Python.h:
 object PyString_FromStringAndSize(char*,Py_ssize_t)
 char* PyString_AS_STRING(object)
 
  cdef inline object pyalloc_i(int size, int **i):
 if size  0: size = 0
 cdef Py_ssize_t n = size * sizeof(int)
 cdef object ob = PyString_FromStringAndSize(NULL, n)
 i[0] = int* PyString_AS_STRING(ob)
 return ob
 
  and now
 
  def foo(sequence):
 cdef int size = len(sequence),
 cdef int *buf = NULL
 cdef object tmp = pyalloc_i(size, buf)
 
  This could probably be adapted into a malloc-like function.  What do
  people think?
 

  We valgrind the complete test suite at least weekly and with ever
 increasing doctest coverage I don't see that we have a problem. Python's
 memory management has also some serious issues and I doubt it will offer any
 advantage for anything but loads of small allocs. And by switching to a slab
 allocator on our end will fix that problem.

But, test test suite doesn't test for all of the odd input that users
will feed to sage.  These are the cases that will leak memory and
there is not possible way to test for all of them.  Also debugging
memory leaks is super nasty.  Compared to that pain, having a slightly
slower memory allocator is not a big deal.

Brian


  Thanks,
 
  Brian
 

  Cheers,

  Michael


  ___
  Cython-dev mailing list
  [EMAIL PROTECTED]
  http://codespeak.net/mailman/listinfo/cython-dev
 
 



--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Locally scoped dynamic memory (in SAGE and elsewhere)

2008-04-10 Thread Brian Granger

  It's I think a general problem not only in Python but in programming
  in general.  The authors of http://www.flintlib.org/ -- a pure C library --
  spent a lot of time worrying about this, just to I think decide that it's
  a really hard problem.

Very true.

  That said, there is definitely a significant class of problems in the context
  of Cython that could be fixed if Lisandro's suggestion works.  Thanks
  for posting it!

I will talk with Lisandro more about this and see if we can explore
his trick further.

Brian



  William

  


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: [Cython] Locally scoped dynamic memory (in SAGE and elsewhere)

2008-04-10 Thread Michael.Abshoff

Brian Granger wrote:
 On Thu, Apr 10, 2008 at 10:27 AM, Michael.Abshoff
 [EMAIL PROTECTED] wrote:
 Brian Granger wrote:

 Hi,

  Hi Brian,



Hi Brian,


 (dual posted to sage and cython)

 A few of us (ipython and mpi4py devs) are wondering what the
 best/safest way of allocating dynamic memory in a local scope
 (method/function) is when using cython.  An example would be if you
 need an array of c ints that is locally scoped.

 The big question is how to make sure that the memory gets freed - even
 if something goes wrong in the function/method.  That is, you want to
 prevent memory leaks.  It looks like in sage, the
 sage_malloc/sage_free functions are used for this purpose:

  They generally aren't used in most of the code. The idea for those
 functions is that in the future we can wrap other allocators like slab
 allocators.
 
 Maybe so, but I am am not very familiar with the sage codebase and I
 quickly found numerous examples of sage_malloc :)  Also, from Williams
 reponse it sounds like the idea is that sage code _would_ use these
 functions.  Also, how else would you allocate dynamic memory?

Well, in the end you end up using sbrk() anyway, but I don't see what is 
wrong with malloc itself? sage_malloc was introduced a while back to 
make it possible to switch to a slab allocator like omalloc potentially 
to see if there is any benefit from it.


 from sage/graphs/graph_isom.pyx:

   176def incorporate_permutation(self, gamma):
   202cdef int *_gamma = int * sage_malloc( n * sizeof(int) )
   203if not _gamma:
   204raise MemoryError(Error allocating memory.)
   205for k from 0 = k  n:
   206_gamma[k] = gamma[k]
   207self._incorporate_permutation(_gamma, n)
   208sage_free(_gamma)

 Because sage_malloc is #defined to malloc in stdsage.h, I think there
 is a significant potential for memory leaks in code like this.  Are we
 thinking correctly on this issue?  Isn't this a huge problem?

  Well, I don't see an advantage in using Python's allocator there. It is
 likely slower for large allocations and make debugging memory issues much
 more complicated since issues like pointer corruption is significantly
 harder to debug.
 
 I am not concerned about performance here, but rather memory leaks.  I
 don't think it is a good idea to trade memory leaks for performance.

Absolutely not, but if you want to write exception safe extensions just 
write them in exception safe C++ using autoptr  friends. While you 
might not be too concerned about performance here the issue is still 
debuggability. If you ran standard Python under valgrind (after 
disabling pymalloc) you will get

[EMAIL PROTECTED]:/scratch/mabshoff/release-cycle/sage-3.0.alpha2/local/bin$ 
valgrind --tool=memcheck --leak-resolution=high ./python
==12347== Memcheck, a memory error detector.
==12347== Copyright (C) 2002-2008, and GNU GPL'd, by Julian Seward et al.
==12347== Using LibVEX rev 1812, a library for dynamic binary translation.
==12347== Copyright (C) 2004-2008, and GNU GPL'd, by OpenWorks LLP.
==12347== Using valgrind-3.4.0.SVN, a dynamic binary instrumentation 
framework.
==12347== Copyright (C) 2000-2008, and GNU GPL'd, by Julian Seward et al.
==12347== For more details, rerun with: -v
==12347==
Python 2.5.1 (r251:54863, Apr  6 2008, 21:59:15)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
Type help, copyright, credits or license for more information.
 
==12347==
==12347== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 9 from 2)
==12347== malloc/free: in use at exit: 599,274 bytes in 2,441 blocks.
==12347== malloc/free: 12,890 allocs, 10,449 frees, 2,420,712 bytes 
allocated.
==12347== For counts of detected errors, rerun with: -v
==12347== searching for pointers to 2,441 not-freed blocks.
==12347== checked 998,864 bytes.
==12347==
==12347== LEAK SUMMARY:
==12347==definitely lost: 0 bytes in 0 blocks.
==12347==  possibly lost: 15,736 bytes in 54 blocks.
==12347==still reachable: 583,538 bytes in 2,387 blocks.
==12347== suppressed: 0 bytes in 0 blocks.

So we have roughly 2,400 blocks of memory that Python itself cannot 
properly deallocate due to problems with their own garbage collection. I 
will spare you the numbers for Sage (they are much worst due to still to 
be solved problems with Cython and extensions in general) and starting 
to poke for leaks in that pile of crap is not something I find 
appealing. Sure, once all mallocs in Sage are converted to sage_malloc 
one could switch and see what happens, but I can guarantee you that 
debugging some problem stemming from us doing something stupid with 
malloc compared to tracking it down inside Python is not a contest. 
Check out #1337 in our track to see such a case.

And by the way: The python interpreter itself does leak some small bits 
of memory while running. So the above while it looks like a really good 
idea is far from a fool proof solution.



 Lisandro Dalcin 

[sage-devel] Re: [Cython] Locally scoped dynamic memory (in SAGE and elsewhere)

2008-04-10 Thread William Stein

On Thu, Apr 10, 2008 at 10:12 AM, Brian Granger [EMAIL PROTECTED] wrote:
  (I'm not on the SAGE list so not dual-posting)
  
A few of us (ipython and mpi4py devs) are wondering what the
 best/safest way of allocating dynamic memory in a local scope
 (method/function) is when using cython.  An example would be if you
 need an array of c ints that is locally scoped.

Won't try-finally work here?

  I don't see why it wouldn't.  But, typical usages of sage_malloc are
  not protected in that way.

Maybe they should be.

Note by the way though that it's a bit tricky since in the finally block you
have to know whether things when wrong and memory has to be freed
or not.

 -- William

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: [Cython] Locally scoped dynamic memory (in SAGE and elsewhere)

2008-04-10 Thread William Stein

On Thu, Apr 10, 2008 at 10:02 AM, Michael.Abshoff
[EMAIL PROTECTED] wrote:

   But, test test suite doesn't test for all of the odd input that users
   will feed to sage.  These are the cases that will leak memory and
   there is not possible way to test for all of them.  Also debugging
   memory leaks is super nasty.  Compared to that pain, having a slightly
   slower memory allocator is not a big deal.

  Well, as long as you write code in C memory leaks when something goes
  wrong is something you have to live with. And python is far from perfect
  regarding memory management too IMHO as I point out above. Another issue
  is that once we have extensions that do work with threads we no longer
  can use Python's allocation since it isn't thread safe.

  Adding some more checks to the Sage codebase around allocations is
  something that ought to be done, but on the list of things to fix
  potential memory leaks from garbage input is low on the list of my
  personal priority as long as we have real leaks to deal with. Feel free
  to try out the above and report back if it fixes issues and how much of
  an impact on performance it has.


Just for the record, I think Brian isn't suggesting we do anything
differently with Sage.  He's writing lots of _new_ code using
Cython for his distributed matrix arrays project, and ran into this problem,
and thought -- surely the Sage folks have solved this.  Then he looked
at our code for the solution and noticed that we haven't.

That said, this is definitely not the most important thing for *us*
to worry about at this point.We have many more important
problems to solve first.   But I'm really glad Brian is raising this
issue, etc.

 -- William

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: [Cython] Locally scoped dynamic memory (in SAGE and elsewhere)

2008-04-10 Thread Brian Granger

  Well, in the end you end up using sbrk() anyway, but I don't see what is
  wrong with malloc itself? sage_malloc was introduced a while back to
  make it possible to switch to a slab allocator like omalloc potentially
  to see if there is any benefit from it.

And that makes sense.


  Absolutely not, but if you want to write exception safe extensions just
  write them in exception safe C++ using autoptr  friends. While you
  might not be too concerned about performance here the issue is still
  debuggability. If you ran standard Python under valgrind (after
  disabling pymalloc) you will get

I do think performance is important, but not at the expense of
potential memory leaks.  I don't have experience running valgrind with
python, but from what I have gleaned from others, you need to run
valgrind with valgrind-python.supp that is in the Misc directory of
the Python source tree.  Details are here:

http://svn.python.org/projects/python/trunk/Misc/README.valgrind

My impression from others is that the memory problems you are seeing
here will go away if you use this .supp file.  Not sure though.  I do
know that the python-devs use valgrind to detect real memory leaks and
there is _no_ way that they actually have thousands of them.

  [EMAIL PROTECTED]:/scratch/mabshoff/release-cycle/sage-3.0.alpha2/local/bin$
  valgrind --tool=memcheck --leak-resolution=high ./python
  ==12347== Memcheck, a memory error detector.
  ==12347== Copyright (C) 2002-2008, and GNU GPL'd, by Julian Seward et al.
  ==12347== Using LibVEX rev 1812, a library for dynamic binary translation.
  ==12347== Copyright (C) 2004-2008, and GNU GPL'd, by OpenWorks LLP.
  ==12347== Using valgrind-3.4.0.SVN, a dynamic binary instrumentation
  framework.
  ==12347== Copyright (C) 2000-2008, and GNU GPL'd, by Julian Seward et al.
  ==12347== For more details, rerun with: -v
  ==12347==
  Python 2.5.1 (r251:54863, Apr  6 2008, 21:59:15)
  [GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
  Type help, copyright, credits or license for more information.
   
  ==12347==
  ==12347== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 9 from 2)
  ==12347== malloc/free: in use at exit: 599,274 bytes in 2,441 blocks.
  ==12347== malloc/free: 12,890 allocs, 10,449 frees, 2,420,712 bytes
  allocated.
  ==12347== For counts of detected errors, rerun with: -v
  ==12347== searching for pointers to 2,441 not-freed blocks.
  ==12347== checked 998,864 bytes.
  ==12347==
  ==12347== LEAK SUMMARY:
  ==12347==definitely lost: 0 bytes in 0 blocks.
  ==12347==  possibly lost: 15,736 bytes in 54 blocks.
  ==12347==still reachable: 583,538 bytes in 2,387 blocks.
  ==12347== suppressed: 0 bytes in 0 blocks.

  So we have roughly 2,400 blocks of memory that Python itself cannot
  properly deallocate due to problems with their own garbage collection.

See above.

  I
  will spare you the numbers for Sage (they are much worst due to still to
  be solved problems with Cython and extensions in general) and starting
  to poke for leaks in that pile of crap is not something I find
  appealing. Sure, once all mallocs in Sage are converted to sage_malloc
  one could switch and see what happens, but I can guarantee you that
  debugging some problem stemming from us doing something stupid with
  malloc compared to tracking it down inside Python is not a contest.
  Check out #1337 in our track to see such a case.

True, malloc is more straightforward in that sense.

  And by the way: The python interpreter itself does leak some small bits
  of memory while running. So the above while it looks like a really good
  idea is far from a fool proof solution.

Is your argument: there are already lots of memory leaks in python and
sage so a few more is not a big deal?

Brian



  
  
   Lisandro Dalcin (author of mpi4py) came up with the following trick
   that, while more complicated, prevents memory leaks:
  
   cdef extern from Python.h:
  object PyString_FromStringAndSize(char*,Py_ssize_t)
  char* PyString_AS_STRING(object)
  
   cdef inline object pyalloc_i(int size, int **i):
  if size  0: size = 0
  cdef Py_ssize_t n = size * sizeof(int)
  cdef object ob = PyString_FromStringAndSize(NULL, n)
  i[0] = int* PyString_AS_STRING(ob)
  return ob
  
   and now
  
   def foo(sequence):
  cdef int size = len(sequence),
  cdef int *buf = NULL
  cdef object tmp = pyalloc_i(size, buf)
  
   This could probably be adapted into a malloc-like function.  What do
   people think?
  
  
We valgrind the complete test suite at least weekly and with ever
   increasing doctest coverage I don't see that we have a problem. Python's
   memory management has also some serious issues and I doubt it will offer 
 any
   advantage for anything but loads of small allocs. And by switching to a 
 slab
   allocator on our end will fix that problem.
  
   But, test test suite doesn't test for all of the odd input that users
   will feed to 

[sage-devel] Re: [Cython] [sage-devel] Re: Locally scoped dynamic memory (in SAGE and elsewhere)

2008-04-10 Thread Brian Granger

  Just for the record, I think Brian isn't suggesting we do anything
  differently with Sage.  He's writing lots of _new_ code using
  Cython for his distributed matrix arrays project, and ran into this problem,
  and thought -- surely the Sage folks have solved this.  Then he looked
  at our code for the solution and noticed that we haven't.

Very true.  It is somewhat comforting to know that we are not crazy in
wondering what the best solution to the problem is.  We very well may
punt and use malloc :)

  That said, this is definitely not the most important thing for *us*
  to worry about at this point.We have many more important
  problems to solve first.

Understandable.  Us too.


 But I'm really glad Brian is raising this
  issue, etc.



   -- William


 ___
  Cython-dev mailing list
  [EMAIL PROTECTED]
  http://codespeak.net/mailman/listinfo/cython-dev


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Locally scoped dynamic memory (in SAGE and elsewhere)

2008-04-10 Thread Brian Granger

Lisandro Dalcin (author of mpi4py) came up with the following trick
that, while more complicated, prevents memory leaks:
  
cdef extern from Python.h:
   object PyString_FromStringAndSize(char*,Py_ssize_t)
   char* PyString_AS_STRING(object)
  
cdef inline object pyalloc_i(int size, int **i):
   if size  0: size = 0
   cdef Py_ssize_t n = size * sizeof(int)
   cdef object ob = PyString_FromStringAndSize(NULL, n)
   i[0] = int* PyString_AS_STRING(ob)
   return ob
  
and now
  
def foo(sequence):
   cdef int size = len(sequence),
   cdef int *buf = NULL
   cdef object tmp = pyalloc_i(size, buf)
  
This could probably be adapted into a malloc-like function.  What do
people think?

  Could you explain what the point is?  Is it that this is a trick so that
  Cython will correctly garbage collect the allocated memory, even
  if an exception occurs?

Yes, that is the idea.  By having a python object that knows about the
memory, the garbage collection should prevent memory leaks if an
exception occurs.  I am not sure if Lisandro has proved that this is
the case - he is just wondering how people typically handle this case.

Seems like we are not alone in thinking this is a problem though.

Brian

   -- William

  


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: [Cython] [sage-devel] Re: Locally scope d dynamic memory (in SAGE and elsewhere)

2008-04-10 Thread Michael.Abshoff

William Stein wrote:
 On Thu, Apr 10, 2008 at 10:02 AM, Michael.Abshoff
 [EMAIL PROTECTED] wrote:
   But, test test suite doesn't test for all of the odd input that users
   will feed to sage.  These are the cases that will leak memory and
   there is not possible way to test for all of them.  Also debugging
   memory leaks is super nasty.  Compared to that pain, having a slightly
   slower memory allocator is not a big deal.

  Well, as long as you write code in C memory leaks when something goes
  wrong is something you have to live with. And python is far from perfect
  regarding memory management too IMHO as I point out above. Another issue
  is that once we have extensions that do work with threads we no longer
  can use Python's allocation since it isn't thread safe.

  Adding some more checks to the Sage codebase around allocations is
  something that ought to be done, but on the list of things to fix
  potential memory leaks from garbage input is low on the list of my
  personal priority as long as we have real leaks to deal with. Feel free
  to try out the above and report back if it fixes issues and how much of
  an impact on performance it has.

 
 Just for the record, I think Brian isn't suggesting we do anything
 differently with Sage.  He's writing lots of _new_ code using
 Cython for his distributed matrix arrays project, and ran into this problem,
 and thought -- surely the Sage folks have solved this.  Then he looked
 at our code for the solution and noticed that we haven't.

Yes, without a doubt, but I am skeptical that that solution would work 
[Brian never claimed it did and actually raised that concern].

 That said, this is definitely not the most important thing for *us*
 to worry about at this point.We have many more important
 problems to solve first.   But I'm really glad Brian is raising this
 issue, etc.
 

Sure and it is certainly good to be discussed. I didn't want to be 
dismissive about the idea, it is just that I have been in the debugging 
memory leaks in Cython extension trenches for the last eight months and 
hence I do not trust python or its memory management at all any more. 
And having been burned over and over again has left me the way I am ;)

  -- William

Cheers,

Michael

 ___
 Cython-dev mailing list
 [EMAIL PROTECTED]
 http://codespeak.net/mailman/listinfo/cython-dev
 


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: [Cython] [sage-devel] Re: Locally scoped dynamic memory (in SAGE and elsewhere)

2008-04-10 Thread Brian Granger

  Sure and it is certainly good to be discussed. I didn't want to be
  dismissive about the idea, it is just that I have been in the debugging
  memory leaks in Cython extension trenches for the last eight months and
  hence I do not trust python or its memory management at all any more.
  And having been burned over and over again has left me the way I am ;)

Your comments make more sense in this light.  Sounds painful :)

Just our of curiosity - are the problem with cython itself or how
people are using/misusing it?

Brian

-- William

  Cheers,

  Michael



   ___
   Cython-dev mailing list
   [EMAIL PROTECTED]
   http://codespeak.net/mailman/listinfo/cython-dev
  

  ___
  Cython-dev mailing list
  [EMAIL PROTECTED]
  http://codespeak.net/mailman/listinfo/cython-dev


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: [Cython] Locally scoped dynamic memory (in SAGE and elsewhere)

2008-04-10 Thread Michael.Abshoff

Brian Granger wrote:

Hi Brian,

  Well, in the end you end up using sbrk() anyway, but I don't see what is
  wrong with malloc itself? sage_malloc was introduced a while back to
  make it possible to switch to a slab allocator like omalloc potentially
  to see if there is any benefit from it.
 
 And that makes sense.
 
 
  Absolutely not, but if you want to write exception safe extensions just
  write them in exception safe C++ using autoptr  friends. While you
  might not be too concerned about performance here the issue is still
  debuggability. If you ran standard Python under valgrind (after
  disabling pymalloc) you will get
 
 I do think performance is important, but not at the expense of
 potential memory leaks.

Sure, we want both.

  I don't have experience running valgrind with
 python, but from what I have gleaned from others, you need to run
 valgrind with valgrind-python.supp that is in the Misc directory of
 the Python source tree.  Details are here:
 
 http://svn.python.org/projects/python/trunk/Misc/README.valgrind
 
 My impression from others is that the memory problems you are seeing
 here will go away if you use this .supp file.  Not sure though.

No, they are not. Suppressing still reachable memory doesn't make the 
problem go away. It is just a cosmetic solution and hides real bugs.

  I do
 know that the python-devs use valgrind to detect real memory leaks and
 there is _no_ way that they actually have thousands of them.

Well, those aren't technically leaks, but memory that is not properly 
deallocated at exit. The amount is more or less constant independent on 
how long you run a python session. The amount usually grows once you 
import more modules and it is a bug in my book if you do not properly 
dealloc all memory and let the heap tear down at the program exit take 
care of it. What happens is that if you do not free a reference for some 
piece of memory and you do that repeatedly in your code you end up with 
a lot of stale memory chunks that all get reaped at exit as still 
reachable. And that is a very real problem if you chose to ignore those 
chunks since the system frees them at python's exit anyway. I have found 
a bug like that for example in Singular where the slab allocator did 
hide the problem, so this is a real issue.

  [EMAIL PROTECTED]:/scratch/mabshoff/release-cycle/sage-3.0.alpha2/local/bin$
  valgrind --tool=memcheck --leak-resolution=high ./python
  ==12347== Memcheck, a memory error detector.
  ==12347== Copyright (C) 2002-2008, and GNU GPL'd, by Julian Seward et al.
  ==12347== Using LibVEX rev 1812, a library for dynamic binary translation.
  ==12347== Copyright (C) 2004-2008, and GNU GPL'd, by OpenWorks LLP.
  ==12347== Using valgrind-3.4.0.SVN, a dynamic binary instrumentation
  framework.
  ==12347== Copyright (C) 2000-2008, and GNU GPL'd, by Julian Seward et al.
  ==12347== For more details, rerun with: -v
  ==12347==
  Python 2.5.1 (r251:54863, Apr  6 2008, 21:59:15)
  [GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
  Type help, copyright, credits or license for more information.
   
  ==12347==
  ==12347== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 9 from 2)
  ==12347== malloc/free: in use at exit: 599,274 bytes in 2,441 blocks.
  ==12347== malloc/free: 12,890 allocs, 10,449 frees, 2,420,712 bytes
  allocated.
  ==12347== For counts of detected errors, rerun with: -v
  ==12347== searching for pointers to 2,441 not-freed blocks.
  ==12347== checked 998,864 bytes.
  ==12347==
  ==12347== LEAK SUMMARY:
  ==12347==definitely lost: 0 bytes in 0 blocks.
  ==12347==  possibly lost: 15,736 bytes in 54 blocks.
  ==12347==still reachable: 583,538 bytes in 2,387 blocks.
  ==12347== suppressed: 0 bytes in 0 blocks.

  So we have roughly 2,400 blocks of memory that Python itself cannot
  properly deallocate due to problems with their own garbage collection.
 
 See above.
 
  I
  will spare you the numbers for Sage (they are much worst due to still to
  be solved problems with Cython and extensions in general) and starting
  to poke for leaks in that pile of crap is not something I find
  appealing. Sure, once all mallocs in Sage are converted to sage_malloc
  one could switch and see what happens, but I can guarantee you that
  debugging some problem stemming from us doing something stupid with
  malloc compared to tracking it down inside Python is not a contest.
  Check out #1337 in our track to see such a case.
 
 True, malloc is more straightforward in that sense.
 
  And by the way: The python interpreter itself does leak some small bits
  of memory while running. So the above while it looks like a really good
  idea is far from a fool proof solution.
 
 Is your argument: there are already lots of memory leaks in python and
 sage so a few more is not a big deal?

No: My argument is that the solution you suggested is not something that 
will work in the general case, but obfuscate real problems at the 
expense of 

[sage-devel] Re: Locally scoped dynamic memory (in SAGE and elsewhere)

2008-04-10 Thread Robert Bradshaw

On Apr 10, 2008, at 9:51 AM, Brian Granger wrote:

 Hi,

 (dual posted to sage and cython)

 A few of us (ipython and mpi4py devs) are wondering what the
 best/safest way of allocating dynamic memory in a local scope
 (method/function) is when using cython.  An example would be if you
 need an array of c ints that is locally scoped.

 The big question is how to make sure that the memory gets freed - even
 if something goes wrong in the function/method.  That is, you want to
 prevent memory leaks.  It looks like in sage, the
 sage_malloc/sage_free functions are used for this purpose:

 from sage/graphs/graph_isom.pyx:

176def incorporate_permutation(self, gamma):
202cdef int *_gamma = int * sage_malloc( n * sizeof 
 (int) )
203if not _gamma:
204raise MemoryError(Error allocating memory.)
205for k from 0 = k  n:
206_gamma[k] = gamma[k]
207self._incorporate_permutation(_gamma, n)
208sage_free(_gamma)

 Because sage_malloc is #defined to malloc in stdsage.h, I think there
 is a significant potential for memory leaks in code like this.  Are we
 thinking correctly on this issue?  Isn't this a huge problem?

 Lisandro Dalcin (author of mpi4py) came up with the following trick
 that, while more complicated, prevents memory leaks:

 cdef extern from Python.h:
 object PyString_FromStringAndSize(char*,Py_ssize_t)
 char* PyString_AS_STRING(object)

 cdef inline object pyalloc_i(int size, int **i):
 if size  0: size = 0
 cdef Py_ssize_t n = size * sizeof(int)
 cdef object ob = PyString_FromStringAndSize(NULL, n)
 i[0] = int* PyString_AS_STRING(ob)
 return ob

 and now

 def foo(sequence):
 cdef int size = len(sequence),
 cdef int *buf = NULL
 cdef object tmp = pyalloc_i(size, buf)

 This could probably be adapted into a malloc-like function.  What do
 people think?

This is actually the same solution that popped into my mind when I  
first read your question, and I think it is a very good one. Using  
string objects is particularly interesting because the they are  
highly optimized (for example, the buffer allocation is done as part  
of the object allocation). I would probably have it take a void**  
rather than make an allocator specific to ints. If people like this  
idea, I could add such a function to Sage. Maybe it would even be  
worthwhile adding it to Cython (in one of the included header files).

Alternatively, using a try-finally will work. If the buffers all are  
set to start as NULL then one just frees the non-NULL buffers at the  
end (so one doesn't have to keep track of where in the procedure  
things went wrong).

- Robert


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: [Cython] [sage-devel] Re: Locally scoped dynamic memory (in SAGE and elsewhere)

2008-04-10 Thread Michael.Abshoff

Brian Granger wrote:

Hi Brian,

  Sure and it is certainly good to be discussed. I didn't want to be
  dismissive about the idea, it is just that I have been in the debugging
  memory leaks in Cython extension trenches for the last eight months and
  hence I do not trust python or its memory management at all any more.
  And having been burned over and over again has left me the way I am ;)
 
 Your comments make more sense in this light.  Sounds painful :)
 
 Just our of curiosity - are the problem with cython itself or how
 people are using/misusing it?

It is a general problem when writing extensions and Cython [via code 
written by Robert Bradshaw] has started to add code to deal with the 
situation. But the deallocation code can cause trouble when extensions 
are carefully written (i.e. interdependencies) and I hope that during 
Dev1 I will have time to delve into this.

If I had time I would lock myself in a room with the Python code for two 
weeks and try to figure this out. So far that hasn't happened yet du to 
lack of time. Maybe I need to go on vacation for two weeks where due 
to unforeseen circumstances I cannot be reached ;)

 Brian
 

Cheers,

Michael

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: [Cython] [sage-devel] Re: Locally scoped dynamic memory (in SAGE and elsewhere)

2008-04-10 Thread Robert Bradshaw

On Apr 10, 2008, at 11:10 AM, Michael.Abshoff wrote:

 Brian Granger wrote:

 Hi Brian,

  Sure and it is certainly good to be discussed. I didn't want to be
  dismissive about the idea, it is just that I have been in the  
 debugging
  memory leaks in Cython extension trenches for the last eight  
 months and
  hence I do not trust python or its memory management at all any  
 more.
  And having been burned over and over again has left me the way I  
 am ;)

 Your comments make more sense in this light.  Sounds painful :)

 Just our of curiosity - are the problem with cython itself or how
 people are using/misusing it?

 It is a general problem when writing extensions and Cython [via code
 written by Robert Bradshaw] has started to add code to deal with the
 situation. But the deallocation code can cause trouble when extensions
 are carefully written (i.e. interdependencies) and I hope that during
 Dev1 I will have time to delve into this.

To rephrase the problem, as the Python interpreter and environment  
get torn down, it becomes less and less safe to run the code invoked  
by deallocating objects. Most people don't worry about this because  
the whole process is about to be terminated, releasing all requested  
memory, but it does produce noise if one is trying to do memory  
profiling (e.g. with valgrind).

- Robert



--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Fwd: [soc2008-mentors] SymPy apps -- looking for comments and mentors

2008-04-10 Thread Robert Bradshaw

This may be of interest to Sage.

Begin forwarded message:
 From: Ondrej Certik [EMAIL PROTECTED]
 Date: April 10, 2008 12:36:47 PM PDT
 To: [EMAIL PROTECTED]
 Subject: [soc2008-mentors] SymPy apps -- looking for comments and  
 mentors

 Hi,

 there are 10 applications for SymPy at PSF, some of them are very
 good, so it's difficult to sort them (especially pick up the best
 one).

 We would be very interested, if you could comment on them and give us
 more feedback -- is it useful for the Python community? Is it useful
 to you? To the scientific community (SciPy, Sage, ...), etc?
 Of course we know the applicants more than you probably do, but if
 google is going to give only 22 slots to PSF and if sympy apps fits
 into those 22 slots, we'd have to pick the best app, so it'd be very
 useful for us to have more feedback on them.

 For example we'd appreciate more input on [5] (especially from the
 Sage people), how much useful you think it is.

 Here they are sorted roughly from the best one to the worst:

 [1] SymPy: Improving the Plotting Module and a Pure Python TeX Engine
 http://code.google.com/soc/2008/psf/app.html? 
 csaid=ORcMXRhQQS4PGBQJEgJdHSIKNUkCQw5VCiNXOklWElJXAXRXbA%3D%3D%0A

 [2] SymPy: robust high-precision numerical evaluation
 http://code.google.com/soc/2008/psf/app.html? 
 csaid=PgEBFxlYWG8PNxsFHRhCXC8lPx4FGgcfUC4IYkNVRg9UAXcEYkBcSlpQBnFR%0A

 [3] Creating a GTK based GUI for Sympy
 http://code.google.com/soc/2008/psf/app.html? 
 csaid=KBsNHwJBQ28WLAEFEABxVCwEMR9KEARcCSdQbksBEV9XCXMGaBVSRwpU%0A

 [4] Sympy: Definite Integration via Integration in the Complex Plane
 http://code.google.com/soc/2008/psf/app.html? 
 csaid=KhoeFApDHSwANB8FMwxcUigJdhALHlFXUCNSPkJVQVEDVyNTPEUGRg%3D%3D%0A

 [5] Improving number theory and graph theory modules in sympy
 http://code.google.com/soc/2008/psf/app.html? 
 csaid=PB9KFARERykENTMDHgpYX28GNx5eFV5XV3RcYUpeRFkJAHcBPks%3D%0A

 [6] SymPy:A Logic Algebra Module for SymPy
 http://code.google.com/soc/2008/psf/app.html? 
 csaid=KBYKFBtQXTIRPQEkFAZQWi1LOxwJSQ4IAHlVbktTSUYFB3QEahJdRQ%3D%3D%0A

 [7] SymPy: Improvement for Ordinary Differential Equations Solver
 http://code.google.com/soc/2008/psf/app.html? 
 csaid=KBYKFBtQXTIRPQEkFAZQWi1LOxwJSVsEACQDaxFTSUYDVXEHORVdEA%3D%3D%0A

 [8] SymPy : Implementing the recursive Risch integration algorithm
 http://code.google.com/soc/2008/psf/app.html? 
 csaid=OV0PGh9eRi8MGBQJEgJdHSIKNUkCRg1QViBda0lJRA1TUidRaUI%3D%0A

 [9] 2-Fold improvement to SymPy - Generalized Functions  Diffy Qs
 http://code.google.com/soc/2008/psf/app.html? 
 csaid=KxYWEhtZHTkOPQokFAZQWi1LOxwJSVlTBXkAOkcFSVlVAHYDPENT%0A

 [10] Generalized Functions for SymPy
 http://code.google.com/soc/2008/psf/app.html? 
 csaid=ORgFBwpDWjgEaTMDHgpYX28GNx5eQQkFAXlXbEFeXlkJUXdSPEIB%0A



 And we have these potential mentors:

 1) Ondrej Certik
 2) Kirill Smelkov
 3) Mateusz Paprocki
 4) Michael Droettboom

 If there is anyone else who would be available for mentoring, or act
 as a backup mentor, please let us know. If google only gives 22 slots
 to PSF, I think we can easily cover all possible sympy projects with
 our current mentors, but just in case. Currently we have the first
 four applications that have 4 points. There is also a slight chance,
 that one SymPy project will get accepted at the Portland State
 University.

 You can see the last year SymPy's involvement in GSoC here:

 http://code.google.com/p/sympy/wiki/GSoC2007

 We had 3 students at PSF and 2 elsewhere.

 Thanks,
 Ondrej
 ___
 soc2008-mentors mailing list
 [EMAIL PROTECTED]
 http://mail.python.org/mailman/listinfo/soc2008-mentors


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: p-adic crash error

2008-04-10 Thread David Roe

I think Willem fixed this bug.  I've made the same change a few other
places and added a doctest.
David

On Mon, Apr 7, 2008 at 11:16 AM, Kiran Kedlaya [EMAIL PROTECTED] wrote:

  Jen Balakrishnan spent time with some of the usual suspects during the
  Arizona Winter School tracking down bugs in the p-adics, but more
  remain. We've isolated a code snippet that makes sage 2.11 go boom on
  multiple platforms:
  {{{
  sage: R.x = QQ[]
  sage: K = Qp(11,10)
  sage: J.a = K.extension(x^30-11)
  sage: M.t = PowerSeriesRing(J)
  sage: S.x,y = QQ[]
  sage: xr = O(a^152)*t + (8*a^2 + 10*a^32 + 7*a^62 + 10*a^92 + 7*a^122
  + O(a^152))*t^2 + O(a^154)*t^3 + (2*a^4 + 10*a^64 + 2*a^124 +
  O(a^154))*t^4 + O(a^156)*t^5 + (5*a^6 + 2*a^96 + a^126 + O(a^156))*t^6
  + O(a^158)*t^7 + (7*a^8 + 6*a^38 + 8*a^68 + 2*a^98 + 5*a^128 +
  O(a^158))*t^8 + O(a^160)*t^9 + (8*a^10 + 10*a^40 + a^70 + 5*a^130 +
  O(a^160))*t^10 + O(a^162)*t^11 + (9*a^12 + 7*a^42 + 8*a^72 + 6*a^102 +
  9*a^132 + O(a^162))*t^12 + O(a^164)*t^13 + (2*a^14 + 5*a^44 + 3*a^74 +
  a^104 + 4*a^134 + O(a^164))*t^14 + O(a^166)*t^15 + (2*a^16 + 5*a^46 +
  8*a^76 + 5*a^106 + 7*a^136 + O(a^166))*t^16 + O(a^168)*t^17 + (7*a^18
  + 3*a^48 + 6*a^78 + 9*a^138 + O(a^168))*t^18 + O(a^172)*t^19 + (7*a^50
  + 3*a^80 + 5*a^110 + 5*a^140 + 7*a^170 + O(a^172))*t^20 +
  O(a^172)*t^21 + (a^22 + a^52 + 3*a^82 + 3*a^112 + 2*a^142 +
  O(a^172))*t^22 + O(a^174)*t^23 + (4*a^24 + 7*a^54 + 9*a^84 + 4*a^114 +
  7*a^144 + O(a^174))*t^24 + O(a^176)*t^25 + (3*a^26 + 8*a^56 + 8*a^116
  + 5*a^146 + O(a^176))*t^26 + O(a^178)*t^27 + (2*a^28 + 2*a^58 + 6*a^88
  + a^118 + 10*a^148 + O(a^178))*t^28 + O(a^180)*t^29 + (8*a^30 + 5*a^60
  + 8*a^90 + 5*a^120 + 6*a^150 + O(a^180))*t^30 + O(a^184)*t^31 +
  (7*a^62 + 9*a^92 + 2*a^182 + O(a^184))*t^32
  sage: yr = xr^2
  sage: dtr = xr.derivative()
  sage: f_dtr = yr*dtr # boom
  FFTRep: inconsistent use
  (and then sage exits uncleanly)
  }}}
  I wasn't able to find a shorter value of xr that reproduces this
  (removing the t^32 term alleviates the error).

  We've opened ticket #2843 for this.

  Kiran


  


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: tick marks

2008-04-10 Thread gerhard

Just to illustrate, the results of something like
plot(sin(40*x),(1.96,2.04))
are intriguing

-gerhard
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Final Push for 3.0 this weekend

2008-04-10 Thread boothby

Also, I'd like to request that people test the notebook in their favorite 
browser.  William and I have made some pretty substantial changes; while I 
think we've caught most of the major bugs, we definately haven't caught them 
all.  Get alpha4, or apply #2869 to alpha3.

http://trac.sagemath.org/sage_trac/ticket/2869

Thanks!

On Thu, 10 Apr 2008, mabshoff wrote:


 Hello folks,

 it has been eleven days since the last stable Sage release and I can
 imagine that William is getting jittery for another release. So I
 would suggest that interested parties meet in IRC Saturday and/or
 Sunday for some final push to get 3.0 ready for release. What needs to
 be done?

 * General ticket review
 * #2344: [with spkg, needs review, additional work] python -- upgrade
 to version 2.5.2
 * #2822: PolyBoRi segfault at exit issue
 * #2851: clean binary install of sage followed by sage -br is broken
 * gcc 4.3 [mabshoff]
 * MacIntel 64 bit [mabshoff]

 The usual other things can also help out, i.e. writing doctests and
 fixing other bugs.

 For tickets with patches that might need review/some additional work
 see

 http://trac.sagemath.org/sage_trac/report/13

 Cheers,

 Michael
 




--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Introductory Cython talk

2008-04-10 Thread William Stein

Hi,

Robert Bradshaw gave a very introductory talk about Cython yesterday
to my undergraduate
class, which I video'd and uploaded to google video here:
http://wiki.wstein.org/2008/480a/schedule/2008-04-09

(The aspect ratio is wrong... sigh, but otherwise the video works fine.)

-- 
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: tick marks

2008-04-10 Thread William Stein

On Thu, Apr 10, 2008 at 4:01 PM, gerhard [EMAIL PROTECTED] wrote:

  Just to illustrate, the results of something like
 plot(sin(40*x),(1.96,2.04))
  are intriguing

The output in Sage now is just plain crap and totally wrong.

William

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Fwd: tick mark bundle

2008-04-10 Thread William Stein
-- Forwarded message --
From: Gerhard Ertaler [EMAIL PROTECTED]
Date: Wed, Apr 9, 2008 at 4:56 PM
Subject: tick mark bundle
To: [EMAIL PROTECTED]



The code replaces the _tastefulticks routine
in axes.py without altering the API.

It would be trivial to allow the user to specify the number of ticks required
(currently hardcoded), and to extract a common power of 10
to declutter the printed labels.

-gerhard
 
 Gesendet von Yahoo! Mail.
 Der Lieblings-Mailbox der Welt.


-- 
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



mybundle.hg
Description: Binary data


[sage-devel] Fwd: tick mark bundle

2008-04-10 Thread William Stein
I should say, I'm forwarding this code to sage-devel in the hopes that
somebody can
do something to it, since I'm too busy right now.


-- Forwarded message --
From: William Stein [EMAIL PROTECTED]
Date: Thu, Apr 10, 2008 at 5:36 PM
Subject: Fwd: tick mark bundle
To: sage-devel@googlegroups.com sage-devel@googlegroups.com



-- Forwarded message --
 From: Gerhard Ertaler [EMAIL PROTECTED]
 Date: Wed, Apr 9, 2008 at 4:56 PM
 Subject: tick mark bundle
 To: [EMAIL PROTECTED]



 The code replaces the _tastefulticks routine
 in axes.py without altering the API.

 It would be trivial to allow the user to specify the number of ticks required
 (currently hardcoded), and to extract a common power of 10
 to declutter the printed labels.

 -gerhard
  
  Gesendet von Yahoo! Mail.
  Der Lieblings-Mailbox der Welt.


 --
 William Stein
 Associate Professor of Mathematics
 University of Washington
 http://wstein.org



-- 
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



mybundle.hg
Description: Binary data


[sage-devel] Re: p-adic crash error

2008-04-10 Thread mabshoff



On Apr 11, 12:35 am, David Roe [EMAIL PROTECTED] wrote:
 I think Willem fixed this bug.  I've made the same change a few other
 places and added a doctest.
 David

Hi David,

I posted a one line patch to make you patch compile. It is attached to
#2843. Can you have a look? craigcitro just said in IRC that you
intend to remove the extra _a

Cheers,

Michael
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Introductory Cython talk

2008-04-10 Thread mhampton

Ahhh, this helps a lot.  I have been needing more cython help, and I
think this will get me about 90% there.

-M. Hampton

On Apr 10, 6:31 pm, William Stein [EMAIL PROTECTED] wrote:
 Hi,

 Robert Bradshaw gave a very introductory talk about Cython yesterday
 to my undergraduate
 class, which I video'd and uploaded to google video here:
http://wiki.wstein.org/2008/480a/schedule/2008-04-09

 (The aspect ratio is wrong... sigh, but otherwise the video works fine.)

 --
 William Stein
 Associate Professor of Mathematics
 University of Washingtonhttp://wstein.org
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Build Error

2008-04-10 Thread Walt

Just got this build error that told me to post it here:

mpn_extras.o:mpn_extras.c:(.text+0x2630): first defined here
collect2: ld returned 1 exit status
make[2]: *** [libflint.so] Error 1
make[2]: Leaving directory `/home/zarathustra/Download/sage-3.0.alpha3/
spkg/build/flint-1.06.p2/src'
Error building flint shared library.

real0m23.087s
user0m22.184s
sys 0m0.559s
sage: An error occurred while installing flint-1.06.p2
Please email sage-devel http://groups.google.com/group/sage-devel
explaining the problem and send the relevant part of
of /home/zarathustra/Download/sage-3.0.alpha3/install.log.  Describe
your computer, operating system, etc.
If you want to try to fix the problem, yourself *don't* just cd to
/home/zarathustra/Download/sage-3.0.alpha3/spkg/build/flint-1.06.p2
and type 'make'.
Instead type /home/zarathustra/Download/sage-3.0.alpha3/sage -sh
in order to set all environment variables correctly, then cd to
/home/zarathustra/Download/sage-3.0.alpha3/spkg/build/flint-1.06.p2
(When you are done debugging, you can type exit to leave the
subshell.)
make[1]: *** [installed/flint-1.06.p2] Error 1
make[1]: Leaving directory `/home/zarathustra/Download/sage-3.0.alpha3/
spkg'

real19m40.074s
user17m33.744s
sys 1m27.617s


Any advice?
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Build Error

2008-04-10 Thread mabshoff



On Apr 11, 5:02 am, Walt [EMAIL PROTECTED] wrote:
 Just got this build error that told me to post it here:

 mpn_extras.o:mpn_extras.c:(.text+0x2630): first defined here
 collect2: ld returned 1 exit status
 make[2]: *** [libflint.so] Error 1
 make[2]: Leaving directory `/home/zarathustra/Download/sage-3.0.alpha3/
 spkg/build/flint-1.06.p2/src'
 Error building flint shared library.

 real    0m23.087s
 user    0m22.184s
 sys     0m0.559s
 sage: An error occurred while installing flint-1.06.p2
 Please email sage-develhttp://groups.google.com/group/sage-devel
 explaining the problem and send the relevant part of
 of /home/zarathustra/Download/sage-3.0.alpha3/install.log.  Describe
 your computer, operating system, etc.
 If you want to try to fix the problem, yourself *don't* just cd to
 /home/zarathustra/Download/sage-3.0.alpha3/spkg/build/flint-1.06.p2
 and type 'make'.
 Instead type /home/zarathustra/Download/sage-3.0.alpha3/sage -sh
 in order to set all environment variables correctly, then cd to
 /home/zarathustra/Download/sage-3.0.alpha3/spkg/build/flint-1.06.p2
 (When you are done debugging, you can type exit to leave the
 subshell.)
 make[1]: *** [installed/flint-1.06.p2] Error 1
 make[1]: Leaving directory `/home/zarathustra/Download/sage-3.0.alpha3/
 spkg'

 real    19m40.074s
 user    17m33.744s
 sys     1m27.617s

 Any advice?

Hi,

this is way to little to do any kind of debugging. Are you using gcc
4.3 by any chance? If so you are out of luck until 3.0 (out early next
week) which will support gcc 4.3.

Id you are not using gcc 4.3 please gzip up install.log, upload it to
the net somewhere and post a link here. Do not attach the log to an
email.

Cheers,

Michael
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Build Error

2008-04-10 Thread Walt

Yep, I'm using gcc 4.3.0.

On Apr 10, 11:07 pm, mabshoff [EMAIL PROTECTED]
dortmund.de wrote:
 On Apr 11, 5:02 am, Walt [EMAIL PROTECTED] wrote:



  Just got this build error that told me to post it here:

  mpn_extras.o:mpn_extras.c:(.text+0x2630): first defined here
  collect2: ld returned 1 exit status
  make[2]: *** [libflint.so] Error 1
  make[2]: Leaving directory `/home/zarathustra/Download/sage-3.0.alpha3/
  spkg/build/flint-1.06.p2/src'
  Error building flint shared library.

  real    0m23.087s
  user    0m22.184s
  sys     0m0.559s
  sage: An error occurred while installing flint-1.06.p2
  Please email sage-develhttp://groups.google.com/group/sage-devel
  explaining the problem and send the relevant part of
  of /home/zarathustra/Download/sage-3.0.alpha3/install.log.  Describe
  your computer, operating system, etc.
  If you want to try to fix the problem, yourself *don't* just cd to
  /home/zarathustra/Download/sage-3.0.alpha3/spkg/build/flint-1.06.p2
  and type 'make'.
  Instead type /home/zarathustra/Download/sage-3.0.alpha3/sage -sh
  in order to set all environment variables correctly, then cd to
  /home/zarathustra/Download/sage-3.0.alpha3/spkg/build/flint-1.06.p2
  (When you are done debugging, you can type exit to leave the
  subshell.)
  make[1]: *** [installed/flint-1.06.p2] Error 1
  make[1]: Leaving directory `/home/zarathustra/Download/sage-3.0.alpha3/
  spkg'

  real    19m40.074s
  user    17m33.744s
  sys     1m27.617s

  Any advice?

 Hi,

 this is way to little to do any kind of debugging. Are you using gcc
 4.3 by any chance? If so you are out of luck until 3.0 (out early next
 week) which will support gcc 4.3.

 Id you are not using gcc 4.3 please gzip up install.log, upload it to
 the net somewhere and post a link here. Do not attach the log to an
 email.

 Cheers,

 Michael
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Fwd: use zip instead of 7zip for distributing the sage binary

2008-04-10 Thread Chris Chiasson

+1 for firefox website architecture style

On Apr 10, 12:08 pm, Harald Schilly [EMAIL PROTECTED] wrote:
 On Apr 10, 4:40 pm, William Stein [EMAIL PROTECTED] wrote:

  The right thing to do is to make Sage easier
  to install.

 Yes, of course, I wanted to point out where the problem is and how it
 could be handled, the current issue with the Windows install, in my
 opinion, is the lack of a native port. And then MSI!!

 MSI is necessary, because system administrators for networks of
 computers use them like linux packages to push-install them on all
 machines .. that's impossible for .exe setups !. so, i think, that's
 the best solution, but i know this is not done until tomorrow...
 (and there are admins who _only_ take msi packages and forget about
 the rest ... too much work)

 @webpage:

 On Apr 10, 6:04 pm, Martin Albrecht [EMAIL PROTECTED]
 wrote:



  Btw. I think Harald is working on redesigning the website anyway.

 Yes, I'll try to make it easier ... less text, less clicks, gives a
 higher information density. But it's also not done until tomorrow.
 Personally, I don't like the firefox install site, but i'll collect
 all ideas and mix something up.

 Harald
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: p-adic crash error

2008-04-10 Thread David Roe

No, I forgot to change it back.  Use the patch I posted instead, which
changes all the eis_shift_a's back to eis_shift.  The p-adics folder
passes sage -t now.
David

On Thu, Apr 10, 2008 at 8:53 PM, mabshoff
[EMAIL PROTECTED] wrote:



  On Apr 11, 12:35 am, David Roe [EMAIL PROTECTED] wrote:
   I think Willem fixed this bug.  I've made the same change a few other
   places and added a doctest.
   David

  Hi David,

  I posted a one line patch to make you patch compile. It is attached to
  #2843. Can you have a look? craigcitro just said in IRC that you
  intend to remove the extra _a

  Cheers,

  Michael


 


--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Final Push for 3.0 this weekend

2008-04-10 Thread mabshoff



On Apr 11, 1:01 am, [EMAIL PROTECTED] wrote:
 Also, I'd like to request that people test the notebook in their favorite 
 browser.  William and I have made some pretty substantial changes; while I 
 think we've caught most of the major bugs, we definately haven't caught them 
 all.  Get alpha4, or apply #2869 to alpha3.

 http://trac.sagemath.org/sage_trac/ticket/2869

 Thanks!

Yep, people should really do that. The current Notebook code in alpha3
should support Safari 3.1.

For all those people with gcc 4.3 out there:

[EMAIL PROTECTED] sage-3.0.alpha3]$ gcc -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --prefix=/usr --enable-shared --enable-
languages=c,c++,fortran,objc,obj-c++,treelang --enable-threads=posix --
mandir=/usr/share/man --enable-__cxa_atexit --disable-multilib --
libdir=/usr/lib --libexecdir=/usr/lib --enable-clocale=gnu --disable-
libstdcxx-pch --with-tune=generic
Thread model: posix
gcc version 4.3.0 (GCC)
[EMAIL PROTECTED] sage-3.0.alpha3]$ ./sage
--
| SAGE Version 3.0.alpha3, Release Date: 2008-04-09  |
| Type notebook() for the GUI, and license() for information.|
--

sage: 1+1
2
sage:
Exiting SAGE (CPU time 0m0.01s, Wall time 0m2.67s).

That build  is actually on an arch linux x86-64 image, so we will have
binaries for that platform from 3.0 forward. I will merge all the
build fixes into alpha4 and release that in the next 16 hours.

Cheers,

Michael
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---