[sage-devel] Re: Sage 2.11.alpha1 released!

2008-03-26 Thread mabshoff



On Mar 26, 5:45 am, Justin C. Walker [EMAIL PROTECTED] wrote:
 Hi, Hichael,

 On Mar 25, 2008, at 19:16 , mabshoff wrote:





  On Mar 26, 2:58 am, Justin C. Walker [EMAIL PROTECTED] wrote:
  On Mar 22, 2008, at 16:02 , mabshoff wrote:
 http://sage.math.washington.edu/home/mabshoff/release-cycles-2.11/sag
  ...

  Things didn't go so well on my system (Mac OS X, 10.5.2, Dual Quad
  Xeon, -j6).  The tail of the log is below.  The whole log is on
  sage.math.washington.edu:~justin/logs/2.10.11.A1.log.[snip]
  gcc -std=c99 -single_module -fPIC -dynamiclib -o libflint.dylib
  mpn_extras.o mpz_extras.o memory-manager.o ZmodF.o ZmodF_mul.o
  ZmodF_mul-tuning.o fmpz.o fmpz_poly.o mpz_poly-tuning.o mpz_poly.o
  ZmodF_poly.o long_extras.o -L/Users/tmp/sage-2.11.alpha1/local/
  lib/  -
  lgmp -lpthread -lm
  ld: duplicate symbol ___gmpz_abs in mpz_extras.o and mpn_extras.o
 [snip]
  more GMP trouble. Can you post the output from uname -r | sed s/9\.
  [0-9]\.0/9\.0\.0/ and a uname -a.

 $ uname -a
 Darwin zippo 9.2.2 Darwin Kernel Version 9.2.2: Tue Mar  4 21:17:34  
 PST 2008; root:xnu-1228.4.31~1/RELEASE_I386 i386
 $ uname -r | sed s/9\.[0-9]\.0/9\.0\.0/
 9.2.2

Ok, this is the culprit. It will need fixes all over the place and
this time we might as well do it right.

  We haven't touched either the GMP nor the FLINT package in a while,  
  so did you upgrade your OSX or XCode version by any chance?

 Nope; There hasn't been a (public) update to Xcode for a while.

  A third possibility is that FLINT is all the sudden picking up a stray
  gmp.h. Can you check your system?

 I have two versions of GMP installed: one I built recently in /usr/
 local, and one built as part of MacPorts in /opt/local.

 I moved both out of the way, and rebuilt from scratch: same result.

Yeah, the culprit is the above regexp. I will fix those before
2.11.alpha2. Sorry for the mess. I made this #2672 - a blocker for
2.11.

 Justin

 --
 Justin C. Walker, Curmudgeon-At-Large
 Institute for the Enhancement of the Director's Income
 
 Experience is what you get
    when you don't get what you want.
 

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: Sage 2.11.alpha1 released!

2008-03-26 Thread mabshoff



On Mar 26, 3:25 am, Soroosh Yazdani [EMAIL PROTECTED] wrote:
 Should I uninstall atlas if I want to check your patch for the future
 version? Atlas is installed system wide on my computer, and linbox seemed to
 have found those libraries as it compiled afterward. Is there a way to force
 linbox to compile against the local version?

 Cheers,
 Soroosh

If it works now don't worry about it. I am just puzzled that it works
the second time around. Did you delete/move/add/change anything in
between those two tries? It might be that the system's ATLAS has the
f95 runtime library merged into libatlas.a for example. But the
problem [the missing -lf95] has popped up often enough here and in
linbox-use that I ought to finally fix it via some autoconf magic,
unless Clement wants to beat me to it ;)

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: Sage 2.11.alpha1 released!

2008-03-26 Thread Soroosh Yazdani
It started working after I installed atlas system wide. Atlas was not
installed in the first attempt to compile sage. After linbox failed, my
solution was to install atlas through gentoo package manager and try again.

Cheers,
Soroosh

On Wed, Mar 26, 2008 at 3:36 AM, mabshoff 
[EMAIL PROTECTED] wrote:




 On Mar 26, 3:25 am, Soroosh Yazdani [EMAIL PROTECTED] wrote:
  Should I uninstall atlas if I want to check your patch for the future
  version? Atlas is installed system wide on my computer, and linbox
 seemed to
  have found those libraries as it compiled afterward. Is there a way to
 force
  linbox to compile against the local version?
 
  Cheers,
  Soroosh

 If it works now don't worry about it. I am just puzzled that it works
 the second time around. Did you delete/move/add/change anything in
 between those two tries? It might be that the system's ATLAS has the
 f95 runtime library merged into libatlas.a for example. But the
 problem [the missing -lf95] has popped up often enough here and in
 linbox-use that I ought to finally fix it via some autoconf magic,
 unless Clement wants to beat me to it ;)

 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: Request for Reviews, Reviews, Reviews!

2008-03-26 Thread Dan Drake
On Tue, 25 Mar 2008 at 07:22PM -0700, mabshoff wrote:
 But there are still plenty of patches in trac that deserve to be
 looked at and merged.

Might I recommend 2565?

  http://sagetrac.org/sage_trac/ticket/2565

The logging facilities currently are totally broken. The above ticket
has a patch that not only fixes all the problems with them, but adds a
text logger to go along with the html and dvi ones.

Dan

-- 
---  Dan Drake [EMAIL PROTECTED]
-  KAIST Department of Mathematical Sciences
---  http://math.kaist.ac.kr/~drake


signature.asc
Description: Digital signature


[sage-devel] Re: Glib algorithms #2436 vote

2008-03-26 Thread Mike Hansen

+1

--Mike

On Tue, Mar 25, 2008 at 7:15 PM,  [EMAIL PROTECTED] wrote:




  On Tue, 25 Mar 2008, Gary Furnish wrote:

  
   Trac #2436 adds the following algorithms from glib to libcsage:
   Multiplatform threads
   Thread pools
   Asynchronous Queues
   Memory Slices
   Doubly and Singly linked lists
   Queues
   Sequences
   Hash Tables
   Arrays
   Balanced Binary Trees
   N-ary Trees
   Quarks


  +1, I can use this to speed up the polynomial evaluation code.




  
   In particular it features a slab memory allocator based on:
   http://citeseer.ist.psu.edu/bonwick94slab.html
   http://citeseer.ist.psu.edu/bonwick01magazines.html
   The documentation for glib is found at 
 http://library.gnome.org/devel/glib/2.14/glib-Memory-Slices.html
   The files are all GPL 2.0 or greater.  Although glib normally has
   extensive dependencies, all of them have been removed, as have parts
   of glib that are not strictly algorithms (such as string parsing).  To
   avoid autoconf/make troubles, the new parallel build system currently
   in experimental testing features a simple, elegant python autoconf
   replacement.  The extra build time for libcsage is minimal, and wall
   time often decreases due to the new parallel build system.  Finally,
   until testing is complete, parallel build and glib are orthogonal and
   can exist in parallel to all existing Sage code, making review
   significantly easier.
   Right now there are no easy to use C libraries included with sage.
   Using c++ stl requires extremely painful Cython wrapping.  Therefore
   everywhere pure performance is needed, ad hoc solutions are often used
   (see integer.pyx, etc), which often introduce subtle and painful
   bugs.  Furthermore there are many places in Sage that could benefit
   from a unified slab allocator (as opposed to a pool which can only
   grow).  Finally the extensive symbolics modifications I am working on
   make use of glib (especially trees and lists) to enable very fast
   symbolic manipulations.  By using glib algorithms I avoid having to
   roll my own code that would require extensive manual review and
   debugging.  This code drop is big enough that Mabshoff would like a
   formal +1 vote, and I'd be happy to address any concerns.
  
   Mar 25 00:00:13 mabshoffyes. It isn't an spkg, but the code drop is
   large enought to warrent a vote.
   Mar 25 00:00:21 mabshoffYou can quote me on that.
   Mar 25 00:00:35 mabshoffYou should say *why* it is a good idea and
   *what* goodies it does provide.
   Mar 25 00:00:59 mabshoffSince it will only become useful after the
   switch to pbuild and doesn't
   Mar 25 00:01:21 mabshoffharm anything with the old build it also
   doesn't have an impact on the current
   Mar 25 00:01:24 mabshoffcodebase.
   Mar 25 00:01:31 mabshoffYou can quote me on that, too.
  
   --Gary
  
   
  



  


--~--~-~--~~~---~--~~
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: Glib algorithms #2436 vote

2008-03-26 Thread Martin Albrecht

On Wednesday 26 March 2008, Gary Furnish wrote:
 Trac #2436 adds the following algorithms from glib to libcsage:
 Multiplatform threads
 Thread pools
 Asynchronous Queues
 Memory Slices
 Doubly and Singly linked lists
 Queues
 Sequences
 Hash Tables
 Arrays
 Balanced Binary Trees
 N-ary Trees
 Quarks

I am all for that, so +1.

 In particular it features a slab memory allocator based on:
 http://citeseer.ist.psu.edu/bonwick94slab.html
 http://citeseer.ist.psu.edu/bonwick01magazines.html
 The documentation for glib is found at
 http://library.gnome.org/devel/glib/2.14/glib-Memory-Slices.html The files
 are all GPL 2.0 or greater.  Although glib normally has
 extensive dependencies, all of them have been removed, as have parts
 of glib that are not strictly algorithms (such as string parsing).  To
 avoid autoconf/make troubles, the new parallel build system currently
 in experimental testing features a simple, elegant python autoconf
 replacement.  The extra build time for libcsage is minimal, and wall
 time often decreases due to the new parallel build system.  Finally,
 until testing is complete, parallel build and glib are orthogonal and
 can exist in parallel to all existing Sage code, making review
 significantly easier.
 Right now there are no easy to use C libraries included with sage.
 Using c++ stl requires extremely painful Cython wrapping.  Therefore
 everywhere pure performance is needed, ad hoc solutions are often used
 (see integer.pyx, etc), which often introduce subtle and painful
 bugs. 

This was already discussed at

http://groups.google.com/group/sage-devel/browse_thread/thread/a25146f45a5c6b97/3e996f8485802a01

and IMHO the outcome was that it is unclear whether GLIB can improve the 
integer.pyx experience. There is a reason integer.pyx looks like it does 
(avoiding going up the inheritance tree etc.).

 Furthermore there are many places in Sage that could benefit 
 from a unified slab allocator (as opposed to a pool which can only
 grow).  

Sage already ships several Slab allocators: PyMem_Malloc, OMalloc, Givaro's 
slab allocator etc. Sure Sage could use those more but adding another slab 
allocator won't help, unless:
 - it is easier to debug, develop with, enable/disable, etc and/or
 - it offers better performance.

Cheers,
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] sage question, possible contribution to project

2008-03-26 Thread dean moore
At this link, http://sagemath.org/doc/html/prog/node1.htmlwe have,

  Absolutely *everybody* who uses *Sage* should contribute something back to
*Sage* at some point.

I have had my fun with sage, and debated, How can I return something to the
community, however small?  I
submitted a couple documentation fixes, but probably to the wrong place.  A
few questions led to tickets  bug
fixes.  I have a trac account at *dmoore*.

Had time when too distracted to submit code / fixes / whatever, but a bit
more time now.

I recently was fiddling with something that required the area of a
polygonhttp://mathworld.wolfram.com/PolygonArea.html,
which does not seem implemented
that I can find -- this
linkhttp://www.google.com/search?hl=enlr=as_qdr=allq=polygon+area++site%3Ahttp%3A%2F%2Fsagemath.orgbtnG=Searchdoesn't
return much.

I wrote some code to do it.  While fairly simple, perhaps others will find
it useful.  It's not too hard to code
a few other things as, say, centroid.  A start -- the usual observations of
the construction of Rome.  Or if
other things are hotter,' so be it.

Wasn't sure where such should go.  Maybe 
http://www.sagemath.org/hg/sage-main/file/211b127eab5d/sage/plot/graph.py ?
Read through the coding guide  gave what I thought a basic format to my
function, possible gotchas!, what not.

Of perhaps some note in a different department, I recently posted something
at published workbooks https://www.sagenb.org/pub, but there
is an Internal Server Error when I try to go there.  The error has been
there a good while.  Probably deserves to
be looked at.

Thanks for ideas.

Dean

--~--~-~--~~~---~--~~
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 2.11.alpha1 released!

2008-03-26 Thread Justin C. Walker


On Mar 26, 2008, at 24:27 , mabshoff wrote:

 On Mar 26, 5:45 am, Justin C. Walker [EMAIL PROTECTED] wrote:

 On Mar 25, 2008, at 19:16 , mabshoff wrote:
[snip]
 more GMP trouble. Can you post the output from uname -r | sed s/9\.
 [0-9]\.0/9\.0\.0/ and a uname -a.

 $ uname -a
 Darwin zippo 9.2.2 Darwin Kernel Version 9.2.2: Tue Mar  4 21:17:34
 PST 2008; root:xnu-1228.4.31~1/RELEASE_I386 i386
 $ uname -r | sed s/9\.[0-9]\.0/9\.0\.0/
 9.2.2

 Ok, this is the culprit. It will need fixes all over the place and
 this time we might as well do it right.

Oh, what the heck.  Do it wrong for a couple of more times :-}

 We haven't touched either the GMP nor the FLINT package in a while,
 so did you upgrade your OSX or XCode version by any chance?

 Nope; There hasn't been a (public) update to Xcode for a while.

 A third possibility is that FLINT is all the sudden picking up a  
 stray
 gmp.h. Can you check your system?

 I have two versions of GMP installed: one I built recently in /usr/
 local, and one built as part of MacPorts in /opt/local.

 I moved both out of the way, and rebuilt from scratch: same result.

 Yeah, the culprit is the above regexp. I will fix those before
 2.11.alpha2. Sorry for the mess. I made this #2672 - a blocker for
 2.11.

You certainly don't have to apologize.  This is why god invented the  
alpha cycle :-}

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: Sage 2.11.alpha1 released!

2008-03-26 Thread mabshoff



On Mar 26, 4:43 pm, Justin C. Walker [EMAIL PROTECTED] wrote:
 On Mar 26, 2008, at 24:27 , mabshoff wrote:


  Ok, this is the culprit. It will need fixes all over the place and
  this time we might as well do it right.

 Oh, what the heck.  Do it wrong for a couple of more times :-}


Poking around it isn't too bad, so the fixes will be in alpha2.

  We haven't touched either the GMP nor the FLINT package in a while,
  so did you upgrade your OSX or XCode version by any chance?

  Nope; There hasn't been a (public) update to Xcode for a while.

  A third possibility is that FLINT is all the sudden picking up a  
  stray
  gmp.h. Can you check your system?

  I have two versions of GMP installed: one I built recently in /usr/
  local, and one built as part of MacPorts in /opt/local.

  I moved both out of the way, and rebuilt from scratch: same result.

  Yeah, the culprit is the above regexp. I will fix those before
  2.11.alpha2. Sorry for the mess. I made this #2672 - a blocker for
  2.11.

 You certainly don't have to apologize.  This is why god invented the  
 alpha cycle :-}

Yeah, but that mean that any Sage release that is supposed to work
will so far only work up to 10.5.1. I didn't know that the tiny
version number of OSX can be unequal to zero.

 Justin

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] Sage Journal

2008-03-26 Thread Harald Schilly

Hello all

I had the idea of publishing an online Journal with articles about
Sage - a mixture between blogs and a real journal. This could be an
excellent vehicle to promote Sage and the ideas behind to a bigger
audience.

This could be about:
* how to use Sage, explaining functionalities, ...
* new features, new packages
* changes
* article for new users, introduction
* algorithms, explain some details
* developer's corner: something for those who actually program Sage or
with Sage
* teaching: how to teach with Sage
* politics/philosophy/community/...
* events

I've written down my ideas on that page:
http://wiki.sagemath.org/SageJournal

Have a look and decide if you want to write an article, because that's
the most important ingredient of all !!!

greetings, Harald (designated editor)
--~--~-~--~~~---~--~~
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 question, possible contribution to project

2008-03-26 Thread Joel B. Mohler

On Wednesday 26 March 2008 11:34, dean moore wrote:
 At this link, http://sagemath.org/doc/html/prog/node1.htmlwe have,

   Absolutely *everybody* who uses *Sage* should contribute something back
 to *Sage* at some point.

 I have had my fun with sage, and debated, How can I return something to
 the community, however small?  I
 submitted a couple documentation fixes, but probably to the wrong place.  A
 few questions led to tickets  bug
 fixes.  I have a trac account at *dmoore*.

I can't speak for the rest of the developers, but as someone who has submitted 
a decent number of patches and has more in the works, I don't at all think 
you should let that sentence about everybody contributing make you feel 
guilty.  Personally, I'd be much more happy with a statement like:
   Absolutely *everybody* who uses *Sage* is in a position to contribute 
something back to *Sage* at some point -- bug reports, mailing list 
participation, evangelism, and simple patches are all meaningful 
contributions.

However, even if you do none of those little things, it is virtually 
inconceivable that you can be a heavy user of opensource with-out doing at 
least some evangelism or bug reporting.  If you pay me back for my patches 
by doing something for another totally unrelated package that I use (or maybe 
don't happen to use), I feel well-paid.

And, well shoot, I've already been paid by learning so much from the other 
sage developers.  Helping sage development is worth it simply for the 
educational value.

I realize that guilt is probably not your main motivation, but I'm just 
sharing my thoughts as a long time user of opensource software who also 
doesn't feel like I've contributed back as many good things as I've enjoyed 
myself.

--
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: Sage 2.11.alpha1 released!

2008-03-26 Thread Justin C. Walker


On Mar 26, 2008, at 09:15 , mabshoff wrote:

 On Mar 26, 4:43 pm, Justin C. Walker [EMAIL PROTECTED] wrote:
 On Mar 26, 2008, at 24:27 , mabshoff wrote:
[snip]
 Yeah, the culprit is the above regexp. I will fix those before
 2.11.alpha2. Sorry for the mess. I made this #2672 - a blocker for
 2.11.
 You certainly don't have to apologize.  This is why god invented the
 alpha cycle :-}
 Yeah, but that mean that any Sage release that is supposed to work
 will so far only work up to 10.5.1. I didn't know that the tiny
 version number of OSX can be unequal to zero.

This sed script must be new, then.  Here's what I get from that macro  
on 10.4.11:
8.11.1

Note: this is how the Mac OS X versions and darwin/xnu versions line up:
10.5.2
   9.2.2
10.4.11
   8.11.1

The third position in the kernel version is independent of the 3rd  
position in the Mac OS X version.  For the kernel, the third position  
corresponds to a (released) version of the xnu kernel.

Thus, as of 10.5.2, there have been three 10.5 kernels, 9.2.0,  
9.2.1, and 9.2.2).  It's possible that not everyone will see a given  
point-release of a kernel (e.g., when a major new platform is  
released, it may require a point-release of the kernel).  Note also  
that these positions need not be single digits.  We've seen that in  
10.4 (the minor Mac OS X releases 10.4.10 and 10.4.11 broke a number  
of software hacks that expected only single digits).

Justin

--
Justin C. Walker, Curmudgeon at Large
Institute for the Absorption of Federal Funds
---
If it weren't for carbon-14, I wouldn't date at all.
---



--~--~-~--~~~---~--~~
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: Glib algorithms #2436 vote

2008-03-26 Thread Robert Miller

On Mar 25, 5:12 pm, Gary Furnish [EMAIL PROTECTED] wrote:
 Trac #2436 adds the following algorithms from glib to libcsage:
 Multiplatform threads
 Thread pools
 Asynchronous Queues
 Memory Slices
 Doubly and Singly linked lists
 Queues
 Sequences
 Hash Tables
 Arrays
 Balanced Binary Trees
 N-ary Trees
 Quarks

+1, I've been waiting for this!
--~--~-~--~~~---~--~~
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: Glib algorithms #2436 vote

2008-03-26 Thread William Stein

Is any of the code gpl v3+ only?

How difficult will it be to update our version whenever upstream
changes?  Do only you know how to do this?

Why put this in c_lib instead of a separate spkg called glib-min?
Couldn't such a package be useful outside of sage?

Any chance the glib people might see this as a fork?



On 3/26/08, Robert Miller [EMAIL PROTECTED] wrote:

 On Mar 25, 5:12 pm, Gary Furnish [EMAIL PROTECTED] wrote:
  Trac #2436 adds the following algorithms from glib to libcsage:
  Multiplatform threads
  Thread pools
  Asynchronous Queues
  Memory Slices
  Doubly and Singly linked lists
  Queues
  Sequences
  Hash Tables
  Arrays
  Balanced Binary Trees
  N-ary Trees
  Quarks

 +1, I've been waiting for this!
 



-- 
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: Sage 2.11.alpha1 released!

2008-03-26 Thread mabshoff



On Mar 26, 5:53 pm, Justin C. Walker [EMAIL PROTECTED] wrote:
 On Mar 26, 2008, at 09:15 , mabshoff wrote:



  On Mar 26, 4:43 pm, Justin C. Walker [EMAIL PROTECTED] wrote:
  On Mar 26, 2008, at 24:27 , mabshoff wrote:
 [snip]
  Yeah, the culprit is the above regexp. I will fix those before
  2.11.alpha2. Sorry for the mess. I made this #2672 - a blocker for
  2.11.
  You certainly don't have to apologize.  This is why god invented the
  alpha cycle :-}
  Yeah, but that mean that any Sage release that is supposed to work
  will so far only work up to 10.5.1. I didn't know that the tiny
  version number of OSX can be unequal to zero.

 This sed script must be new, then.  Here's what I get from that macro  
 on 10.4.11:
     8.11.1

 Note: this is how the Mac OS X versions and darwin/xnu versions line up:
     10.5.2
        9.2.2
     10.4.11
        8.11.1

 The third position in the kernel version is independent of the 3rd  
 position in the Mac OS X version.  For the kernel, the third position  
 corresponds to a (released) version of the xnu kernel.

 Thus, as of 10.5.2, there have been three 10.5 kernels, 9.2.0,  
 9.2.1, and 9.2.2).  It's possible that not everyone will see a given  
 point-release of a kernel (e.g., when a major new platform is  
 released, it may require a point-release of the kernel).  

Thanks for providing that info. I didn't know too many details in that
area.

Note also  
 that these positions need not be single digits.  We've seen that in  
 10.4 (the minor Mac OS X releases 10.4.10 and 10.4.11 broke a number  
 of software hacks that expected only single digits).

Yeah, that is exactly what my concern is. The current hack ought to be
good for another six months, but I am sure it will bite us in the ass
at some point. I plan to use avail.h or something which should be much
cleaner.

 Justin

Cheers,

Michael

 --
 Justin C. Walker, Curmudgeon at Large
 Institute for the Absorption of Federal Funds
 ---
 If it weren't for carbon-14, I wouldn't date at all.
 ---
--~--~-~--~~~---~--~~
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 Journal

2008-03-26 Thread Burcin Erocal

Hello,

On Wed, 26 Mar 2008 09:32:36 -0700 (PDT)
Harald Schilly [EMAIL PROTECTED] wrote:

 I had the idea of publishing an online Journal with articles about
 Sage - a mixture between blogs and a real journal. This could be an
 excellent vehicle to promote Sage and the ideas behind to a bigger
 audience.
 
 This could be about:
 * how to use Sage, explaining functionalities, ...
 * new features, new packages
 * changes
 * article for new users, introduction
 * algorithms, explain some details
 * developer's corner: something for those who actually program Sage or
 with Sage
 * teaching: how to teach with Sage
 * politics/philosophy/community/...
 * events
 
 I've written down my ideas on that page:
 http://wiki.sagemath.org/SageJournal

Is it possible to call it Sage Monthly or Quarterly, so that it is not
confused with JSage?

Burcin

--~--~-~--~~~---~--~~
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: Glib algorithms #2436 vote

2008-03-26 Thread mabshoff



On Mar 26, 6:02 pm, William Stein [EMAIL PROTECTED] wrote:
 Is any of the code gpl v3+ only?

No.

 How difficult will it be to update our version whenever upstream
 changes?  Do only you know how to do this?

Not particularly hard.

 Why put this in c_lib instead of a separate spkg called glib-min?
 Couldn't such a package be useful outside of sage?

It is easiest if we put it into libcsage.

 Any chance the glib people might see this as a fork?

Not really. We don't want to deal with all the i18n crap and other
dependencies.  If the glib people would provide a stripped down
version of glib we should switch.

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: Sage Journal

2008-03-26 Thread William Stein

On Wed, Mar 26, 2008 at 10:08 AM, Burcin Erocal [EMAIL PROTECTED] wrote:

  Hello,


  On Wed, 26 Mar 2008 09:32:36 -0700 (PDT)
  Harald Schilly [EMAIL PROTECTED] wrote:

   I had the idea of publishing an online Journal with articles about
   Sage - a mixture between blogs and a real journal. This could be an
   excellent vehicle to promote Sage and the ideas behind to a bigger
   audience.
  
   This could be about:
   * how to use Sage, explaining functionalities, ...
   * new features, new packages
   * changes
   * article for new users, introduction
   * algorithms, explain some details
   * developer's corner: something for those who actually program Sage or
   with Sage
   * teaching: how to teach with Sage
   * politics/philosophy/community/...
   * events
  
   I've written down my ideas on that page:
   http://wiki.sagemath.org/SageJournal

  Is it possible to call it Sage Monthly or Quarterly, so that it is not
  confused with JSage?

Yes, the name should either change as you suggest, or
this should somehow merge with JSage, and JSage itself
would become less academic.  (Note that JSage hasn't really
started yet, in any real sense.)Maybe something like Harald
is proposing is a better direction to go in that the current
JSage direction (which is to be purely very academic and
research-oriented).

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: Glib algorithms #2436 vote

2008-03-26 Thread William Stein

On Wed, Mar 26, 2008 at 10:09 AM, mabshoff
[EMAIL PROTECTED] wrote:



  On Mar 26, 6:02 pm, William Stein [EMAIL PROTECTED] wrote:
   Is any of the code gpl v3+ only?

  No.

That's good.



   How difficult will it be to update our version whenever upstream
   changes?  Do only you know how to do this?

  Not particularly hard.

You didn't answer my second question.

   Why put this in c_lib instead of a separate spkg called glib-min?
   Couldn't such a package be useful outside of sage?

  It is easiest if we put it into libcsage.

That's not a good enough answer.   Until now almost all code in libcsage and
the main sage library has been new code we've written -- except a few
exceptions,
where we greatly regretted them greatly and moved the code out later.
So from experience I'm very opposed to this code being in c_lib.

I vote -1 to this code going into sage unless:
   (1) it is put in a separate spkg, and
   (2) the process of extracting glib-min from the official glib
tarball is automated.


  -- 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 2.11.alpha1 released!

2008-03-26 Thread William Stein

On Wed, Mar 26, 2008 at 9:15 AM, mabshoff
[EMAIL PROTECTED] wrote:



  On Mar 26, 4:43 pm, Justin C. Walker [EMAIL PROTECTED] wrote:
   On Mar 26, 2008, at 24:27 , mabshoff wrote:
  
  

   Ok, this is the culprit. It will need fixes all over the place and
this time we might as well do it right.
  
   Oh, what the heck.  Do it wrong for a couple of more times :-}
  

  Poking around it isn't too bad, so the fixes will be in alpha2.


We haven't touched either the GMP nor the FLINT package in a while,
so did you upgrade your OSX or XCode version by any chance?
  
Nope; There hasn't been a (public) update to Xcode for a while.
  
A third possibility is that FLINT is all the sudden picking up a
stray
gmp.h. Can you check your system?
  
I have two versions of GMP installed: one I built recently in /usr/
local, and one built as part of MacPorts in /opt/local.
  
I moved both out of the way, and rebuilt from scratch: same result.
  
Yeah, the culprit is the above regexp. I will fix those before
2.11.alpha2. Sorry for the mess. I made this #2672 - a blocker for
2.11.
  
   You certainly don't have to apologize.  This is why god invented the
   alpha cycle :-}

  Yeah, but that mean that any Sage release that is supposed to work
  will so far only work up to 10.5.1. I didn't know that the tiny
  version number of OSX can be unequal to zero.

Yep, that's a serious problem.   I have tried about 4 times to upgrade my
laptop from 10.5.1 to 10.5.2, but failed every time.  The last time, I just left
it upgrading before I went to sleep, and 8 hours later it was still
sitting there
upgrading.  Is it supposed to take that long?  I'll try upgrading my desktop
instead, so we have at least one 10.5.2 machine in the regular testing cycle.

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: Glib algorithms #2436 vote

2008-03-26 Thread mabshoff



On Mar 26, 6:43 pm, William Stein [EMAIL PROTECTED] wrote:
 On Wed, Mar 26, 2008 at 10:09 AM, mabshoff

 [EMAIL PROTECTED] wrote:

   On Mar 26, 6:02 pm, William Stein [EMAIL PROTECTED] wrote:
    Is any of the code gpl v3+ only?

   No.

 That's good.



    How difficult will it be to update our version whenever upstream
    changes?  Do only you know how to do this?

   Not particularly hard.

 You didn't answer my second question.

Gary did it and I didn't pay much attention to it. I assume it will be
documented. I don't consider such a thing hard once it has been
documented.

    Why put this in c_lib instead of a separate spkg called glib-min?
    Couldn't such a package be useful outside of sage?

   It is easiest if we put it into libcsage.

 That's not a good enough answer.   Until now almost all code in libcsage and
 the main sage library has been new code we've written -- except a few
 exceptions,
 where we greatly regretted them greatly and moved the code out later.
 So from experience I'm very opposed to this code being in c_lib.

 I vote -1 to this code going into sage unless:
    (1) it is put in a separate spkg, and

We can certainly do that.

    (2) the process of extracting glib-min from the official glib
 tarball is automated.

That is unlikely to happen since it requires manual interaction. It
will break in the next release in six months and writing automated
tools will take longer than actually doing the work in the first
place.

   -- 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] hg churn and contributions

2008-03-26 Thread Jason Grout

Mercurial 1.0 is out now and one of the new standard extensions is the 
churn command, which apparently gives the numbers of lines of changed 
code per person (well, per email address).  I thought the output (see 
below) was interesting.  This is as of 2.10.4 and a few extra patches on 
top of it.

We all still have a *long* way to go to catch up to William.  He is 
quite literally off the charts (his bar wraps to the next line in my 
email program).


Good job everyone!


P.S. Another really cool feature in 1.0 is the qrecord command, which 
brings the darcs-style interactive commits to mercurial queues (so you 
can include just part of the changes in a file in a patch).

Jason



[EMAIL PROTECTED]  424564 
**
[EMAIL PROTECTED]  138071 **
[EMAIL PROTECTED] 111518 
[EMAIL PROTECTED]   85543 *
[EMAIL PROTECTED]   76713 
[EMAIL PROTECTED]  74154 
[EMAIL PROTECTED]69768 ***
[EMAIL PROTECTED]64563 **
[EMAIL PROTECTED]  61706 **
[EMAIL PROTECTED]  36213 ***
[EMAIL PROTECTED]32169 ***
[EMAIL PROTECTED]  30247 ***
[EMAIL PROTECTED]   28010 ***
[EMAIL PROTECTED]  21594 **
[EMAIL PROTECTED]  20447 **
[EMAIL PROTECTED] 17300 *
[EMAIL PROTECTED]15626 *
[EMAIL PROTECTED]   15338 *
[EMAIL PROTECTED]   14718 *
[EMAIL PROTECTED]9135
[EMAIL PROTECTED]   8580
Emily Kirkman   8475
[EMAIL PROTECTED] 8164
[EMAIL PROTECTED]   7378
[EMAIL PROTECTED]6936
[EMAIL PROTECTED]   5712
[EMAIL PROTECTED]  5045
[EMAIL PROTECTED]  4175
[EMAIL PROTECTED]   3475
[EMAIL PROTECTED]3286
[EMAIL PROTECTED] 3098
[EMAIL PROTECTED]2870
[EMAIL PROTECTED]   2619
[EMAIL PROTECTED] 2445
[EMAIL PROTECTED]   2372
[EMAIL PROTECTED]  2330
[EMAIL PROTECTED]2279
[EMAIL PROTECTED]2167
[EMAIL PROTECTED]   1982
[EMAIL PROTECTED]  1527
[EMAIL PROTECTED]1366
[EMAIL PROTECTED]   1333
[EMAIL PROTECTED] 1316
[EMAIL PROTECTED]   1282
[EMAIL PROTECTED]   1172
[EMAIL PROTECTED]1099
[EMAIL PROTECTED]   1090
[EMAIL PROTECTED] 1058
[EMAIL PROTECTED]  1043
[EMAIL PROTECTED]  1012
[EMAIL PROTECTED] 955
cremona  830
[EMAIL PROTECTED] 543
[EMAIL PROTECTED]513
[EMAIL PROTECTED]   513
[EMAIL PROTECTED]   503
[EMAIL PROTECTED]496
[EMAIL PROTECTED]   396
[EMAIL PROTECTED] 365
[EMAIL PROTECTED]332
Jason Grout  319
[EMAIL PROTECTED]   308
[EMAIL PROTECTED]   277
[EMAIL PROTECTED] 272
[EMAIL PROTECTED]244
[EMAIL PROTECTED]236
[EMAIL PROTECTED] 227
[EMAIL PROTECTED] 211
[EMAIL PROTECTED]   210
[EMAIL PROTECTED]   199
[EMAIL PROTECTED]  189
[EMAIL PROTECTED]   180
[EMAIL PROTECTED]  177
[EMAIL PROTECTED] 174
bill,[EMAIL PROTECTED]  173
[EMAIL PROTECTED]169
[EMAIL PROTECTED]166
[EMAIL PROTECTED]  165
[EMAIL PROTECTED]  

[sage-devel] another matrix() corner case for sparse matrices

2008-03-26 Thread Jason Grout

Ryan Hinton brought up a good point at #2651:

Currently, matrix(3,{(1,1): 2}) gives the 3x2 sparse matrix

[0 0]
[0 2]
[0 0]


However, for other cases, if we specify just the number of rows, the 
returned matrix is square (except when we are giving all the entries of 
the matrix and there aren't enough entries).  So:

Should the above command return the following instead?

[0 0 0]
[0 2 0]
[0 0 0]

Sorry for bringing up the nitpicky corner cases, but since matrix() is 
used in a huge number of things, we don't want to mess something up when 
we replace the constructor.

Jason


--~--~-~--~~~---~--~~
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 Journal

2008-03-26 Thread Michael

Fantastic idea, Harald!

Along these lines, how about a Sage User Group?  We could hold it on
Second Life or use Skype and screen sharing software.

--~--~-~--~~~---~--~~
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 2.11.alpha1 released!

2008-03-26 Thread Justin C. Walker


On Mar 26, 2008, at 10:37 , William Stein wrote:

 On Wed, Mar 26, 2008 at 9:15 AM, mabshoff
 [EMAIL PROTECTED] wrote:
[snip]
 Yeah, but that mean that any Sage release that is supposed to work
 will so far only work up to 10.5.1. I didn't know that the tiny
 version number of OSX can be unequal to zero.

 Yep, that's a serious problem.   I have tried about 4 times to  
 upgrade my
 laptop from 10.5.1 to 10.5.2, but failed every time.  The last time,  
 I just left
 it upgrading before I went to sleep, and 8 hours later it was still
 sitting there
 upgrading.  Is it supposed to take that long?  I'll try upgrading  
 my desktop
 instead, so we have at least one 10.5.2 machine in the regular  
 testing cycle.

That's really strange.  I've been through the 10.5.2 upgrade on two  
different systems, with no problems.  Well, no problems that made the  
move from short- to medium-term memory :-}.

You were just doing the normal software update, and the software  
uprade window was stuck?  Or did it get beyond that to restart/install/ 
reboot stage?

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: another matrix() corner case for sparse matrices

2008-03-26 Thread William Stein

On Wed, Mar 26, 2008 at 11:01 AM, Jason Grout
[EMAIL PROTECTED] wrote:

  Ryan Hinton brought up a good point at #2651:

  Currently, matrix(3,{(1,1): 2}) gives the 3x2 sparse matrix

  [0 0]
  [0 2]
  [0 0]


  However, for other cases, if we specify just the number of rows, the
  returned matrix is square (except when we are giving all the entries of
  the matrix and there aren't enough entries).  So:

  Should the above command return the following instead?

  [0 0 0]
  [0 2 0]
  [0 0 0]

  Sorry for bringing up the nitpicky corner cases, but since matrix() is
  used in a huge number of things, we don't want to mess something up when
  we replace the constructor.

I very strongly agree that the output of matrix(3,{(1,1): 2})  should be the
sparse matrix:
 [0 0 0]
 [0 2 0]
 [0 0 0]

BTW, there should be an example in the docstring for matrix that illustrates
how to make a dense matrix given a dictionary as input.  E.g.,

sage: matrix(2,{(1,1):5},sparse=False).parent()
Full MatrixSpace of 2 by 2 dense matrices over Integer Ring

 -- 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 2.11.alpha1 released!

2008-03-26 Thread William Stein

On Wed, Mar 26, 2008 at 11:05 AM, Justin C. Walker [EMAIL PROTECTED] wrote:


  On Mar 26, 2008, at 10:37 , William Stein wrote:
  
   On Wed, Mar 26, 2008 at 9:15 AM, mabshoff
   [EMAIL PROTECTED] wrote:
  [snip]

  Yeah, but that mean that any Sage release that is supposed to work
   will so far only work up to 10.5.1. I didn't know that the tiny
   version number of OSX can be unequal to zero.
  
   Yep, that's a serious problem.   I have tried about 4 times to
   upgrade my
   laptop from 10.5.1 to 10.5.2, but failed every time.  The last time,
   I just left
   it upgrading before I went to sleep, and 8 hours later it was still
   sitting there
   upgrading.  Is it supposed to take that long?  I'll try upgrading
   my desktop
   instead, so we have at least one 10.5.2 machine in the regular
   testing cycle.

  That's really strange.  I've been through the 10.5.2 upgrade on two
  different systems, with no problems.  Well, no problems that made the
  move from short- to medium-term memory :-}.

  You were just doing the normal software update, and the software
  uprade window was stuck?  Or did it get beyond that to restart/install/
  reboot stage?


Thanks for doing Apple tech support on sage-devel :-).   Anyway, if this
goes beyond 2 messages it should go offlist.   I got the problem during
the install stage of restart/install/reboot.The progress meter doesn't
move after about 6 hours.Maybe it's a networking problem -- I'll try
using a wired network and see if things work.  Also, is there any way
to get debugging info.

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: another matrix() corner case for sparse matrices

2008-03-26 Thread didier deshommes

On Wed, Mar 26, 2008 at 2:01 PM, Jason Grout
[EMAIL PROTECTED] wrote:

  Ryan Hinton brought up a good point at #2651:

  Currently, matrix(3,{(1,1): 2}) gives the 3x2 sparse matrix

  [0 0]
  [0 2]
  [0 0]


  However, for other cases, if we specify just the number of rows, the
  returned matrix is square (except when we are giving all the entries of
  the matrix and there aren't enough entries).  So:

  Should the above command return the following instead?

  [0 0 0]
  [0 2 0]
  [0 0 0]

Yes, I think the matrix should be square way since that is the
behavior for dense matrices.

didier

--~--~-~--~~~---~--~~
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] Get Paid to work on the Sage Notebook all Summer

2008-03-26 Thread William Stein

Hi,

If you are a student and would really like to get paid to work on the
Sage Notebook all summer,
go to this web page and fill out an application

   
http://groups.google.com/group/google-summer-of-code-announce/web/guide-to-the-gsoc-web-app-for-student-applicants

Apply to the Python Software Foundation as mentoring organization.
Also, email me.   Your application
must be submitted by this coming Monday (March 31).

 -- William

-- 
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: Glib algorithms #2436 vote

2008-03-26 Thread didier deshommes

On Wed, Mar 26, 2008 at 1:52 PM, mabshoff
[EMAIL PROTECTED] wrote:



  On Mar 26, 6:43 pm, William Stein [EMAIL PROTECTED] wrote:
   On Wed, Mar 26, 2008 at 10:09 AM, mabshoff
  

  [EMAIL PROTECTED] wrote:
  
 On Mar 26, 6:02 pm, William Stein [EMAIL PROTECTED] wrote:
  Is any of the code gpl v3+ only?
  
 No.
  
   That's good.
  
  
  
  How difficult will it be to update our version whenever upstream
  changes?  Do only you know how to do this?
  
 Not particularly hard.
  
   You didn't answer my second question.

  Gary did it and I didn't pay much attention to it. I assume it will be
  documented. I don't consider such a thing hard once it has been
  documented.


  Why put this in c_lib instead of a separate spkg called glib-min?
  Couldn't such a package be useful outside of sage?
  
 It is easiest if we put it into libcsage.
  
   That's not a good enough answer.   Until now almost all code in libcsage 
 and
   the main sage library has been new code we've written -- except a few
   exceptions,
   where we greatly regretted them greatly and moved the code out later.
   So from experience I'm very opposed to this code being in c_lib.
  
   I vote -1 to this code going into sage unless:
  (1) it is put in a separate spkg, and

  We can certainly do that.


  (2) the process of extracting glib-min from the official glib
   tarball is automated.

  That is unlikely to happen since it requires manual interaction. It
  will break in the next release in six months and writing automated
  tools will take longer than actually doing the work in the first
  place.

How frequent are the glib releases? If they're not that frequent, this
should less than an issue as long as Gary documents what he's done
somewhere :)

didier

 -- 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: Sage Journal

2008-03-26 Thread Harald Schilly

On Mar 26, 6:33 pm, William Stein [EMAIL PROTECTED] wrote:
 On Wed, Mar 26, 2008 at 10:08 AM, Burcin Erocal [EMAIL PROTECTED] wrote:
   Is it possible to call it Sage Monthly or Quarterly, so that it is not
   confused with JSage?

 Yes, the name should either change as you suggest,...

I've no problems about another name, this is one of my smallest
concerns and i'm not a dictator ;)
Sage News, Sage Newsletter, Sage Letters, Sage in the Print, Sage
Reader, Sage eLetters, Sage eNews, ... there are countless
possibilities.

Merging yes, a week ago when i first mentioned it on irc, i wasn't
aware of JSage. But I'm not the one who decides about its future.
possible as a subset of that journal idea? sure.

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: Glib algorithms #2436 vote

2008-03-26 Thread William Stein

On Wed, Mar 26, 2008 at 11:16 AM, didier deshommes [EMAIL PROTECTED] wrote:


  On Wed, Mar 26, 2008 at 1:52 PM, mabshoff
  [EMAIL PROTECTED] wrote:
  
  
  
On Mar 26, 6:43 pm, William Stein [EMAIL PROTECTED] wrote:
 On Wed, Mar 26, 2008 at 10:09 AM, mabshoff

  
[EMAIL PROTECTED] wrote:

   On Mar 26, 6:02 pm, William Stein [EMAIL PROTECTED] wrote:
Is any of the code gpl v3+ only?

   No.

 That's good.



How difficult will it be to update our version whenever upstream
changes?  Do only you know how to do this?

   Not particularly hard.

 You didn't answer my second question.
  
Gary did it and I didn't pay much attention to it. I assume it will be
documented. I don't consider such a thing hard once it has been
documented.
  
  
Why put this in c_lib instead of a separate spkg called glib-min?
Couldn't such a package be useful outside of sage?

   It is easiest if we put it into libcsage.

 That's not a good enough answer.   Until now almost all code in 
 libcsage and
 the main sage library has been new code we've written -- except a few
 exceptions,
 where we greatly regretted them greatly and moved the code out later.
 So from experience I'm very opposed to this code being in c_lib.

 I vote -1 to this code going into sage unless:
(1) it is put in a separate spkg, and
  
We can certainly do that.
  
  
(2) the process of extracting glib-min from the official glib
 tarball is automated.
  
That is unlikely to happen since it requires manual interaction. It
will break in the next release in six months and writing automated
tools will take longer than actually doing the work in the first
place.

  How frequent are the glib releases? If they're not that frequent, this
  should less than an issue as long as Gary documents what he's done
  somewhere :)

If you've been maintaining packages for Sage for three years, and expect
to be maintaining them for years to come, you'de view this as a much
bigger deal. It's really bad when there is a big chunk of code in Sage
that gets out of stream with up stream, but no easy way to resolve that
problem.

 -- 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-support] Re: modular forms bug(s)?

2008-03-26 Thread Craig Citro

Hey all,

(I'm cc'ing this to sage-devel, because I think there are people there
who care about modular forms who might not read sage-support.)

So I've also posted a patch on #2674, which actually fixes both of
these issues, as well as the fact that it currently is the case that
adding an element of CuspForms(22) to an element of ModularForms(22)
breaks.

Now, I agree with William's point here:

  Note that

   b[0] + 0

  and

   0 + b[0]

  should *not* work, since in each case that's a canonical coercion,
  and there is no natural map from ZZ (the parent of 0) into CuspForms(...)
  for any weight except 0.   In Sage coercions should not happen automatically
  unless they are in some way natural and well defined on the whole domain
  of the coercion (in this case ZZ).


However, the modular forms code isn't the culprit -- it just tries to
coerce in by calling the coercion code for the underlying free module.
Here's why this actually works:

sage: M = ZZ**3
sage: M(0)
(0, 0, 0)
sage: M(1) # goes boom


  There are some canonical coercions that one *should* have in the context
  of modular forms that aren't there, probably partly because this whole
  canonical
  coercions business was after I wrote the modular forms code.  Here's
  an example bug (=lack of a coercion that should be there):


  sage: b=CuspForms(22).basis()
  sage: sum(b, b[0].parent()(0))

This now works fine with the patch I posted to #2674.

Currently, there are no coercions between different levels; which such
coercions would people like to see? Coercing from Gamma0(M) to
Gamma0(Md) seems plausible, though one argue that it's a choice of one
specific degeneracy map. That is, it seems standard but not
canonical. I think it's the same as asking for a natural map from
ZZ['x'] to ZZ['y']. Of course, this works in Sage, so maybe the above
map should, too. Maybe also maps from Gamma0 to Gamma1 and GammaH? And
GammaH to Gamma1?

Which maps seem reasonable to people? Jay, are there any of these that
you would expect to work that don't?

-cc

--~--~-~--~~~---~--~~
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] mercurial -- plain text -- mercurial

2008-03-26 Thread William Stein

Hi Jason (or anybody),

Does anybody have a clue if it is possible to take a directory (e.g.,
devel/sage/) with an .hg repo directory
in it, and do the following:

  (1) export everything in the .hg repo to something (perhaps a ton of
stuff) in plain text format,
  (2) delete .hg
  (3) do something that recovers the .hg directory from the output of (1).

Note that just doing hg_sage.export([0..1]), where say 1 is
the tip, doesn't work, because
that looses all information about branching, etc., hence fails completely.

If mercurial can't do the above, that is a _very_ serious problem for
the longterm viability of
Mercurial at least for Sage.  So any ideas how to do the above?

The reason for doing (1) -- (3) is that it is possible to scan an .hg
directory with antivirus tools.
Thus something silly like base64-encode a tarball of .hg won't work.

 -- william

-- 
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: Glib algorithms #2436 vote

2008-03-26 Thread Gary Furnish
Honestly, independent of the spkg vs libcsage issue, which is really an
issue of semantics in my opinion, Sage has no high speed implementations of
C algorithms.  Sage can not escape this forever.  Either someone will have
to write their own at some point or we can use glib as a starting block.  It
is a big chunk of code, but Sage needs fast lists, hash tables, etc.  Using
glib as a starting point dramatically reduces debugging time, and is
therefore preferable.  I don't see how blocking a glib patch because of
maintenance issues really helps solve this problem in the long run.  Is it
really preferable that I code up custom versions of the things so that I can
have fast symbolic implementations?

Most of the bloat in glib is internationaliztaion, which is not included in
this patch.  The parts that are included are simple enough and well
documented enough (either in the code or in glib documents) that anyone
should be able to easily maintain it.  Furthermore, I intend to help
maintain the C algorithms.  I fully intend to work on them actively if their
speed is not sufficient.  Making a seperate spkg dramatically increases the
difficulty of active development.

On Wed, Mar 26, 2008 at 12:26 PM, William Stein [EMAIL PROTECTED] wrote:


 On Wed, Mar 26, 2008 at 11:16 AM, didier deshommes [EMAIL PROTECTED]
 wrote:
 
 
   On Wed, Mar 26, 2008 at 1:52 PM, mabshoff
   [EMAIL PROTECTED] wrote:
   
   
   
 On Mar 26, 6:43 pm, William Stein [EMAIL PROTECTED] wrote:
  On Wed, Mar 26, 2008 at 10:09 AM, mabshoff
 
   
 [EMAIL PROTECTED] wrote:
 
On Mar 26, 6:02 pm, William Stein [EMAIL PROTECTED] wrote:
 Is any of the code gpl v3+ only?
 
No.
 
  That's good.
 
 
 
 How difficult will it be to update our version whenever
 upstream
 changes?  Do only you know how to do this?
 
Not particularly hard.
 
  You didn't answer my second question.
   
 Gary did it and I didn't pay much attention to it. I assume it will
 be
 documented. I don't consider such a thing hard once it has been
 documented.
   
   
 Why put this in c_lib instead of a separate spkg called
 glib-min?
 Couldn't such a package be useful outside of sage?
 
It is easiest if we put it into libcsage.
 
  That's not a good enough answer.   Until now almost all code in
 libcsage and
  the main sage library has been new code we've written -- except a
 few
  exceptions,
  where we greatly regretted them greatly and moved the code out
 later.
  So from experience I'm very opposed to this code being in c_lib.
 
  I vote -1 to this code going into sage unless:
 (1) it is put in a separate spkg, and
   
 We can certainly do that.
   
   
 (2) the process of extracting glib-min from the official glib
  tarball is automated.
   
 That is unlikely to happen since it requires manual interaction. It
 will break in the next release in six months and writing automated
 tools will take longer than actually doing the work in the first
 place.
 
   How frequent are the glib releases? If they're not that frequent, this
   should less than an issue as long as Gary documents what he's done
   somewhere :)

 If you've been maintaining packages for Sage for three years, and expect
 to be maintaining them for years to come, you'de view this as a much
 bigger deal. It's really bad when there is a big chunk of code in Sage
 that gets out of stream with up stream, but no easy way to resolve that
 problem.

  -- 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: hg churn and contributions

2008-03-26 Thread William Stein

On Wed, Mar 26, 2008 at 10:55 AM, Jason Grout
[EMAIL PROTECTED] wrote:

  Mercurial 1.0 is out now and one of the new standard extensions is the
  churn command, which apparently gives the numbers of lines of changed
  code per person (well, per email address).  I thought the output (see
  below) was interesting.  This is as of 2.10.4 and a few extra patches on
  top of it.

Wow, that's pretty cool.  We need to get Mercurial 1.0 into Sage asap. :-)


  We all still have a *long* way to go to catch up to William.  He is
  quite literally off the charts (his bar wraps to the next line in my
  email program).

Well I don't have a long way to go to catch up to William :-).
By the way, the Tornaria line below is almost all me as well  -- that was from
when he checked all my code into his darcs repository under his name...



  Good job everyone!

Indeed!



  P.S. Another really cool feature in 1.0 is the qrecord command, which
  brings the darcs-style interactive commits to mercurial queues (so you
  can include just part of the changes in a file in a patch).

  Jason



  [EMAIL PROTECTED]  424564
  **
  [EMAIL PROTECTED]  138071 **
  [EMAIL PROTECTED] 111518 
  [EMAIL PROTECTED]   85543 *
  [EMAIL PROTECTED]   76713 
  [EMAIL PROTECTED]  74154 
  [EMAIL PROTECTED]69768 ***
  [EMAIL PROTECTED]64563 **
  [EMAIL PROTECTED]  61706 **
  [EMAIL PROTECTED]  36213 ***
  [EMAIL PROTECTED]32169 ***
  [EMAIL PROTECTED]  30247 ***
  [EMAIL PROTECTED]   28010 ***
  [EMAIL PROTECTED]  21594 **
  [EMAIL PROTECTED]  20447 **
  [EMAIL PROTECTED] 17300 *
  [EMAIL PROTECTED]15626 *
  [EMAIL PROTECTED]   15338 *
  [EMAIL PROTECTED]   14718 *
  [EMAIL PROTECTED]9135
  [EMAIL PROTECTED]   8580
  Emily Kirkman   8475
  [EMAIL PROTECTED] 8164
  [EMAIL PROTECTED]   7378
  [EMAIL PROTECTED]6936
  [EMAIL PROTECTED]   5712
  [EMAIL PROTECTED]  5045
  [EMAIL PROTECTED]  4175
  [EMAIL PROTECTED]   3475
  [EMAIL PROTECTED]3286
  [EMAIL PROTECTED] 3098
  [EMAIL PROTECTED]2870
  [EMAIL PROTECTED]   2619
  [EMAIL PROTECTED] 2445
  [EMAIL PROTECTED]   2372
  [EMAIL PROTECTED]  2330
  [EMAIL PROTECTED]2279
  [EMAIL PROTECTED]2167
  [EMAIL PROTECTED]   1982
  [EMAIL PROTECTED]  1527
  [EMAIL PROTECTED]1366
  [EMAIL PROTECTED]   1333
  [EMAIL PROTECTED] 1316
  [EMAIL PROTECTED]   1282
  [EMAIL PROTECTED]   1172
  [EMAIL PROTECTED]1099
  [EMAIL PROTECTED]   1090
  [EMAIL PROTECTED] 1058
  [EMAIL PROTECTED]  1043
  [EMAIL PROTECTED]  1012
  [EMAIL PROTECTED] 955
  cremona  830
  [EMAIL PROTECTED] 543
  [EMAIL PROTECTED]513
  [EMAIL PROTECTED]   513
  [EMAIL PROTECTED]   503
  [EMAIL PROTECTED]496
  [EMAIL PROTECTED]   396
  [EMAIL PROTECTED] 365
  [EMAIL PROTECTED]332
  Jason Grout  319
  [EMAIL PROTECTED]   308
  [EMAIL PROTECTED]   277
  [EMAIL PROTECTED] 272
  [EMAIL PROTECTED]244
  [EMAIL PROTECTED]236
  [EMAIL PROTECTED] 227
  [EMAIL PROTECTED] 211
  [EMAIL PROTECTED]   

[sage-devel] Re: hg churn and contributions

2008-03-26 Thread Joel B. Mohler

On Wednesday 26 March 2008 13:55, Jason Grout wrote:
 Mercurial 1.0 is out now and one of the new standard extensions is the
 churn command, which apparently gives the numbers of lines of changed
 code per person (well, per email address).  I thought the output (see
 below) was interesting.  This is as of 2.10.4 and a few extra patches on
 top of it.

The list below is certainly very cool and amusing to read, but I became quite 
suspicious of it's meaning when I saw me ([EMAIL PROTECTED]) that high on the 
list.  I don't think that's a very accurate representation of me ... I think 
I should be much lower.  I am kind of curious how I managed to score that 
many lines of code.

--
Joel

 [EMAIL PROTECTED]  424564
 **
 [EMAIL PROTECTED]  138071 **
 [EMAIL PROTECTED] 111518 
 [EMAIL PROTECTED]   85543 *
 [EMAIL PROTECTED]   76713 
 [EMAIL PROTECTED]  74154 
 [EMAIL PROTECTED]69768 ***
 [EMAIL PROTECTED]64563 **
 [EMAIL PROTECTED]  61706 **
 [EMAIL PROTECTED]  36213 ***
 [EMAIL PROTECTED]32169 ***
 [EMAIL PROTECTED]  30247 ***
 [EMAIL PROTECTED]   28010 *** 
 [EMAIL PROTECTED]  21594 **
 [EMAIL PROTECTED]  20447 **
 [EMAIL PROTECTED] 17300 *
 [EMAIL PROTECTED]15626 *
 [EMAIL PROTECTED]   15338 *
 [EMAIL PROTECTED]   14718 *
 [EMAIL PROTECTED]9135
 [EMAIL PROTECTED]   8580
 Emily Kirkman   8475
 [EMAIL PROTECTED] 8164
 [EMAIL PROTECTED]   7378
 [EMAIL PROTECTED]6936
 [EMAIL PROTECTED]   5712
 [EMAIL PROTECTED]  5045
 [EMAIL PROTECTED]  4175
 [EMAIL PROTECTED]   3475
 [EMAIL PROTECTED]3286
 [EMAIL PROTECTED] 3098
 [EMAIL PROTECTED]2870
 [EMAIL PROTECTED]   2619
 [EMAIL PROTECTED] 2445
 [EMAIL PROTECTED]   2372
 [EMAIL PROTECTED]  2330
 [EMAIL PROTECTED]2279
 [EMAIL PROTECTED]2167
 [EMAIL PROTECTED]   1982
 [EMAIL PROTECTED]  1527
 [EMAIL PROTECTED]1366
 [EMAIL PROTECTED]   1333
 [EMAIL PROTECTED] 1316
 [EMAIL PROTECTED]   1282
 [EMAIL PROTECTED]   1172
 [EMAIL PROTECTED]1099
 [EMAIL PROTECTED]   1090
 [EMAIL PROTECTED] 1058
 [EMAIL PROTECTED]  1043
 [EMAIL PROTECTED]  1012
 [EMAIL PROTECTED] 955
 cremona  830
 [EMAIL PROTECTED] 543
 [EMAIL PROTECTED]513
 [EMAIL PROTECTED]   513
 [EMAIL PROTECTED]   503
 [EMAIL PROTECTED]496
 [EMAIL PROTECTED]   396
 [EMAIL PROTECTED] 365
 [EMAIL PROTECTED]332
 Jason Grout  319
 [EMAIL PROTECTED]   308
 [EMAIL PROTECTED]   277
 [EMAIL PROTECTED] 272
 [EMAIL PROTECTED]244
 [EMAIL PROTECTED]236
 [EMAIL PROTECTED] 227
 [EMAIL PROTECTED] 211
 [EMAIL PROTECTED]   210
 [EMAIL PROTECTED]   199
 [EMAIL PROTECTED]  189
 [EMAIL PROTECTED]   180
 [EMAIL PROTECTED]  177
 [EMAIL PROTECTED] 174
 bill,[EMAIL PROTECTED]  173
 [EMAIL PROTECTED]169
 [EMAIL PROTECTED]166

[sage-devel] Re: mercurial -- plain text -- mercurial

2008-03-26 Thread mabshoff



On Mar 26, 7:53 pm, William Stein [EMAIL PROTECTED] wrote:
 Hi Jason (or anybody),

 Does anybody have a clue if it is possible to take a directory (e.g.,
 devel/sage/) with an .hg repo directory
 in it, and do the following:

   (1) export everything in the .hg repo to something (perhaps a ton of
 stuff) in plain text format,
   (2) delete .hg
   (3) do something that recovers the .hg directory from the output of (1).

There is nothing that does that currently that I am awake of. I did
play around with this and wrote some dummy scripts that

a) export every commit from a tree
b) create an empty hg repo
c) reimport each exported changeset

The md5sum of the files inside the .hg repo is different afterwards,
but parents and changesets and all that fun stuff remains the same.

 Note that just doing hg_sage.export([0..1]), where say 1 is
 the tip, doesn't work, because
 that looses all information about branching, etc., hence fails completely.

I need to see what happens with branches, but I am not sure what
happens in case of multi head merges.

 If mercurial can't do the above, that is a _very_ serious problem for
 the longterm viability of
 Mercurial at least for Sage.      So any ideas how to do the above?

 The reason for doing (1) -- (3) is that it is possible to scan an .hg
 directory with antivirus tools.
 Thus something silly like base64-encode a tarball of .hg won't work.

  -- william

Cheers,

Michael

 --
 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] Re: mercurial -- plain text -- mercurial

2008-03-26 Thread root

William,

git can do this. Since git uses a hash it will always regenerate the
same hash from the same file.

In fact, git uses hashes all the way down the tree so you can just
look at the hash code of the root of the tree to see if anything
changes. Equal hash codes, even across the net, imply exact copies
of the source tree.

Axiom uses arch, cvs, svn, and git. I have used several other systems
in the past. Now all of the primary work is in git and is export-only
to the other systems (git can work with them transparently). git has
fundamentally changed the way I work and the way Axiom is maintained,
all for the better.

I know it is a challenge to change source code systems but the gain
is well worth the pain in this case. The fact that git works with
legacy humans is a huge plus in minimizing the pain.

Tim Daly
Axiom

--~--~-~--~~~---~--~~
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 Journal

2008-03-26 Thread Robert Miller

On Mar 26, 10:33 am, William Stein [EMAIL PROTECTED] wrote:
   On Wed, 26 Mar 2008 09:32:36 -0700 (PDT)
   Harald Schilly [EMAIL PROTECTED] wrote:
I had the idea of publishing an online Journal with articles about
Sage - a mixture between blogs and a real journal. This could be an
excellent vehicle to promote Sage and the ideas behind to a bigger
audience.
 Yes, the name should either change as you suggest, or
 this should somehow merge with JSage, and JSage itself
 would become less academic.  (Note that JSage hasn't really
 started yet, in any real sense.)Maybe something like Harald
 is proposing is a better direction to go in that the current
 JSage direction (which is to be purely very academic and
 research-oriented).

 William

Perhaps this would also be a good way of getting the original JSage
intentions rolling. Quite a few people have recently been doing the
kind of work that would make ideal articles for that. If JSage were a
real thing you might start seeing submissions in the research-oriented
sector, anyway. I also like the idea of the journal as a recruiting
possibility. Having articles about Sage internals is probably the
right way to attract the kind of developers we are looking for. As for
politics/philosophy/community/..., this might be best left in letters
to the editor, for the journal's sake.
--~--~-~--~~~---~--~~
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: mercurial -- plain text -- mercurial

2008-03-26 Thread William Stein

On Wed, Mar 26, 2008 at 1:18 PM, root [EMAIL PROTECTED] wrote:

  William,

  git can do this. Since git uses a hash it will always regenerate the
  same hash from the same file.

  In fact, git uses hashes all the way down the tree so you can just
  look at the hash code of the root of the tree to see if anything
  changes. Equal hash codes, even across the net, imply exact copies
  of the source tree.

  Axiom uses arch, cvs, svn, and git. I have used several other systems
  in the past. Now all of the primary work is in git and is export-only
  to the other systems (git can work with them transparently). git has
  fundamentally changed the way I work and the way Axiom is maintained,
  all for the better.

  I know it is a challenge to change source code systems but the gain
  is well worth the pain in this case. The fact that git works with
  legacy humans is a huge plus in minimizing the pain.

We are indeed considering changing to git.  The
   repo -- plain text -- original repo
problem is a show stopper -- i.e., if Mercurial absolutely can't
do that, then we have no choice but to dump mercurial for git.
I hope Mercurial can do that though, since we've spent a lot
of time getting going with Mercurial, and it works fairly well.

 -- 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: hg churn and contributions

2008-03-26 Thread William Stein

On Wed, Mar 26, 2008 at 12:02 PM, Joel B. Mohler [EMAIL PROTECTED] wrote:

  On Wednesday 26 March 2008 13:55, Jason Grout wrote:
   Mercurial 1.0 is out now and one of the new standard extensions is the
   churn command, which apparently gives the numbers of lines of changed
   code per person (well, per email address).  I thought the output (see
   below) was interesting.  This is as of 2.10.4 and a few extra patches on
   top of it.

  The list below is certainly very cool and amusing to read, but I became quite
  suspicious of it's meaning when I saw me ([EMAIL PROTECTED]) that high on the
  list.  I don't think that's a very accurate representation of me ... I think
  I should be much lower.  I am kind of curious how I managed to score that
  many lines of code.


I think refactoring code also counts -- it's just lines you've
changed.  Notice
that the sum of the lines in the list is much bigger than the total
lines in Sage
itself.  So if you renamed a file, you get a bunch of points in that list.

It would be interesting to see how many new lines (initial commits
from nothing)
that people have contributed.  I don't know if this is possible with churn.

William


-- 
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: hg churn and contributions

2008-03-26 Thread Craig Citro

Did we check in a big chunk of the ntl wrapper under your name? (That
one would be fair, of course). Or maybe when we moved libcsage into
the sage tree, that went in under your name?

-cc

On Wed, Mar 26, 2008 at 12:02 PM, Joel B. Mohler [EMAIL PROTECTED] wrote:

  On Wednesday 26 March 2008 13:55, Jason Grout wrote:
   Mercurial 1.0 is out now and one of the new standard extensions is the
   churn command, which apparently gives the numbers of lines of changed
   code per person (well, per email address).  I thought the output (see
   below) was interesting.  This is as of 2.10.4 and a few extra patches on
   top of it.

  The list below is certainly very cool and amusing to read, but I became quite
  suspicious of it's meaning when I saw me ([EMAIL PROTECTED]) that high on the
  list.  I don't think that's a very accurate representation of me ... I think
  I should be much lower.  I am kind of curious how I managed to score that
  many lines of code.

  --
  Joel



   [EMAIL PROTECTED]  424564
   **
   [EMAIL PROTECTED]  138071 **
   [EMAIL PROTECTED] 111518 
   [EMAIL PROTECTED]   85543 *
   [EMAIL PROTECTED]   76713 
   [EMAIL PROTECTED]  74154 
   [EMAIL PROTECTED]69768 ***
   [EMAIL PROTECTED]64563 **
   [EMAIL PROTECTED]  61706 **
   [EMAIL PROTECTED]  36213 ***
   [EMAIL PROTECTED]32169 ***
   [EMAIL PROTECTED]  30247 ***
   [EMAIL PROTECTED]   28010 ***
   [EMAIL PROTECTED]  21594 **
   [EMAIL PROTECTED]  20447 **
   [EMAIL PROTECTED] 17300 *
   [EMAIL PROTECTED]15626 *
   [EMAIL PROTECTED]   15338 *
   [EMAIL PROTECTED]   14718 *
   [EMAIL PROTECTED]9135
   [EMAIL PROTECTED]   8580
   Emily Kirkman   8475
   [EMAIL PROTECTED] 8164
   [EMAIL PROTECTED]   7378
   [EMAIL PROTECTED]6936
   [EMAIL PROTECTED]   5712
   [EMAIL PROTECTED]  5045
   [EMAIL PROTECTED]  4175
   [EMAIL PROTECTED]   3475
   [EMAIL PROTECTED]3286
   [EMAIL PROTECTED] 3098
   [EMAIL PROTECTED]2870
   [EMAIL PROTECTED]   2619
   [EMAIL PROTECTED] 2445
   [EMAIL PROTECTED]   2372
   [EMAIL PROTECTED]  2330
   [EMAIL PROTECTED]2279
   [EMAIL PROTECTED]2167
   [EMAIL PROTECTED]   1982
   [EMAIL PROTECTED]  1527
   [EMAIL PROTECTED]1366
   [EMAIL PROTECTED]   1333
   [EMAIL PROTECTED] 1316
   [EMAIL PROTECTED]   1282
   [EMAIL PROTECTED]   1172
   [EMAIL PROTECTED]1099
   [EMAIL PROTECTED]   1090
   [EMAIL PROTECTED] 1058
   [EMAIL PROTECTED]  1043
   [EMAIL PROTECTED]  1012
   [EMAIL PROTECTED] 955
   cremona  830
   [EMAIL PROTECTED] 543
   [EMAIL PROTECTED]513
   [EMAIL PROTECTED]   513
   [EMAIL PROTECTED]   503
   [EMAIL PROTECTED]496
   [EMAIL PROTECTED]   396
   [EMAIL PROTECTED] 365
   [EMAIL PROTECTED]332
   Jason Grout  319
   [EMAIL PROTECTED]   308
   [EMAIL PROTECTED]   277
   [EMAIL PROTECTED] 272
   [EMAIL PROTECTED]244
   [EMAIL PROTECTED]236
   [EMAIL PROTECTED] 227
   [EMAIL PROTECTED] 211
   [EMAIL PROTECTED]  

[sage-devel] Re: mercurial -- plain text -- mercurial

2008-03-26 Thread Mike Hansen

It seems like the mercurial mailing list would be the best place to go for this.

Using queues has made me quite a bit more productive, and I'd like to
avoid switching to a version control system without them.  Also, the
git documentation leaves something to be desired compared to the
Mercurial book.

--Mike

On Wed, Mar 26, 2008 at 12:12 PM, William Stein [EMAIL PROTECTED] wrote:

  On Wed, Mar 26, 2008 at 1:18 PM, root [EMAIL PROTECTED] wrote:
  
William,
  
git can do this. Since git uses a hash it will always regenerate the
same hash from the same file.
  
In fact, git uses hashes all the way down the tree so you can just
look at the hash code of the root of the tree to see if anything
changes. Equal hash codes, even across the net, imply exact copies
of the source tree.
  
Axiom uses arch, cvs, svn, and git. I have used several other systems
in the past. Now all of the primary work is in git and is export-only
to the other systems (git can work with them transparently). git has
fundamentally changed the way I work and the way Axiom is maintained,
all for the better.
  
I know it is a challenge to change source code systems but the gain
is well worth the pain in this case. The fact that git works with
legacy humans is a huge plus in minimizing the pain.

  We are indeed considering changing to git.  The
repo -- plain text -- original repo
  problem is a show stopper -- i.e., if Mercurial absolutely can't
  do that, then we have no choice but to dump mercurial for git.
  I hope Mercurial can do that though, since we've spent a lot
  of time getting going with Mercurial, and it works fairly well.

   -- 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: mercurial -- plain text -- mercurial

2008-03-26 Thread mabshoff



On Mar 26, 8:12 pm, William Stein [EMAIL PROTECTED] wrote:
 On Wed, Mar 26, 2008 at 1:18 PM, root [EMAIL PROTECTED] wrote:

   William,

   git can do this. Since git uses a hash it will always regenerate the
   same hash from the same file.

   In fact, git uses hashes all the way down the tree so you can just
   look at the hash code of the root of the tree to see if anything
   changes. Equal hash codes, even across the net, imply exact copies
   of the source tree.

   Axiom uses arch, cvs, svn, and git. I have used several other systems
   in the past. Now all of the primary work is in git and is export-only
   to the other systems (git can work with them transparently). git has
   fundamentally changed the way I work and the way Axiom is maintained,
   all for the better.

   I know it is a challenge to change source code systems but the gain
   is well worth the pain in this case. The fact that git works with
   legacy humans is a huge plus in minimizing the pain.

 We are indeed considering changing to git.  The
    repo -- plain text -- original repo
 problem is a show stopper -- i.e., if Mercurial absolutely can't
 do that, then we have no choice but to dump mercurial for git.
 I hope Mercurial can do that though, since we've spent a lot
 of time getting going with Mercurial, and it works fairly well.

I did play around with a small repo that included a bundle that I did
merge without conflict and in that case reimporting the commits one by
one yields the same md5sums for all the files in the repo. When I
imported a merge changeset I got the following:

[EMAIL PROTECTED] c]$ hg import ../b/5.patch
applying ../b/5.patch
abort: 00changelog.i: no node
1711dd4455804471c46598ec4f92f672de73916e!

But it didn't make a difference, expect that in the end the repo had
one fewer commit. I am still curious what happens if you resolve a
merge conflict in that changeset. I am not too positive about the
outcome since hg help export states:

NOTE: export may generate unexpected diff output for merge
changesets,
as it will compare the merge changeset against its first parent
only.

I guess I need to take on the Sage repo and see what happens when I do
the same thing with 9,000+ commits.

  -- 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: mercurial -- plain text -- mercurial

2008-03-26 Thread root

Mike,

Using queues has made me quite a bit more productive, and I'd like to
avoid switching to a version control system without them.  Also, the
git documentation leaves something to be desired compared to the
Mercurial book.

The queues feature in Mercurial is available independently in the
quilt system. Mercurial makes this point:
 http://hgbook.red-bean.com/hgbookch12.html

Tim Daly
Axiom

--~--~-~--~~~---~--~~
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: Fast matrices over GF(p)

2008-03-26 Thread Simon King

Dear all,

i made a new version of my wrapper that is based on the most recent
MeatAxe.

You can find it at http://sage.math.washington.edu/home/SimonKing/MeatAxe.tar.gz

The tar'd folder contains:
 - a part of the unaltered source files of MeatAxe 2.4,
 - additional (very simplistic) C-code in MoreFeatures.c and .h,
 - my wrapper comprising  mtx.pxd and mtx.pyx,
 - a Makefile,
 - and some files such as p005.zzz that you can ignore.

On Sage.Math, you simply say make to build mtx.so, which can be
loaded into Sage. On a different machine, you probably have to alter
the hard-coded path to sage-python in the Makefile.

Concerning p005.zzz and p007.zzz: Files like this will be written to
your current directory when you handle MTX over Z/5 or Z/7. I don't
like it, but that is how MeatAxe works.

I made some timings on Sage.Math, that you find in
http://sage.math.washington.edu/home/SimonKing/MTXtiming.txt
This also provides some examples how MTX matrices work.

On Mar 25, 5:02 pm, Simon King [EMAIL PROTECTED] wrote:
 On Mar 25, 6:31 am, Clement Pernet [EMAIL PROTECTED] wrote:
  I still did not look at the code of Meat axe, but I remember having been
  really impressed a presentation at MSRI last year about MeatAxe.
  The timings were really impressive especially the matmul ones.
  So I am really surprised by your experience with slow matmul.

Were these timings about matmul? Then it is really surprising.

According to my timings, in fact matrix multiplication is slow:
It was 453 ms with Sage matrices but 937 ms with MTX.
Since MeatAxe's MatMul alters the first input matrix, i need one
additional copy operation.
But the copy works very fast, less than 1 ms. So, that can't be the
reason.

Surprisingly, MTX.nullspace(), which essentially yields
what .kernel().basis() does for Sage matrices, is fast:
46.57 s with Sage matrices, but 4.74 s for the corresponding MTX
matrix.
I understood that Sage caches part of the result - MTX does not, yet.

 But i don't need these executables, my wrapper does all these things
 in memory. Only exception: I need the executable maketab...

No, i don't.
mtx.so suffices, no additional executable besides sage is needed.

My opinion is:
Personally, I have reasons to use MTX in my project. But the little
progress (if there is any) would probably not justify to include yet
another matrix type into Sage.

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: mercurial -- plain text -- mercurial

2008-03-26 Thread Mike Hansen

  The queues feature in Mercurial is available independently in the
  quilt system. Mercurial makes this point:
   http://hgbook.red-bean.com/hgbookch12.html

There are things with queues that you don't get with quilt.  Quoting
from the book,

As an example, the integration of patches with revision control makes
understanding patches and debugging their effects—and their interplay
with the code they're based on—enormously easier. Since every applied
patch has an associated changeset, you can use hg log filename to
see which changesets and patches affected a file. You can use the
bisect extension to binary-search through all changesets and applied
patches to see where a bug got introduced or fixed. You can use the
hg annotate command to see which changeset or patch modified a
particular line of a source file. And so on.

--Mike

--~--~-~--~~~---~--~~
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: hg churn and contributions

2008-03-26 Thread Joel B. Mohler

On Wednesday 26 March 2008 15:16, Craig Citro wrote:
 Did we check in a big chunk of the ntl wrapper under your name? (That
 one would be fair, of course). Or maybe when we moved libcsage into
 the sage tree, that went in under your name?

I suspect that both of these things are a big contributor (the ntl_wrap.cc 
file was quite long).  I guess the real point is that as with all 
lines-of-code-counting metrics this one needs to be viewed with a bit of 
suspicion.

Anyhow, it really doesn't matter one way or the other.

Here's a relevant  wise quote from Edsgar Dijkstra:
http://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD1036.html
***
...  From there it is only a small step to measuring programmer productivity 
in terms of number of lines of code produced per month. This is a very 
costly measuring unit because it encourages the writing of insipid code, but 
today I am less interested in how foolish a unit it is from even a pure 
business point of view. My point today is that, if we wish to count lines of 
code, we should not regard them as lines produced but as lines spent: the 
current conventional wisdom is so foolish as to book that count on the wrong 
side of the ledger.
*** 

--
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: mercurial -- plain text -- mercurial

2008-03-26 Thread root

  The queues feature in Mercurial is available independently in the
  quilt system. Mercurial makes this point:
   http://hgbook.red-bean.com/hgbookch12.html

There are things with queues that you don't get with quilt.  Quoting
from the book,

As an example, the integration of patches with revision control makes
understanding patches and debugging their effects--and their interplay
with the code they're based on--enormously easier. Since every applied
patch has an associated changeset, you can use hg log filename to
see which changesets and patches affected a file. You can use the
bisect extension to binary-search through all changesets and applied
patches to see where a bug got introduced or fixed. You can use the
hg annotate command to see which changeset or patch modified a
particular line of a source file. And so on.

Sorry, I didn't mean to start a debate about the relative feature
set of the various systems. The git system can do what you want
(e.g. bisect, branch, etc.). Having gone thru the series of changes
cvs-arch-svn-git I understand why you would be reluctant to change.

The original point was the question of regenerating the information.
Since git uses hashing to guarantee uniqueness you know that any
root (or subtree) with equal hashs has the same code. This makes it
impossible to inject a virus. It also makes it very convenient to 
recreate the exact sources used by a user reporting a bug since you
simply undo the changes until the root is equal and you have the
exact sources reporting the bug. Given the high change rate of Sage
this could be a major feature.

Another point worth mentioning is that git only stores one copy of a
file if they hash to the same value. Since the GMP library, BLAS,
LAPACK or other common libraries might show up in several spkgs there
is the potential for a significant reduction in storage space. I also
noticed that arch and svn seem to keep a second copy of the system
somewhere (not sure what hg does) but moving to git immediately 
reduced the required disk space by a factor of 2. For a system as
large as Sage this might prove interesting. If I get the time I
can try to import Sage into git to quantify the gain.

Tim Daly
Axiom

--~--~-~--~~~---~--~~
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: mercurial -- plain text -- mercurial

2008-03-26 Thread Carl Witty

On Mar 26, 11:53 am, William Stein [EMAIL PROTECTED] wrote:
 Hi Jason (or anybody),

 Does anybody have a clue if it is possible to take a directory (e.g.,
 devel/sage/) with an .hg repo directory
 in it, and do the following:

   (1) export everything in the .hg repo to something (perhaps a ton of
 stuff) in plain text format,
   (2) delete .hg
   (3) do something that recovers the .hg directory from the output of (1).

 Note that just doing hg_sage.export([0..1]), where say 1 is
 the tip, doesn't work, because
 that looses all information about branching, etc., hence fails completely.

 If mercurial can't do the above, that is a _very_ serious problem for
 the longterm viability of
 Mercurial at least for Sage.  So any ideas how to do the above?

 The reason for doing (1) -- (3) is that it is possible to scan an .hg
 directory with antivirus tools.
 Thus something silly like base64-encode a tarball of .hg won't work.

I still don't understand the requirements.  First, that last paragraph
makes a lot more sense with it is impossible than it is possible.
Did you mean impossible?

Second, are you worried about people checking in viruses, or people
concealing a virus in the .hg directory without it being checked in?

For the former concern, it seems that it would be sufficient to check
out the files, and you don't need to recreate the repository.  For the
latter concern, perhaps something based on hg verify would suffice
to ensure that nothing nasty has been hidden in the repository.

Carl
--~--~-~--~~~---~--~~
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: mercurial -- plain text -- mercurial

2008-03-26 Thread mabshoff



On Mar 26, 9:27 pm, Robert Bradshaw [EMAIL PROTECTED]
wrote:
 On Mar 26, 2008, at 11:53 AM, William Stein wrote:



  Hi Jason (or anybody),

  Does anybody have a clue if it is possible to take a directory (e.g.,
  devel/sage/) with an .hg repo directory
  in it, and do the following:

    (1) export everything in the .hg repo to something (perhaps a ton of
  stuff) in plain text format,
    (2) delete .hg
    (3) do something that recovers the .hg directory from the output  
  of (1).

  Note that just doing hg_sage.export([0..1]), where say 1 is
  the tip, doesn't work, because
  that looses all information about branching, etc., hence fails  
  completely.

  If mercurial can't do the above, that is a _very_ serious problem for
  the longterm viability of
  Mercurial at least for Sage.      So any ideas how to do the above?

  The reason for doing (1) -- (3) is that it is possible to scan an .hg
  directory with antivirus tools.
  Thus something silly like base64-encode a tarball of .hg won't work.

 I think it should be possible to export a series of patches and a  
 (python) script that would apply the patches in the right order,  
 clone, and merge to get back the original repository. It might not be  
 the most efficient however. I'll look into this more.

 Has anyone tried contacting the mercurial developers?

Nope, that doesn't work on the Sage repo. Exporting all 9028
changesets of 2.11.alpha1 took about 40 minutes, but on reimport to a
fresh repo failed around 1300 changesets. The problem is that export
of a merge on diffs against on parent. So if you resolve a merge
conflict in a merge changeset things go FUBAR.

That was with 0.9.5, but I haven't tried 1.0 yet.

 - Robert

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: mercurial -- plain text -- mercurial

2008-03-26 Thread Robert Bradshaw

On Mar 26, 2008, at 1:30 PM, mabshoff wrote:

 On Mar 26, 9:27 pm, Robert Bradshaw [EMAIL PROTECTED]
 wrote:
 On Mar 26, 2008, at 11:53 AM, William Stein wrote:



 Hi Jason (or anybody),

 Does anybody have a clue if it is possible to take a directory  
 (e.g.,
 devel/sage/) with an .hg repo directory
 in it, and do the following:

   (1) export everything in the .hg repo to something (perhaps a  
 ton of
 stuff) in plain text format,
   (2) delete .hg
   (3) do something that recovers the .hg directory from the output
 of (1).

 Note that just doing hg_sage.export([0..1]), where say 1 is
 the tip, doesn't work, because
 that looses all information about branching, etc., hence fails
 completely.

 If mercurial can't do the above, that is a _very_ serious problem  
 for
 the longterm viability of
 Mercurial at least for Sage.  So any ideas how to do the above?

 The reason for doing (1) -- (3) is that it is possible to scan  
 an .hg
 directory with antivirus tools.
 Thus something silly like base64-encode a tarball of .hg won't  
 work.

 I think it should be possible to export a series of patches and a
 (python) script that would apply the patches in the right order,
 clone, and merge to get back the original repository. It might not be
 the most efficient however. I'll look into this more.

 Has anyone tried contacting the mercurial developers?

 Nope, that doesn't work on the Sage repo. Exporting all 9028
 changesets of 2.11.alpha1 took about 40 minutes, but on reimport to a
 fresh repo failed around 1300 changesets. The problem is that export
 of a merge on diffs against on parent. So if you resolve a merge
 conflict in a merge changeset things go FUBAR.

 That was with 0.9.5, but I haven't tried 1.0 yet.

I was talking about something more sophisticated than export/import,  
which won't work the instant one has multiple branches. One needs to  
actually create multiple heads, apply patches, then resolve them. Hg  
export doesn't have enough information to do this.

- 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: mercurial -- plain text -- mercurial

2008-03-26 Thread mabshoff

On Mar 26, 9:35 pm, Robert Bradshaw [EMAIL PROTECTED]
wrote:

 I was talking about something more sophisticated than export/import,  
 which won't work the instant one has multiple branches. One needs to  
 actually create multiple heads, apply patches, then resolve them. Hg  
 export doesn't have enough information to do this.

Ok, sounds good. Do you have any pointers or documentation on this?

 - Robert

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: mercurial -- plain text -- mercurial

2008-03-26 Thread Robert Bradshaw

On Mar 26, 2008, at 1:56 PM, mabshoff wrote:

 On Mar 26, 9:35 pm, Robert Bradshaw [EMAIL PROTECTED]
 wrote:

 I was talking about something more sophisticated than export/import,
 which won't work the instant one has multiple branches. One needs to
 actually create multiple heads, apply patches, then resolve them. Hg
 export doesn't have enough information to do this.

 Ok, sounds good. Do you have any pointers or documentation on this?

Not at the moment, but I've mucked around with mercurial more than  
most so I don't think it should be too hard once I start looking into  
it.

- 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: Glib algorithms #2436 vote

2008-03-26 Thread Robert Bradshaw

On Mar 26, 2008, at 11:57 AM, Gary Furnish wrote:

 Honestly, independent of the spkg vs libcsage issue, which is  
 really an issue of semantics in my opinion, Sage has no high speed  
 implementations of C algorithms. Sage can not escape this forever.  
 Either someone will have to write their own at some point or we can  
 use glib as a starting block. It is a big chunk of code, but Sage  
 needs fast lists, hash tables, etc. Using glib as a starting point  
 dramatically reduces debugging time, and is therefore preferable.

Browsing the glib documentation, looking at its features, and reading  
what other people have to say about it I think this is a worthy set  
of things to include.

One question I have is how much faster glib hashtables are than  
python dictionaries (as accessed directly through the Python/C API,  
which they will be from Cython if declared as type dict) and how  
much faster glib (linked or non-linked) lists are then Python lists.  
Have you run any tests? If there is not a significant speed  
difference, it would be preferable to use the Python datatypes to  
store Python objects when possible (for cleaner code and to minimize  
recounting woes). This wouldn't mean that glib isn't worth including  
however.

 I don't see how blocking a glib patch because of maintenance issues  
 really helps solve this problem in the long run. Is it really  
 preferable that I code up custom versions of the things so that I  
 can have fast symbolic implementations?

No. I think the point is that before including it we should consider  
issues of maintenance and this may influence where we put it. (Much  
easier, for instance, than trying to move it later.) I agree that it  
should probably be a seperate spkg.

 Most of the bloat in glib is internationaliztaion, which is not  
 included in this patch. The parts that are included are simple  
 enough and well documented enough (either in the code or in glib  
 documents) that anyone should be able to easily maintain it.  
 Furthermore, I intend to help maintain the C algorithms. I fully  
 intend to work on them actively if their speed is not sufficient.  
 Making a seperate spkg dramatically increases the difficulty of  
 active development.

I agree that making an spkg raises the barrier of working on it, but  
not by that much. Also, as an spkg, other components of Sage can make  
use of it, and I think it will be much easier to keep in sync with  
and contribute upstream.

I'd also really like to avoid a fork, which is what this could easily  
turn into. I'm noticing a lot of changes from glib 2.16.1 at GNOME.  
Is this the version you started from? Are you simply copying a subset  
of the c/h files, or are there significant changes that need to be  
done every time glib is updated (every month or two looking at the  
history)?

I would like to see this included, but I think these issues need to  
be resolved now, or they never will until it hurts us.

- Robert



 On Wed, Mar 26, 2008 at 12:26 PM, William Stein [EMAIL PROTECTED]  
 wrote:

 On Wed, Mar 26, 2008 at 11:16 AM, didier deshommes  
 [EMAIL PROTECTED] wrote:
 
 
  On Wed, Mar 26, 2008 at 1:52 PM, mabshoff
  [EMAIL PROTECTED] wrote:
  
  
  
   On Mar 26, 6:43 pm, William Stein [EMAIL PROTECTED] wrote:
On Wed, Mar 26, 2008 at 10:09 AM, mabshoff
   
  
[EMAIL PROTECTED] wrote:
   
 On Mar 26, 6:02 pm, William Stein [EMAIL PROTECTED] wrote:
  Is any of the code gpl v3+ only?
   
 No.
   
That's good.
   
   
   
  How difficult will it be to update our version whenever  
 upstream
  changes? Do only you know how to do this?
   
 Not particularly hard.
   
You didn't answer my second question.
  
   Gary did it and I didn't pay much attention to it. I assume it  
 will be
   documented. I don't consider such a thing hard once it has been
   documented.
  
  
  Why put this in c_lib instead of a separate spkg called  
 glib-min?
  Couldn't such a package be useful outside of sage?
   
 It is easiest if we put it into libcsage.
   
That's not a good enough answer. Until now almost all code in  
 libcsage and
the main sage library has been new code we've written --  
 except a few
exceptions,
where we greatly regretted them greatly and moved the code  
 out later.
So from experience I'm very opposed to this code being in c_lib.
   
I vote -1 to this code going into sage unless:
(1) it is put in a separate spkg, and
  
   We can certainly do that.
  
  
(2) the process of extracting glib-min from the official glib
tarball is automated.
  
   That is unlikely to happen since it requires manual  
 interaction. It
   will break in the next release in six months and writing automated
   tools will take longer than actually doing the work in the first
   place.
 
  How frequent are the glib releases? If they're not that frequent,  
 this
  should less than an issue as long as Gary documents what he's done
  

[sage-devel] Re: Sage 2.11.alpha1 released!

2008-03-26 Thread Jaap Spies

mabshoff wrote:
 Hi folks,
 
 Sage 2.11.alpha1 is out. It is a collection of various
 fixes, nothing particular seems to stand out. We finally
 pushed the updated experimental mayavi and vtl.spkg.
 
[...]
 #2493: Jaap Spies: Updated experimental vtk spkg
(vtk-5.0.4.spkg)
 #2495: Jaap Spies: Updated experimental Mayavi2 spkg
(mayavi_2.1.1) linux only

MayaVi2 seems to build, but fails to run mlab!

What the difference between mayavi_2.1.1-20080307.p1.spkg
and my original mayavi_2.1.1-20080307.spkg?

1) mv mayavi_build src
2) rm all .svn stuff
3) add .hg and friends

I don't understand why:

With mayavi_2.1.1-20080307.p1.spkg I get after ./sage -wthread:

sage: from enthought.mayavi import mlab as M
---
type 'exceptions.ValueError'Traceback (most recent call last)

/home/jaap/work/downloads/sage-2.11.alpha1/ipython console in module()

/home/jaap/work/downloads/sage-2.11.alpha1/local/lib/python2.5/site-packages/enthought.mayavi-2.1.1.dev-py2.5.egg/enthought/mayavi/mlab.py
 in module()
  15 from tools.config import get_engine, show_engine
  16
--- 17 from tools.helper_functions import contour3d, test_contour3d, \


[...]

/home/jaap/work/downloads/sage-2.11.alpha1/local/lib/python2.5/site-packages/enthought.pyface-2.0.3-py2.5.egg/enthought/pyface/image_resource.py
 in 
_get_image_not_found_image(self)
 165 # be broken!
 166 else:
-- 167 raise ValueError(Rick's installer is broken)
 168
 169 return image

type 'exceptions.ValueError': Rick's installer is broken



While mayavi_2.1.1-20080307.spkg builds, installs and runs fine:

[EMAIL PROTECTED] sage-2.11.alpha1]$ ./sage -wthread
--
| SAGE Version 2.11.alpha1, Release Date: 2008-03-22 |
| Type notebook() for the GUI, and license() for information.|
--


sage: from enthought.mayavi import mlab as M

sage: M.
M.axes   M.flow   M.outline
M.show_engineM.test_points3d
M.__class__  M.gcfM.pipeline   
M.__str__M.test_quiver3d
M.clfM.__getattribute__   M.plot3d 
M.surf   M.test_quiver3d_2d_data
M.colorbar   M.get_engine M.points3d   
M.test_contour3d M.test_simple_surf
M.contour3d  M.__hash__   M.quiver3d   
M.test_contour_surf  M.test_surf
M.contour_surf   M.imshow M.__reduce__ 
M.test_fancy_meshM.text
M.__delattr__M.__init__   M.__reduce_ex__  
M.test_flow  M.title
M.__dict__   M.mesh   M.__repr__   
M.test_imshowM.vectorbar
M.__doc__M.__name__   M.roll   
M.test_mesh  M.view
M.draw   M.__new__M.savefig
M.test_mesh_sphere   M.xlabel
M.figure M.optionsM.scalarbar  
M.test_molecule  M.ylabel
M.__file__   M.orientationaxesM.__setattr__
M.test_plot3dM.zlabel


My hypothesis for now is that the .svn directories contain
essential information for the build system. I might be wrong, ...


Jaap



--~--~-~--~~~---~--~~
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 2.11.alpha1 released!

2008-03-26 Thread mabshoff



On Mar 26, 10:31 pm, Jaap Spies [EMAIL PROTECTED] wrote:
 mabshoff wrote:
  Hi folks,

  Sage 2.11.alpha1 is out. It is a collection of various
  fixes, nothing particular seems to stand out. We finally
  pushed the updated experimental mayavi and vtl.spkg.

 [...]
  #2493: Jaap Spies: Updated experimental vtk spkg
         (vtk-5.0.4.spkg)
  #2495: Jaap Spies: Updated experimental Mayavi2 spkg
         (mayavi_2.1.1) linux only

 MayaVi2 seems to build, but fails to run mlab!

 What the difference between mayavi_2.1.1-20080307.p1.spkg
 and my original mayavi_2.1.1-20080307.spkg?

 1) mv mayavi_build src
 2) rm all .svn stuff
 3) add .hg and friends

 I don't understand why:

 With mayavi_2.1.1-20080307.p1.spkg I get after ./sage -wthread:

 sage: from enthought.mayavi import mlab as M
 ---
 type 'exceptions.ValueError'            Traceback (most recent call last)

 /home/jaap/work/downloads/sage-2.11.alpha1/ipython console in module()

 /home/jaap/work/downloads/sage-2.11.alpha1/local/lib/python2.5/site-packages/enthought.mayavi-2.1.1.dev-py2.5.egg/enthought/mayavi/mlab.py
  in module()
       15 from tools.config import get_engine, show_engine
       16
 --- 17 from tools.helper_functions import contour3d, test_contour3d, \

 [...]

 /home/jaap/work/downloads/sage-2.11.alpha1/local/lib/python2.5/site-packages/enthought.pyface-2.0.3-py2.5.egg/enthought/pyface/image_resource.py
  in
 _get_image_not_found_image(self)
      165         # be broken!
      166         else:
 -- 167             raise ValueError(Rick's installer is broken)
      168
      169         return image

 type 'exceptions.ValueError': Rick's installer is broken

 While mayavi_2.1.1-20080307.spkg builds, installs and runs fine:

 [EMAIL PROTECTED] sage-2.11.alpha1]$ ./sage -wthread
 --
 | SAGE Version 2.11.alpha1, Release Date: 2008-03-22                 |
 | Type notebook() for the GUI, and license() for information.        |
 --

 sage: from enthought.mayavi import mlab as M

 sage: M.
 M.axes                   M.flow                   M.outline                
 M.show_engine            M.test_points3d
 M.__class__              M.gcf                    M.pipeline               
 M.__str__                M.test_quiver3d
 M.clf                    M.__getattribute__       M.plot3d                 
 M.surf                   M.test_quiver3d_2d_data
 M.colorbar               M.get_engine             M.points3d               
 M.test_contour3d         M.test_simple_surf
 M.contour3d              M.__hash__               M.quiver3d               
 M.test_contour_surf      M.test_surf
 M.contour_surf           M.imshow                 M.__reduce__             
 M.test_fancy_mesh        M.text
 M.__delattr__            M.__init__               M.__reduce_ex__          
 M.test_flow              M.title
 M.__dict__               M.mesh                   M.__repr__               
 M.test_imshow            M.vectorbar
 M.__doc__                M.__name__               M.roll                   
 M.test_mesh              M.view
 M.draw                   M.__new__                M.savefig                
 M.test_mesh_sphere       M.xlabel
 M.figure                 M.options                M.scalarbar              
 M.test_molecule          M.ylabel
 M.__file__               M.orientationaxes        M.__setattr__            
 M.test_plot3d            M.zlabel

 My hypothesis for now is that the .svn directories contain
 essential information for the build system. I might be wrong, ...

Well, maybe I did accidentally nuke more than the .svn directories. I
cannot imagine a scenario where anything would depend on the content
of a .svn directory to run. But I wouldn't be surprised to be proven
wrong ;)

 Jaap

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: Sage 2.11.alpha1 released!

2008-03-26 Thread Jaap Spies

mabshoff wrote:
 

 
 Well, maybe I did accidentally nuke more than the .svn directories. I
 cannot imagine a scenario where anything would depend on the content
 of a .svn directory to run. But I wouldn't be surprised to be proven
 wrong ;)
 

I did a diff -r on both directories, only .svn files missing!
This egg_build.py is really mysterious :)!


Jaap


--~--~-~--~~~---~--~~
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] Winners of the waste space on sage.math contest March 2008

2008-03-26 Thread mabshoff

Hello folks,

home on sage.math did just get filled up to the last byte, so things
tend to work less well than they used to. Various people in IRC did
clean up some of their home directories and now 26 GB are free again.
But of the 705G total the following people use at least a Gigabyte:

1.9Gabhinav
5.2Gacgetchell
4.2Gadam
1.4Gaklemm
1.4Galfredo
2.0Gallan
4.3Gbgranger
15G binegar
11G boothby
1.1Gburcin
20G burhanud
4.9Gclarita
1.5Gcswiercz
3.6Gcwitty
1.9Gdav
7.0Gdbm25
2.4Gdeldotdr
12G dfdeshom
1.1Gdisabled_accounts
5.8Gdmharvey
1.5Gekirkman
3.9Ggeorgesk
5.7Ggfurnish
20K Grammian
3.8Gjason
2.4Gjbmohler
1.7Gjec
7.3Gjen
1.1Gjetchev
1.3Gjipsen
3.3Gjkantor
6.0Gjvoight
1.1Gkathy
1.3Gkedlaya
1.4Gmabshoff
2.5Gmacaulay2
4.4Gmalb
1.7Gmanny
4.8Gmhansen
3.9Gmoretti
2.3Gnathan
4.3Gncalexan
6.5Gnovoselt
3.6Gondrej
3.8Gpadicgroup
4.2Gpage
16G pernet
2.9Gpurbon
12G rlmill
3.4Grobertwb
1.4Groed
1.9Gsaliola
28G savitt
5.3Gsimuw
3.1Gsuperstein
1.5Gtclemans
1.2Gtkosan
2.1Gtornaria
416Gwas
4.4Gwatkins
1.1Gwbhart
6.2Gwdj
3.0Gyqiang

William wins with 416G, but since he bought the box I guess he can do
what he wants. If you have an account and can delete old Sage installs
or otherwise useless data please do so.

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: Sage 2.11.alpha1 released!

2008-03-26 Thread mabshoff



On Mar 26, 10:53 pm, Jaap Spies [EMAIL PROTECTED] wrote:
 mabshoff wrote:

  Well, maybe I did accidentally nuke more than the .svn directories. I
  cannot imagine a scenario where anything would depend on the content
  of a .svn directory to run. But I wouldn't be surprised to be proven
  wrong ;)

 I did a diff -r on both directories, only .svn files missing!
 This egg_build.py is really mysterious :)!

 Jaap

Could it be that some old install of previous spkgs does interfere?
When we updated numpy and scipy the last time it was essential that we
nuked their old install directories - maybe this is also the case
here?

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: Sage 2.11.alpha1 released!

2008-03-26 Thread Jaap Spies

mabshoff wrote:
 
 
 On Mar 26, 10:53 pm, Jaap Spies [EMAIL PROTECTED] wrote:
 mabshoff wrote:

 Well, maybe I did accidentally nuke more than the .svn directories. I
 cannot imagine a scenario where anything would depend on the content
 of a .svn directory to run. But I wouldn't be surprised to be proven
 wrong ;)
 I did a diff -r on both directories, only .svn files missing!
 This egg_build.py is really mysterious :)!

 Jaap
 
 Could it be that some old install of previous spkgs does interfere?
 When we updated numpy and scipy the last time it was essential that we
 nuked their old install directories - maybe this is also the case
 here?
 

I don't think so. I did a fresh install on fresh installed sage-2.10.4,
sage-2.11.alpha0, sage-2.11.alpha1 on two machines. The results are consistent.

Jaap


--~--~-~--~~~---~--~~
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: mercurial -- plain text -- mercurial

2008-03-26 Thread Jason Grout

Mike Hansen wrote:
  The queues feature in Mercurial is available independently in the
  quilt system. Mercurial makes this point:
   http://hgbook.red-bean.com/hgbookch12.html
 
 There are things with queues that you don't get with quilt.  Quoting
 from the book,
 
 As an example, the integration of patches with revision control makes
 understanding patches and debugging their effects—and their interplay
 with the code they're based on—enormously easier. Since every applied
 patch has an associated changeset, you can use hg log filename to
 see which changesets and patches affected a file. You can use the
 bisect extension to binary-search through all changesets and applied
 patches to see where a bug got introduced or fixed. You can use the
 hg annotate command to see which changeset or patch modified a
 particular line of a source file. And so on.

I use git to manage my personal/professional file repository.  To me, 
Mercurial is much simpler, but git is more powerful and feels more 
stable.  I don't have a huge amount of experience with git, though; I 
keep forgetting the commands to do things, so I keep putting off 
checking things in and working on things in git :).  Thank goodness for 
the git-gui, gitk, and qgit tools that give graphical interfaces to a 
git repository!

As to queues, of course, the concept and original software originated 
with the linux development model, as far as I know.  Git has a tool 
called StGit (Stacked Git; http://procode.org/stgit/; it's in python!) 
and also has Guilt.  The messages at 
http://fixunix.com/kernel/368500-announce-stacked-git-0-14-2-a.html seem 
to indicate that the two tools overlap (as well as the debian 
description http://packages.debian.org/unstable/devel/guilt).  I haven't 
used either tool.

Git also has some very powerful tools in the way of lightweight 
branching and rebasing.  One thing in a recent release is git rebase 
--interactive, which allows you to basically go back and edit a commit 
or change the order of commits, thereby providing queue functionality 
that is fully integrated with the versioning system (see 
http://blog.madism.org/index.php/2007/09/09/138-git-awsome-ness-git-rebase-interactive).
 
  I don't think, in the end, that there is anything we can do with 
queues that we can't do with git (possibly using one of the above tools 
on top of git).  However, I haven't tried (I've only read about it), so 
count that opinion as worth the electrons that conveyed it :).

Personally, after getting over the initial learning hump (which I see as 
much greater than the mercurial learning hump), I think git would 
provide more power.


William, I presume you're looking for something exactly analogous to 
svnadmin dump for SVN (see 
http://svnbook.red-bean.com/en/1.1/ch05s03.html ).   That command came 
in very handy for me when I kept things in SVN for a while.

One option for what Williams wants to do is to convert a copy of the hg 
repository to a git repository and then do the text dump (apparently 
that is possible...I don't have first-hand experience with that).  I'm 
not sure how lossless the conversion would be, but my gut feeling is 
that it would be good.


Jason


--~--~-~--~~~---~--~~
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 question, possible contribution to project

2008-03-26 Thread dean moore
No guilt.  I feel no personal guilt over ancestors who owned slaves.  Just a
feeling it's worthwhile to contribute
something more substantial that a few bug reports -- I guess meaning can get
lost in ASCII.

Some of us relatively new people feel like we're lost in a non-English
megalopolis with no map -- to where
from here? Gee, I can slice, dice, and even julienne, but -- the project is
so *$#@ huge, with various
included packages and imperfect documentation.  What needs done?  How to do
it?

If say, I think, Gee someone might really like this functionality, or,
This thing might work better if we
tightened this nut, or, This documentation is unclear ... I've read the
developer's sites, but still feel a
little lost.  I recently thought, oh, a means to easily compute the area of
a polygon would be nice, but
unsure of where to go from here.

I try to think like Billy Wilder, whose reputed philosophy was, What movie
would** I like to see? -- and was
usually right.  Tap a writing talent like Raymond Chandler  you make *Double
Indemnity*.

Not pontificating, but did a doctorate in math a few years ago, though my
thesis was pretty abstract -- would
like to do something a bit more solid.  Here or via private e-mail is OK.

Thanks for ideas.

Dean

---

On Wed, Mar 26, 2008 at 10:34 AM, Joel B. Mohler [EMAIL PROTECTED]
wrote:


 On Wednesday 26 March 2008 11:34, dean moore wrote:
  At this link, http://sagemath.org/doc/html/prog/node1.htmlwe have,
 
Absolutely *everybody* who uses *Sage* should contribute something
 back
  to *Sage* at some point.
 
  I have had my fun with sage, and debated, How can I return something to
  the community, however small?  I
  submitted a couple documentation fixes, but probably to the wrong place.
  A
  few questions led to tickets  bug
  fixes.  I have a trac account at *dmoore*.

 I can't speak for the rest of the developers, but as someone who has
 submitted
 a decent number of patches and has more in the works, I don't at all think
 you should let that sentence about everybody contributing make you feel
 guilty.  Personally, I'd be much more happy with a statement like:
Absolutely *everybody* who uses *Sage* is in a position to contribute
 something back to *Sage* at some point -- bug reports, mailing list
 participation, evangelism, and simple patches are all meaningful
 contributions.

 However, even if you do none of those little things, it is virtually
 inconceivable that you can be a heavy user of opensource with-out doing at
 least some evangelism or bug reporting.  If you pay me back for my
 patches
 by doing something for another totally unrelated package that I use (or
 maybe
 don't happen to use), I feel well-paid.

 And, well shoot, I've already been paid by learning so much from the other
 sage developers.  Helping sage development is worth it simply for the
 educational value.

 I realize that guilt is probably not your main motivation, but I'm just
 sharing my thoughts as a long time user of opensource software who also
 doesn't feel like I've contributed back as many good things as I've
 enjoyed
 myself.

 --
 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: Glib algorithms #2436 vote

2008-03-26 Thread Gary Furnish
There are non trivial changes involved in getting compilation without
internationalization, primarily because their error handling system uses
internationalization in many places.  Its not just a copy and paste job, but
now that I've figured out exactly what headers we need and set up autoconf
replacement its not too difficult either (I'd say I could probably do it in
an hour and someone not familiar in two or three).  On the other hand
applying individual patches to files would be very easy.  I also noticed
many changes but most of them did not seem to be centered around the
algorithms that I actually added.  I do not agree with the maintence
argument for a seperate spkg, but I would be more then willing to move it
out of libcsage if others are interested in using the algorithms for other
Sage SPKGs.
I have not yet benchmarked hash tables (nor actually tried them out), but
one of the big advantages is that they avoid much of the memory management
issues, so I don't expect them to be slower (and if they are, I may have to
fix that).

On Wed, Mar 26, 2008 at 3:06 PM, Robert Bradshaw 
[EMAIL PROTECTED] wrote:


 On Mar 26, 2008, at 11:57 AM, Gary Furnish wrote:

  Honestly, independent of the spkg vs libcsage issue, which is
  really an issue of semantics in my opinion, Sage has no high speed
  implementations of C algorithms. Sage can not escape this forever.
  Either someone will have to write their own at some point or we can
  use glib as a starting block. It is a big chunk of code, but Sage
  needs fast lists, hash tables, etc. Using glib as a starting point
  dramatically reduces debugging time, and is therefore preferable.

 Browsing the glib documentation, looking at its features, and reading
 what other people have to say about it I think this is a worthy set
 of things to include.

 One question I have is how much faster glib hashtables are than
 python dictionaries (as accessed directly through the Python/C API,
 which they will be from Cython if declared as type dict) and how
 much faster glib (linked or non-linked) lists are then Python lists.
 Have you run any tests? If there is not a significant speed
 difference, it would be preferable to use the Python datatypes to
 store Python objects when possible (for cleaner code and to minimize
 recounting woes). This wouldn't mean that glib isn't worth including
 however.

  I don't see how blocking a glib patch because of maintenance issues
  really helps solve this problem in the long run. Is it really
  preferable that I code up custom versions of the things so that I
  can have fast symbolic implementations?

 No. I think the point is that before including it we should consider
 issues of maintenance and this may influence where we put it. (Much
 easier, for instance, than trying to move it later.) I agree that it
 should probably be a seperate spkg.

  Most of the bloat in glib is internationaliztaion, which is not
  included in this patch. The parts that are included are simple
  enough and well documented enough (either in the code or in glib
  documents) that anyone should be able to easily maintain it.
  Furthermore, I intend to help maintain the C algorithms. I fully
  intend to work on them actively if their speed is not sufficient.
  Making a seperate spkg dramatically increases the difficulty of
  active development.

 I agree that making an spkg raises the barrier of working on it, but
 not by that much. Also, as an spkg, other components of Sage can make
 use of it, and I think it will be much easier to keep in sync with
 and contribute upstream.

 I'd also really like to avoid a fork, which is what this could easily
 turn into. I'm noticing a lot of changes from glib 2.16.1 at GNOME.
 Is this the version you started from? Are you simply copying a subset
 of the c/h files, or are there significant changes that need to be
 done every time glib is updated (every month or two looking at the
 history)?

 I would like to see this included, but I think these issues need to
 be resolved now, or they never will until it hurts us.

 - Robert

 
 
  On Wed, Mar 26, 2008 at 12:26 PM, William Stein [EMAIL PROTECTED]
  wrote:
 
  On Wed, Mar 26, 2008 at 11:16 AM, didier deshommes
  [EMAIL PROTECTED] wrote:
  
  
   On Wed, Mar 26, 2008 at 1:52 PM, mabshoff
   [EMAIL PROTECTED] wrote:
   
   
   
On Mar 26, 6:43 pm, William Stein [EMAIL PROTECTED] wrote:
 On Wed, Mar 26, 2008 at 10:09 AM, mabshoff

   
 [EMAIL PROTECTED] wrote:

  On Mar 26, 6:02 pm, William Stein [EMAIL PROTECTED] wrote:
   Is any of the code gpl v3+ only?

  No.

 That's good.



   How difficult will it be to update our version whenever
  upstream
   changes? Do only you know how to do this?

  Not particularly hard.

 You didn't answer my second question.
   
Gary did it and I didn't pay much attention to it. I assume it
  will be
documented. I don't consider such a thing hard once it has 

[sage-devel] Re: Glib algorithms #2436 vote

2008-03-26 Thread William Stein

On Wed, 26 Mar 2008 14:06:08 -0700, Robert Bradshaw [EMAIL PROTECTED] wrote:


 On Mar 26, 2008, at 11:57 AM, Gary Furnish wrote:

 Honestly, independent of the spkg vs libcsage issue, which is
 really an issue of semantics in my opinion, Sage has no high speed
 implementations of C algorithms. Sage can not escape this forever.
 Either someone will have to write their own at some point or we can
 use glib as a starting block. It is a big chunk of code, but Sage
 needs fast lists, hash tables, etc. Using glib as a starting point
 dramatically reduces debugging time, and is therefore preferable.

 Browsing the glib documentation, looking at its features, and reading
 what other people have to say about it I think this is a worthy set
 of things to include.

I have to strongly agree that I really want something with the feature
set of glib included, and that I don't think we have any business writing
it from scratch.

 One question I have is how much faster glib hashtables are than
 python dictionaries (as accessed directly through the Python/C API,
 which they will be from Cython if declared as type dict) and how
 much faster glib (linked or non-linked) lists are then Python lists.
 Have you run any tests? If there is not a significant speed
 difference, it would be preferable to use the Python datatypes to
 store Python objects when possible (for cleaner code and to minimize
 recounting woes). This wouldn't mean that glib isn't worth including
 however.

This is certainly worth knowing.


 I don't see how blocking a glib patch because of maintenance issues
 really helps solve this problem in the long run. Is it really
 preferable that I code up custom versions of the things so that I
 can have fast symbolic implementations?

 No. I think the point is that before including it we should consider
 issues of maintenance and this may influence where we put it. (Much
 easier, for instance, than trying to move it later.) I agree that it
 should probably be a seperate spkg.

 Most of the bloat in glib is internationaliztaion, which is not
 included in this patch. The parts that are included are simple
 enough and well documented enough (either in the code or in glib
 documents) that anyone should be able to easily maintain it.
 Furthermore, I intend to help maintain the C algorithms. I fully
 intend to work on them actively if their speed is not sufficient.
 Making a seperate spkg dramatically increases the difficulty of
 active development.

 I agree that making an spkg raises the barrier of working on it, but
 not by that much. Also, as an spkg, other components of Sage can make
 use of it, and I think it will be much easier to keep in sync with
 and contribute upstream.

 I'd also really like to avoid a fork, which is what this could easily
 turn into. I'm noticing a lot of changes from glib 2.16.1 at GNOME.
 Is this the version you started from? Are you simply copying a subset
 of the c/h files, or are there significant changes that need to be
 done every time glib is updated (every month or two looking at the
 history)?

 I would like to see this included, but I think these issues need to
 be resolved now, or they never will until it hurts us.

I agree.  And I don't think the above has been sufficiently
addressed yet.

Sorry to be a pain, but what you're proposing doing with glib is
almost the same as say taking the pyrex code and sticking it in

SAGE_ROOT/devel/sage/pyrex

under the main Sage hg repo.  Doing that would amount to both
a fork and a maintenance problem.   Even I didn't go that far
to entagle Pyrex with Sage when forking Pyrex.

I want to emphasize again that I strongly disagree with putting
all of glib-lite in SAGE_ROOT/devel/sage/, and I don't see
why doing that is going to make maintenance easier.

But I also want to emphasize that I strongly support glib-lite going
into Sage in some form, and I greatly greatly appreciate the hard
work you've put into making this possible.

  -- William

-- 
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: mercurial -- plain text -- mercurial

2008-03-26 Thread William Stein

On Wed, 26 Mar 2008 13:59:10 -0700, Robert Bradshaw [EMAIL PROTECTED] wrote:


 On Mar 26, 2008, at 1:56 PM, mabshoff wrote:

 On Mar 26, 9:35 pm, Robert Bradshaw [EMAIL PROTECTED]
 wrote:

 I was talking about something more sophisticated than export/import,
 which won't work the instant one has multiple branches. One needs to
 actually create multiple heads, apply patches, then resolve them. Hg
 export doesn't have enough information to do this.

 Ok, sounds good. Do you have any pointers or documentation on this?

 Not at the moment, but I've mucked around with mercurial more than
 most so I don't think it should be too hard once I start looking into
 it.

Several people suggested asking on the Mercurial list, and we should
do that.  There might already be an extension or something to do this.

I really don't like the prospect of say Jason Grout's idea to convert
the whole Sage repo to git and back just to do that.  Ick.

Carl Witty said:
 I still don't understand the requirements.

To convert the hg repo to a plain text non-obfuscated format from which
one can recreate the original hg repo.

 Second, are you worried about people checking in viruses, or people
 concealing a virus in the .hg directory without it being checked in?

Both.   Yes, I'm worried about people checking viruses.
Yes, I'm also worried about people concealing a virus in the .hg directory
without it being checked in.

 For the former concern, it seems that it would be sufficient to check
 out the files, and you don't need to recreate the repository.

That requires trusting Mercurial, and that there aren't any bugs in
Mercurial that allow one to work around such checks.  That isn't a reasonable
hypothesis, unfortunately.   Also, the virus could be in an old version
of the repo, so you have to check out that last 9000 or so states of
the repo.

  For the
 latter concern, perhaps something based on hg verify would suffice
 to ensure that nothing nasty has been hidden in the repository.

Again, this requires trusting Mercurial, and that nobody found a way
to workaround something like this in Mercurial. That's again not
a reasonable assumption to make.

  -- 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: Glib algorithms #2436 vote

2008-03-26 Thread William Stein

On Wed, 26 Mar 2008 11:57:26 -0700, Gary Furnish [EMAIL PROTECTED] wrote:

 Honestly, independent of the spkg vs libcsage issue, which is really an
 issue of semantics in my opinion, Sage has no high speed implementations of
 C algorithms.  Sage can not escape this forever.  Either someone will have
 to write their own at some point or we can use glib as a starting block.  It
 is a big chunk of code, but Sage needs fast lists, hash tables, etc.  Using
 glib as a starting point dramatically reduces debugging time, and is
 therefore preferable.

 I don't see how blocking a glib patch because of
 maintenance issues really helps solve this problem in the long run.  Is it
 really preferable that I code up custom versions of the things so that I can
 have fast symbolic implementations?

I'm not trying to block the patch in order to solve the problem.  I'm just 
hoping
to convince you that putting this code in libcsage is the wrong approach for
numerous reasons.  That a glib-lite derivative of glib is best done as a 
separate
spkg, and that this has by far the best chance of living, being useful outside
of Sage, etc. Also, from my point of view almost _everybody_ involved in 
Sage has
come and gone, at one point or another, and I want *nothing* in Sage whose 
maintenance
depends on only one person.  I'm scared of a bus factor of 1 for anything
in Sage.

 Most of the bloat in glib is internationaliztaion, which is not included in
 this patch.  The parts that are included are simple enough and well
 documented enough (either in the code or in glib documents) that anyone
 should be able to easily maintain it.

That's very good to know.

  Furthermore, I intend to help
 maintain the C algorithms.  I fully intend to work on them actively if their
 speed is not sufficient. Making a seperate spkg dramatically increases the
 difficulty of active development.

Why???  I could have said the same about Pyrex two years ago, and it would
have been silly.  So could you please explain why this is true of glib-lite.
I'm not saying it isn't try!  I just don't see why it should be.  I know
you're extremely good at writing and arguing points, so please be patient
with me and explain why Making a seperate spkg dramatically increases the
difficulty of active development.   Again, I'm *not* at all sure I'm right!
And you've been much closer to that code than I am, so you're much more likely
to be right.  That said, you've not given any argument, and this is the time
to work these things out -- that's why we have a vote, etc., for packages.

  -- William


 On Wed, Mar 26, 2008 at 12:26 PM, William Stein [EMAIL PROTECTED] wrote:


 On Wed, Mar 26, 2008 at 11:16 AM, didier deshommes [EMAIL PROTECTED]
 wrote:
 
 
   On Wed, Mar 26, 2008 at 1:52 PM, mabshoff
   [EMAIL PROTECTED] wrote:
   
   
   
 On Mar 26, 6:43 pm, William Stein [EMAIL PROTECTED] wrote:
  On Wed, Mar 26, 2008 at 10:09 AM, mabshoff
 
   
 [EMAIL PROTECTED] wrote:
 
On Mar 26, 6:02 pm, William Stein [EMAIL PROTECTED] wrote:
 Is any of the code gpl v3+ only?
 
No.
 
  That's good.
 
 
 
 How difficult will it be to update our version whenever
 upstream
 changes?  Do only you know how to do this?
 
Not particularly hard.
 
  You didn't answer my second question.
   
 Gary did it and I didn't pay much attention to it. I assume it will
 be
 documented. I don't consider such a thing hard once it has been
 documented.
   
   
 Why put this in c_lib instead of a separate spkg called
 glib-min?
 Couldn't such a package be useful outside of sage?
 
It is easiest if we put it into libcsage.
 
  That's not a good enough answer.   Until now almost all code in
 libcsage and
  the main sage library has been new code we've written -- except a
 few
  exceptions,
  where we greatly regretted them greatly and moved the code out
 later.
  So from experience I'm very opposed to this code being in c_lib.
 
  I vote -1 to this code going into sage unless:
 (1) it is put in a separate spkg, and
   
 We can certainly do that.
   
   
 (2) the process of extracting glib-min from the official glib
  tarball is automated.
   
 That is unlikely to happen since it requires manual interaction. It
 will break in the next release in six months and writing automated
 tools will take longer than actually doing the work in the first
 place.
 
   How frequent are the glib releases? If they're not that frequent, this
   should less than an issue as long as Gary documents what he's done
   somewhere :)

 If you've been maintaining packages for Sage for three years, and expect
 to be maintaining them for years to come, you'de view this as a much
 bigger deal. It's really bad when there is a big chunk of code in Sage
 that gets out of stream with up stream, but no easy way to resolve that
 

[sage-devel] Re: Glib algorithms #2436 vote

2008-03-26 Thread Robert Bradshaw

On Mar 26, 2008, at 4:48 PM, Gary Furnish wrote:

 I have not yet benchmarked hash tables (nor actually tried them  
 out), but one of the big advantages is that they avoid much of the  
 memory management issues, so I don't expect them to be slower (and  
 if they are, I may have to fix that).

It is my understanding that Python dictionaries have been optimized a  
lot, because in the end most of the speed of Python boils down to how  
fast it can do dictionary lookups. I'm thinking specifically of the  
case where keys and/or values are Python objects. (If they are not  
then wrapping them can be a large overhead.) As for memory management  
issues, if one is storing Python objects than this is actually a  
bonus, otherwise one would have to do the memory management manually  
(which is both error-prone and negates any savings).

- 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
-~--~~~~--~~--~--~---