[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread Ondrej Certik

On Tue, May 5, 2009 at 10:41 PM, Robert Bradshaw
rober...@math.washington.edu wrote:

 On May 5, 2009, at 9:23 PM, Brian Granger wrote:

 Michael,

 Thank you for bringing up this issue as it does clarify some aspect of
 Sage derived code and licensing.  But, in my mind, the sage as
 interpreter aspect is a small perturbation on top of the zero-order:

 Sage = Python + GPL libraries

 That is, for the most part, I view the interpreter as Python itself.
 But still the FAQ section is very clear that the presence of all the
 GPL libraries loaded into an interpreter is sufficient to make sage
 using scripts like Ondrej's GPL bound.  I also understand that not
 everyone agrees on this interpretation.

 The concept of derivative work transcends the GPL, what was quoted
 was the FSF's interpretation of copyright law, which is obviously
 going to be bias towards maximal viral impact. Personally, I think
 qualitative aspects are more important than technical aspects (static
 vs. dynamic linking) in asking whether or not something is morally or
 legally a derivative work.

 One could argue with exactly the same logic that a Mathematica
 worksheet is a derivative work of Mathematica, and a Matlab script is
 a derivative work of Matlab. (Both are interpreters + large
 libraries, with much of the underlying core written in the exact same
 language that the end user uses). The copyrights of these two
 programs (all rights reserved) don't allow redistribution at all,
 does that mean every shared Mathematica/Matlab script (without the
 express permission of the respective coorperations) is a violation of
 copyright? I think not, and the same applies to Sage worksheets and
 scripts.

I think this very much depends on what's written in the license of
Mathematica and Maple. I didn't read their license, but I would not be
surprised if they do *not* restrict licenses of your own scripts. GPL,
on the other hand, speaks about derivative works and licensing your
own stuff, that uses a GPLed library/code.

So I think that from the fact, that you can license your own
Mathematica code using any license you want, doesn't follow that you
can license a Sage script using any license you want --- in fact, as
William just clarified, if the script uses a Sage code, and you
redistribute it publicly, it has to be GPL.

William, so do you think that my script A above has to be GPL? I
already distributed it publicly on this list.


 The repercussions of this could mean that papers and books couldn't
 be published with code snippets in them, one would require copyright
 notices for anyone using Sage in their homework (and showing their
 work), and we've all been violating the GPL by claiming the wiki is
 licensed under Creative Commons. (OK, maybe small snippets could be
 justified under fair use, but still...)

 But in my mind, that was the TRIVIAL part of the original question I
 asked.  The more subtle aspect is centered around this issue:

 * Does Sharing a notebook (with other users of the notebook web app)
 constitute distribution and is that sufficient to trigger the
 application of the GPL?

 In other words, do I need to tell my students...

 When you share your Sage notebooks with me and other's in the class,
 you must agree to license them under the GPL

 I think sharing a worksheet, whether it be clicking on the publish
 button or emailing/posting a .sws file all have the same
 repercussions. In fact, flipping the permissions bit and pointing you
 to the file under a shared filesystem with the intent that you read
 it would probably classify as distribution. Ultimately, in the US
 system at least, it is the courts that will decide this, but as long
 as one is clearly respecting the intent of the GPL (which I don't
 think forces Sage scripts to be GPL'd, though of course that's up to
 interpretation as well) one retains the respect of the community, and
 if one is worried about the nitpicky legal aspects, I doubt any Sage
 developer is going to be suing any of your students for copyright
 violation for publishing an original notebook :-).

But what about FSF suing Brian?


 Cheers,

 Brian

 PS[0] = even though I choose to use the GPL myself sometimes, this is
 what I hate about it.  It is too damn complicated.  Even on a strongly
 pro-GPL project like Sage, it doesn't seem like most people have any
 idea what it says and means.  I don't mean to pick on anyone
 individually, but on this thread, I have heard _multiple_ different
 and incompatible interpretations of the GPL.

 I wholeheartedly agree. Sometimes I think it's unfortunate that the
 de-facto standard for copyleft licenses ended up being such a lengthy
 and messy one. This is one of the beauties of the BSD--it's so clean.
 Even the CC got this mostly right (it's two pages of legalize, but
 much better than most). However, if one wants to release code in a
 copyleft manner, going with the GPL is often a better path than
 choosing an obscure/incompatible one.

 PS[1] = It is 

[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread Roman Pearce

If you were to print out the source code and distribute it in a book,
it should not change the conclusions of copyright law.  People tend to
get very caught up in technical theories, and they often view the law
the way they view software, but a judge will do a basic sanity
check.  If you published your own script in a book, would it be a
derived work of the interpreter ?  No.  If you published binary
executable code in a book, produced by running your own code through
GCC, is it partially derived from GCC ?  Yes, and hence the exception
for GCC.  Now for dynamic linking, what if you wrote a virus that
exploits and infects a critical Windows file, and you publish its
source code in a book.  Is that derived from Windows ?  Probably not,
because the thing has creative value distinct from Windows, but good
luck fighting Microsoft in court!  The point is, it doesn't matter how
you distribute, so for human readable formats it is often instructive
to ask whether you would need permission to publish it in print.
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread mabshoff



On May 5, 10:50 pm, William Stein wst...@gmail.com wrote:
 On Tue, May 5, 2009 at 3:25 PM, Brian Granger ellisonbg@gmail.com wrote:

SNIP

  * Is the code pure python or does it use the sage syntax?  If the code
  uses the sage syntax, I think it must be released under the GPL.
  * Does the code being written actually use any GPL libraries (like the
  sage python package)?  If the code uses GPL libraries, I again think
  it must be GPL'd.

 Publicly distributed code using GPL'd library must be GPL'd.

Well, having thought about this for a while I would like to point out
something: The Sage notebook communicates with a Sage python process
via pseudo tty. I.e. once the Sage notebook is spun off and no longer
uses GPLed libraries that are used as extensions the situation in the
FSF's FAQ no longer applies. As long as there is a socket or fork()
between your code and Sage the GPL no longer applies.

Something closely related it a known hole in the GPL, i.e. you can
take GPLed code, modify it, expose it to the user via a webinterface
and the GPL does not apply here since no distribution happens. That is
why we have the Affero general public license.  RMS has obviously
bitched about how software as a service is taking away out freedom,
but yadda yadda yadda :).

SNIP

   This is relevant, because I need to
  clarify these issues for students and faculty who would use Sage in
  this manner.  It isn't necessarily bad if the answer is GPL, but we
  all need to know this.

 You might consider consulting with a lawyer at your university.
 Universities sometimes have
 lawyers for this sort of thing.

+1

Note that any GPLed codebase like Singular or pari would also be viral
to high level code and I cannot believe that this is the way the GPL
is intended. Anything using readline, i.e. IPython, would be infected,
too, and that goes way too far IMHO (You can obviously use libedit or
no readline at all to work around this).

In the end the FSF seems to be rather wishy washy about the whole
thing, i.e. compare the recent discussion about Maxima where a
potential export licenses requirement was mandated by the DOE and it
was cleared by a FSF license engineer that adding the DOE note to
COPYING would be GPL compatible. That restriction IMHO clearly is
against the spirit of the GPL. But there are loads of people at the
FSF who get their panties in a twist about using binary firmware in
the Linux kernel, etc. And don't get me started on the [L]GPL V3 ...

 William

Licensing discussions just suck and are a waste of time. Sigh 

Cheers,

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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread Brian Granger

William,

Thanks for your replies.  I mostly want to know what the consensus
interpretation of these issues is amongst the Sage devs.  Slowly, I am
getting a picture of what this consensus looks like.

 Publicly distributed code using GPL'd library must be GPL'd.

Great, to first order that is my understanding as well.

 * Does the code run without sage?
 * Does a sage notebook constitute source code in the GPL sense?

 Yes.

Again, this makes sense to me.  Interestingly enough though, it
doesn't seem like all of the people on the this feel this way.

 * Is a notebook (even one that uses the python mode) a derivative
 work of sage?

 No.

 * If a sage notebook is source code does clicking Share in the
 notebook constitute distribution.  In other words, if a bunch of
 people start sharing sage notebooks, do they all have to be GPL?

 No.  This is internal distribution, so the GPL doesn't apply.  This is
 no different than the NSA (say) distributing a program from one
 researcher to another, and obviously they don't have to GPL their
 code.

Ahh, this distinction between internal sharing and public distribution
is important and I hadn't thought about that.

 The usage case I have in mind is using this to teach University
 courses in computational physics.  I know others are already doing
 this (William is right now I think).  If I share notebooks with
 students and they with me, does everything have to be GPL?

 No, definitely not.   But if you post the notebooks publicly and they make use
 of the sage library, then they have to be GPL'd.

Great, this is what I thought.  But, then some (or even many) Sage
users and devs are in violation of the GPL.  I think it would be
useful to document these things somewhere so Sage users would know
very clearly how the GPL affects them.

  If we only
 use non-GPL libraries and the python mode of the notebook could we
 choose a different license?

 Yes.

Great.

Thanks!

Brian

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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread William Stein

On Tue, May 5, 2009 at 10:41 PM, Robert Bradshaw
rober...@math.washington.edu wrote:

 On May 5, 2009, at 9:23 PM, Brian Granger wrote:

 Michael,

 Thank you for bringing up this issue as it does clarify some aspect of
 Sage derived code and licensing.  But, in my mind, the sage as
 interpreter aspect is a small perturbation on top of the zero-order:

 Sage = Python + GPL libraries

 That is, for the most part, I view the interpreter as Python itself.
 But still the FAQ section is very clear that the presence of all the
 GPL libraries loaded into an interpreter is sufficient to make sage
 using scripts like Ondrej's GPL bound.  I also understand that not
 everyone agrees on this interpretation.

 The concept of derivative work transcends the GPL, what was quoted
 was the FSF's interpretation of copyright law, which is obviously
 going to be bias towards maximal viral impact. Personally, I think
 qualitative aspects are more important than technical aspects (static
 vs. dynamic linking) in asking whether or not something is morally or
 legally a derivative work.

 One could argue with exactly the same logic that a Mathematica
 worksheet is a derivative work of Mathematica, and a Matlab script is
 a derivative work of Matlab.

Note that the GPL is viral, but the MATLAB/Mathematica/etc copyrights are not.

 When you share your Sage notebooks with me and other's in the class,
 you must agree to license them under the GPL

 I think sharing a worksheet, whether it be clicking on the publish
 button or emailing/posting a .sws file all have the same
 repercussions.
 In fact, flipping the permissions bit and pointing you
 to the file under a shared filesystem with the intent that you read
 it would probably classify as distribution.

The GPLdistinguishes between sharing privately (in an organization)
and publishing publicly. See the GPL FAQ:

Does the GPL require that source code of modified versions be posted
to the public?
The GPL does not require you to release your modified version, or
any part of it. You are free to make modifications and use them
privately, without ever releasing them. This applies to organizations
(including companies), too; an organization can make a modified
version and use it internally without ever releasing it outside the
organization.

But if you release the modified version to the public in some way,
the GPL requires you to make the modified source code available to the
program's users, under the GPL.

Thus, the GPL gives permission to release the modified program in
certain ways, and not in other ways; but the decision of whether to
release it is up to you.




-- 
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 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: #5991: Add a standard constructor for dynamic classes

2009-05-06 Thread Nicolas M. Thiery

On Tue, May 05, 2009 at 03:11:48PM -0700, Nicolas Thiéry wrote:
   Dear Franco, dear all,
 
 Patch of the day: #5991 Add a standard constructor for dynamic classes
 
 Franco, since you are using dynamic classes in Sage-Words, could you
 review or comment on it?

For information: I just added to the patch the following discussion on
the relevance of the dynamic class paradigme for Sage.

Best,
Nicolas

--
..topic: Why dynamic classes?

The short answer:

- Multiple inheritance is a powerful tool for constructing new classes
  by combining preexisting building blocks.
- There is a combinatorial explosion in the number of potentially
  useful classes that can be produced this way.
- The implementation of standard mathematical constructions calls for
  producing such combinations automatically.
- Dynamic classes, i.e. classes created on the fly by the Python
  interpreter, are a natural mean to achieve this.

The long answer:

Say we want to construct a new class ``MyPermutation`` for
permutations in a given set `S` (in Sage, `S` will be modelled by a
parent, but we won't discuss this point here).  First, we have to
choose a data structure for the permutations, typically among the
following:

 - Stored by cycle type
 - Stored by code
 - Stored in list notation
   - C arrays of short ints (for small permutations)
   - python lists of ints (for huge permutations)
   - ...
 - Stored by reduced word
 - Stored as a function
 - ...

Luckily, the Sage library provides (or will provide) classes
implementing each of those data structures. Those classes all share a
common interface (or possibly a common abstract base class). So we can
just derive our class from the chosen one::

class MyPermutation(PermutationCycleType):
...

Then we may want to further choose a specific memory behavior (unique
representation, copy-on-write) which (hopefuly) can again be achieved
by inheritance.

class MyPermutation(UniqueRepresentation, PermutationCycleType):
 ...

Finaly, we may want to endow the permutations in `S` with further
operations coming from the (algebraic) structure of `S`:

 - group operations
 - or just monoid operations (for a subset of permutations not stable by 
inverse)
 - poset operations (for left/right/Bruhat order)
 - word operations (searching for substrings, patterns, ...)

Or any combination thereof. Now, our class typically looks like::

class MyPermutation(UniqueRepresentation, PermutationCycleType, 
PosetElement, GroupElement):
 ...

Note the combinatorial explosion in the potential number of classes
which can be created this way.


In practice, such classes will be used in mathematical constructions
like::

SymmetricGroup(5).subset(... TODO: find a good example in the context above 
...)

In such a construction, the structure of the result, and therefore the
operations on its elements can only be determined at execution
time. Let us take another standard construction::

A = cartesian_product( B, C )

Depending on the structure of `B` and `C`, and possibly on further
options passed down by the user, `A` may be:

 - an enumerated set
 - a group
 - an algebra
 - a poset
 - ...

Or any combination thereof.

Hardcoding classes for all potential combinations would be at best
tedious. Furthermore, this would require a cumbersome mechanism to
lookup the appropriate class depending on the desired combination.

Instead, one may use the ability of Python to create new classes
dynamicaly:

type(class name, tuple of base classes, dictionary of methods)

This paradigm is powerful, but there are some technicalities to
address. The purpose of this library is to standardize its use within
Sage, and in particular to ensure that the constructed classes are
reused whenever possible (unique representation), and can be pickled.

..topic: combining dynamic classes and Cython classes

TODO

--
Nicolas M. Thiéry Isil nthi...@users.sf.net
http://Nicolas.Thiery.name/

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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread William Stein

On Tue, May 5, 2009 at 11:12 PM, Brian Granger ellisonbg@gmail.com wrote:
 No, definitely not.   But if you post the notebooks publicly and they make 
 use
 of the sage library, then they have to be GPL'd.

 Great, this is what I thought.

 But, then some (or even many) Sage
 users and devs are in violation of the GPL.

Really?  Who?

William

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



[sage-devel] Re: strange rounding with SymbolicArithmetic

2009-05-06 Thread Henryk Trappmann

Ah now I see, you mean though it displays 1/384 it is internally still
the above sum, which is computed when evaluated with n.
Well but then this contains imho 2 bugs:
1.  1**(a/b) should be the integer 1.
2. The display of  a SymbolicArithmetic should show whats really there
and not reduce before showing.

Henryk

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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread Brian Granger

At the beginning of this thread, someone posted a link to the Sage worksheet:

http://abstract.ups.edu/sage-aata.html

That is 1) being publicly distributed and 2) is not being released
under the GPL.

Plus, anyone can create an account on the public Sage notebook
servers, so basically any worksheet that is Shared there falls under
this category.

Finally a quick Google for Sage Worksheet or .sws reveals *many*
public Sage worksheets, and at a glance, none of them have any
licensing information.

Now that I think about it, how would I release a worksheet under the
GPL.  The usual way is to add:

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later versionetc.

to the source.  Is there a simple way of doing that?  Would it make
sense to enable notebook users to add this to their Worksheet by
simply clicking a box Make this GPL.  Then, when a Worksheet is
loaded, if it has the GPL text, the notebook could display it or
notify the user This Worksheet is GPLd.

Cheers,

Brian

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



[sage-devel] Re: strange rounding with SymbolicArithmetic

2009-05-06 Thread William Stein

On Tue, May 5, 2009 at 11:16 PM, Henryk Trappmann
bo198...@googlemail.com wrote:

 Ah now I see, you mean though it displays 1/384 it is internally still
 the above sum, which is computed when evaluated with n.

True.  In Sage right now the internal form of the expression (not the
simplified form) is used by the n command.  This will change when
Sage switches from using maxima-based symbolics to Pynac.

By the way, you can use the real interval field to get a floating
point approximation to any symbolic expression to a given number of
digits of precision.  Every digit is definitely right except the one
right before the question mark:

sage: a = 1/(48*sqrt(1)) - 7/(96*1**(3/2)) + 3/(32*1**(5/2)) - 5/ (128*1**(7/2))
sage: RealIntervalField(100)(a) # increase 100 for more digits
0.0026041667?

I think the n function (numerical_approx) for symbolics should be
changed to using interval arithmetic.  This will be a huge
improvement.  Notice, e.g., that interval arithmetic very nicely gives
the right answer for the infamous sin(10^50):

sage: a = sin(10^50)
sage: a.n(53)
-0.480500143493759
sage: a.n(100)
0.60974154556722786199645650055
sage: RealIntervalField(100)(a)
0.?
sage: RealIntervalField(1000)(a)
-0.7896724934293100827102895399174077539600834046214027191457808736221899969800609898633436757589688470442999273506152178357769064871103469499564331175635613221319397479785737324994506546860108913238488404198306006819757685879489185272089985858148036954222175628785469474395231359019098600625732453528693?
sage: RealIntervalField(2000)(a)
-0.78967249342931008271028953991740775396008340462140271914578087362218999698006098986334367575896884704429992735061521783577690648711034694995643311756356132213193974797857373249945065468601089132384884041983060068197576858794891852720899858581480369542221756287854694743952313590190986006257324535286926640214204183176856658976160340849634781130568053474154330242776565926107540133198976420887112928640131582614537425282391078909233424580311555104358881651194953182665408243214532152322603956371555619997139323527489307648072219268176687894373677502675114853503742816202001868587837402822439060931321957?

I've made fixing this trac #5993:

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

And a big thanks to Carl Witty for implementing RealIntervalField,
which makes the above possible.  The above wasn't in Sage when I
implemented numerical_approx, so it wasn't an option to use intervals
back then.  But now it is, and we should switch to it.

William

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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread Brian Granger

 Licensing discussions just suck and are a waste of time. Sigh 

Yes, I fully a agree with youexcept when people learn new things
about the GPL.  I think some important things have come out of this
discussion:

* A notebook/Worksheet is source code and can potentially be a
derivative work of Sage or any of the libraries that Sage ships with.

* If a particular Worksheet uses a GPL library, and that Worksheet is
distributed to the public (not just Shared internally on a single Sage
notebook server), it must be GPL.

* Currently, there is not a clear way of indicating or learning about
the license of a Worksheet.

* The GPL is confusing as hell...

Cheers,

Brian

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



[sage-devel] Sage 3.4.2 released (and this time it is the final one)

2009-05-06 Thread mabshoff

Hello folks,

apologies that it took a while, but the final 3.4.2 source tarball
announced a couple days ago turned out to be not truly final :). So
here are md5sums to make the difference clear:

8fe47c23872bc39ceb0136602062c917  sage-3.4.2.tar
fe5ce17b31557f57f32a714855f22d26  sage-3.4.2-sage.math-only-x86_64-
Linux.tar.gz

All the bits are in the usual place in

   http://sage.math.washington.edu/home/mabshoff/release-cycles-3.4.2/

From here on it is all about Sage 4.0.

Cheers,

Michael

Merged in Sage 3.4.2:

#5981: Michael Abshoff: Sage 3.4.2: prime_pi() broken on 32 bit
[Reviewed by Jaap Spies]
#5983: Michael Abshoff: cmp related doctest failure in sage/schemes/
jacobians/abstract_jacobian.py [Reviewed by William Stein]
#5984: Michael Abshoff: cmp related doctest failure in sage/modular/
arithgroup/arithgroup_perm.py [Reviewed by William Stein]
#5992: Michael Abshoff: Set stack size in Maxima.spkg to 32kb for
clisp [Reviewed by William Stein]

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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread William Stein

On Tue, May 5, 2009 at 11:30 PM, Brian Granger ellisonbg@gmail.com wrote:

 At the beginning of this thread, someone posted a link to the Sage worksheet:

 http://abstract.ups.edu/sage-aata.html

 That is 1) being publicly distributed and 2) is not being released
 under the GPL.

 Plus, anyone can create an account on the public Sage notebook
 servers, so basically any worksheet that is Shared there falls under
 this category.

 Finally a quick Google for Sage Worksheet or .sws reveals *many*
 public Sage worksheets, and at a glance, none of them have any
 licensing information.

 Now that I think about it, how would I release a worksheet under the
 GPL.  The usual way is to add:

 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later versionetc.

 to the source.  Is there a simple way of doing that?  Would it make
 sense to enable notebook users to add this to their Worksheet by
 simply clicking a box Make this GPL.  Then, when a Worksheet is
 loaded, if it has the GPL text, the notebook could display it or
 notify the user This Worksheet is GPLd.

Irregardless of all the licensing discussion above about derived
works, etc, it would be nice to provide a simple way for users to GPL
a worksheet, along with a link to the GPL, GPL faq, etc.

 -- William

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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread mabshoff



On May 5, 11:34 pm, Brian Granger ellisonbg@gmail.com wrote:
  Licensing discussions just suck and are a waste of time. Sigh 

 Yes, I fully a agree with youexcept when people learn new things
 about the GPL.  I think some important things have come out of this
 discussion:

 * A notebook/Worksheet is source code and can potentially be a
 derivative work of Sage or any of the libraries that Sage ships with.

Yep.

 * If a particular Worksheet uses a GPL library, and that Worksheet is
 distributed to the public (not just Shared internally on a single Sage
 notebook server), it must be GPL.

I think this is far from clear, but the FSF's interpretation of the
license. The OSI thinks differently for example as pointed out
earlier.

 * Currently, there is not a clear way of indicating or learning about
 the license of a Worksheet.

That might be so, but why would it matter? If you write code and link
against a GPLed library there is no mechanism to remind someone that
they have to abide by the GPL. But I agree that it is far from obvious
to a user of Sage that the GPL of worksheets is even an issue and
might apply to published Sage code. It would be nice to add something
to the manual that gives various POVs of the problem, but in the end
it should conclude that anyone concerned about this should consult a
lawyer since the Sage project is not in the position to give legal
advice.

 * The GPL is confusing as hell...

The main issue here is that there is the letter of the law and the
intend of the GPL. And there is way too much of a grey zone (even if
you limit yourself to US case law) to make me comfortable. And I would
like to emphasize again that just one should just not take the FSF by
their word since they are clearly not a neutral player here.

 Cheers,

 Brian

Cheers,

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



[sage-devel] Re: Graph Theory latex(G)

2009-05-06 Thread Nicolas M. Thiery

On Tue, May 05, 2009 at 08:50:09PM -0700, Fidel wrote:
 Hello,
 
 As mentioned in
 
 http://groups.google.com/group/sage-devel/browse_thread/thread/834be3b28bd7919f/45629a29507db4cb?lnk=gstq=tkz#45629a29507db4cb
 
 I am trying to write latex(G) for a graph.
 
 I now have a newer version which supports vertex, edge and label
 colors, as well as different styles from the tkz-graph package. There
 is already a ticket
 
 http://trac.sagemath.org/sage_trac/ticket/5975

Btw: you may want to have a quick look to:

http://mupad-combinat.svn.sourceforge.net:80/viewvc/mupad-combinat/trunk/MuPAD-Combinat/lib/GRAPH/dotTeX.mu
http://mupad-combinat.svn.sourceforge.net:80/viewvc/mupad-combinat/trunk/MuPAD-Combinat/lib/GRAPH/TeX.mu

Which does just this for graphs in MuPAD (well almost: it's using
plain pgf/tikz, and it's relying on graphviz for the layout).

start lame advertisement
For some examples of produced pictures, you can have a look at:
http://nicolas.thiery.name/habilitation/main.pdf
/...


Cheers,
Nicolas
--
Nicolas M. Thiéry Isil nthi...@users.sf.net
http://Nicolas.Thiery.name/

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



[sage-devel] order of elements in the field

2009-05-06 Thread Kwankyu

Hi,

This is surprising to me.

sage: F.a = GF(2^3)
sage: a.order(),a.additive_order(),a.multiplicative_order()
(2, 2, 7)

Who is interested in the additive order of a? I think that order()
should be aliased to multiplicative_order().

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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread William Stein

On Tue, May 5, 2009 at 11:45 PM, mabshoff mabsh...@googlemail.com wrote:



 On May 5, 11:34 pm, Brian Granger ellisonbg@gmail.com wrote:
  Licensing discussions just suck and are a waste of time. Sigh 

 Yes, I fully a agree with youexcept when people learn new things
 about the GPL.  I think some important things have come out of this
 discussion:

 * A notebook/Worksheet is source code and can potentially be a
 derivative work of Sage or any of the libraries that Sage ships with.

 Yep.

 * If a particular Worksheet uses a GPL library, and that Worksheet is
 distributed to the public (not just Shared internally on a single Sage
 notebook server), it must be GPL.

 I think this is far from clear, but the FSF's interpretation of the
 license. The OSI thinks differently for example as pointed out
 earlier.

 * Currently, there is not a clear way of indicating or learning about
 the license of a Worksheet.

 That might be so, but why would it matter? If you write code and link
 against a GPLed library there is no mechanism to remind someone that
 they have to abide by the GPL. But I agree that it is far from obvious
 to a user of Sage that the GPL of worksheets is even an issue and
 might apply to published Sage code. It would be nice to add something
 to the manual that gives various POVs of the problem, but in the end
 it should conclude that anyone concerned about this should consult a
 lawyer since the Sage project is not in the position to give legal
 advice.

We should be honest to our users about some of the potential pitfalls
and responsibilities associated with using Sage.   When users (or
developers) build their work on Sage, they are building their work on
GPL'd code, and there are certainly ramifications involved in doing
this.  For example, they can't just take any of their Sage programs
and close source and sell them, etc.It doesn't do any good in the
long run to pretend there aren't such ramifications. The situation
with Sage is really different than the situation with GIMP or
OpenOffice or Emacs, and we should be upfront about that.

 -- William


 * The GPL is confusing as hell...

 The main issue here is that there is the letter of the law and the
 intend of the GPL. And there is way too much of a grey zone (even if
 you limit yourself to US case law) to make me comfortable. And I would
 like to emphasize again that just one should just not take the FSF by
 their word since they are clearly not a neutral player here.

 Cheers,

 Brian

 Cheers,

 Michael
 




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

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



[sage-devel] Re: order of elements in the field

2009-05-06 Thread William Stein

On Tue, May 5, 2009 at 11:50 PM, Kwankyu ekwan...@gmail.com wrote:

 Hi,

 This is surprising to me.

 sage: F.a = GF(2^3)
 sage: a.order(),a.additive_order(),a.multiplicative_order()
 (2, 2, 7)

 Who is interested in the additive order of a? I think that order()
 should be aliased to multiplicative_order().

Well I think order should be deleted, since it's potentially
ambiguous and confusing.

By the way, since a is an element of F (since a.parent() == F), and
the only natural group structure on F is addition, the right meaning
of order would be the additive order.

 -- William

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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread Rob Beezer

OK, Brian, you beat me to it, I was going to post this link again in
an effort to prolong this thread.  ;-)

This link points to a tutorial about how to use Sage to do group
theory.  PDF and *.sws formats.  Lots of text, but significant
sections of Sage code, including an @interact.  Is this a text or a
program?  Book or code?  No import statement anywhere - i'm not
linking to anything.  A reader/user can do what they want with it -
read it or manipulate it digitally (ie upload it into Sage).  Is this
like a book or instruction manual and I can license it as GFDL or CC,
as I choose?  Or is this a program and the FSF FAQ takes precedence
and I *must* yield to their overarching interpretation of their
license?

I claim, like Ondrej's hypothetical CD, that this is my creative work,
independent of Sage, and I can do what I want with it,  beginning with
a strict copyright.  I have not used Sage to create it, William Stein
(as titular copyright holder of Sage) has no sway, and neither does
FSF.  I have entered into no contract with Sage, Stein or the FSF in
the course of its creation, I haven't copied their materials or used
them in any fashion to create my tutorial.   I'm totally
independent.   Words on a page - my own thoughts and expressions - my
creative output.  Maybe I'll revoke the CC license on my next revision
and users can pay me a royalty for every web-view.

I think the notion that I am beholden to apply the GPL to a work
created with a text editor (Kate), a Python Script (written
personally) and translation tool with a Latex Public License (Tex4ht)
is absurd.  Just where does Sage's GPL license apply to this?

 http://abstract.ups.edu/sage-aata.html
 That is 1) being publicly distributed and 2) is not being released
 under the GPL.

I plan to keep it that way.

Rob

On May 5, 11:30 pm, Brian Granger ellisonbg@gmail.com wrote:
 At the beginning of this thread, someone posted a link to the Sage worksheet:

 http://abstract.ups.edu/sage-aata.html

 That is 1) being publicly distributed and 2) is not being released
 under the GPL.

 Plus, anyone can create an account on the public Sage notebook
 servers, so basically any worksheet that is Shared there falls under
 this category.

 Finally a quick Google for Sage Worksheet or .sws reveals *many*
 public Sage worksheets, and at a glance, none of them have any
 licensing information.

 Now that I think about it, how would I release a worksheet under the
 GPL.  The usual way is to add:

 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later versionetc.

 to the source.  Is there a simple way of doing that?  Would it make
 sense to enable notebook users to add this to their Worksheet by
 simply clicking a box Make this GPL.  Then, when a Worksheet is
 loaded, if it has the GPL text, the notebook could display it or
 notify the user This Worksheet is GPLd.

 Cheers,

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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread Robert Bradshaw


On May 5, 2009, at 11:12 PM, William Stein wrote:


 On Tue, May 5, 2009 at 10:41 PM, Robert Bradshaw
 rober...@math.washington.edu wrote:

 On May 5, 2009, at 9:23 PM, Brian Granger wrote:

 Michael,

 Thank you for bringing up this issue as it does clarify some  
 aspect of
 Sage derived code and licensing.  But, in my mind, the sage as
 interpreter aspect is a small perturbation on top of the zero- 
 order:

 Sage = Python + GPL libraries

 That is, for the most part, I view the interpreter as Python itself.
 But still the FAQ section is very clear that the presence of all the
 GPL libraries loaded into an interpreter is sufficient to make sage
 using scripts like Ondrej's GPL bound.  I also understand that not
 everyone agrees on this interpretation.

 The concept of derivative work transcends the GPL, what was quoted
 was the FSF's interpretation of copyright law, which is obviously
 going to be bias towards maximal viral impact. Personally, I think
 qualitative aspects are more important than technical aspects (static
 vs. dynamic linking) in asking whether or not something is morally or
 legally a derivative work.

 One could argue with exactly the same logic that a Mathematica
 worksheet is a derivative work of Mathematica, and a Matlab script is
 a derivative work of Matlab.

 Note that the GPL is viral, but the MATLAB/Mathematica/etc  
 copyrights are not.

The MATLAB/Mathematica/etc copyrights don't allow any redistribution,  
so if their worksheets are derivative works, then one isn't allowed  
to share them at all. (On the other hand, if they're not derivative  
works, then nor is a Sage worksheet, and so it's not required to be  
GPL'd).

 When you share your Sage notebooks with me and other's in the  
 class,
 you must agree to license them under the GPL

 I think sharing a worksheet, whether it be clicking on the publish
 button or emailing/posting a .sws file all have the same
 repercussions.
 In fact, flipping the permissions bit and pointing you
 to the file under a shared filesystem with the intent that you read
 it would probably classify as distribution.

 The GPLdistinguishes between sharing privately (in an organization)
 and publishing publicly. See the GPL FAQ:

Also, does that also mean no Sage code could be included in a paper  
in a journal that required signing the copyright away? What about  
publishing (collections of) worksheets under the CC license? Code  
snippets in books? Are your books GPL compatible? (Maybe you could  
claim fair use.)

I have no trouble licensing code under the GPL, but I do think this  
places an onerous and inappropriate burden on all *users* of Sage,  
and the GPL is supposed to be about modifying/distributing code.

- Robert


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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread Ondrej Certik

On Tue, May 5, 2009 at 11:41 PM, William Stein wst...@gmail.com wrote:

 On Tue, May 5, 2009 at 11:30 PM, Brian Granger ellisonbg@gmail.com 
 wrote:
 Now that I think about it, how would I release a worksheet under the
 GPL.  The usual way is to add:

 This program is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later versionetc.

 to the source.  Is there a simple way of doing that?  Would it make
 sense to enable notebook users to add this to their Worksheet by
 simply clicking a box Make this GPL.  Then, when a Worksheet is
 loaded, if it has the GPL text, the notebook could display it or
 notify the user This Worksheet is GPLd.

 Irregardless of all the licensing discussion above about derived
 works, etc, it would be nice to provide a simple way for users to GPL
 a worksheet, along with a link to the GPL, GPL faq, etc.

Hopefully it can be made somehow so that it doesn't obstruct so much
space. I hate when there is a short few lines script and a page of
copyright/license stuff. That said, I of course respect copyright and
everything --- I just wish there was some simpler way of specifying
all that.




On Tue, May 5, 2009 at 11:45 PM, mabshoff mabsh...@googlemail.com wrote:



 On May 5, 11:34 pm, Brian Granger ellisonbg@gmail.com wrote:
 * If a particular Worksheet uses a GPL library, and that Worksheet is
 distributed to the public (not just Shared internally on a single Sage
 notebook server), it must be GPL.

 I think this is far from clear, but the FSF's interpretation of the
 license. The OSI thinks differently for example as pointed out
 earlier.

I think important is what Sage developer think/intend, isn't it? And I
think William has made this clear.


 * Currently, there is not a clear way of indicating or learning about
 the license of a Worksheet.

 That might be so, but why would it matter? If you write code and link
 against a GPLed library there is no mechanism to remind someone that
 they have to abide by the GPL. But I agree that it is far from obvious
 to a user of Sage that the GPL of worksheets is even an issue and
 might apply to published Sage code. It would be nice to add something
 to the manual that gives various POVs of the problem, but in the end
 it should conclude that anyone concerned about this should consult a
 lawyer since the Sage project is not in the position to give legal
 advice.

 * The GPL is confusing as hell...

 The main issue here is that there is the letter of the law and the
 intend of the GPL. And there is way too much of a grey zone (even if
 you limit yourself to US case law) to make me comfortable. And I would
 like to emphasize again that just one should just not take the FSF by
 their word since they are clearly not a neutral player here.

Well, no one is a neutral player, right? :)

But honestly, I am always astonished by a thread like this and the the
wide range of opinions of what the (L)GPL actually allow you to or
not.




On Tue, May 5, 2009 at 11:53 PM, William Stein wst...@gmail.com wrote:

 We should be honest to our users about some of the potential pitfalls
 and responsibilities associated with using Sage.   When users (or
 developers) build their work on Sage, they are building their work on
 GPL'd code, and there are certainly ramifications involved in doing
 this.  For example, they can't just take any of their Sage programs
 and close source and sell them, etc.It doesn't do any good in the
 long run to pretend there aren't such ramifications. The situation
 with Sage is really different than the situation with GIMP or
 OpenOffice or Emacs, and we should be upfront about that.


That'd be cool. I'll help with this text, as I will use it for SPD[0] too.


Ondrej

P.S., let me know, if we should move this to the newly created
sage-flame list. :)

P.P.S. But anyway, when my school finishes, I think I'll write a blog
about this thread, it was very interesting.

[0] http://code.google.com/p/spdproject/

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



[sage-devel] Re: order of elements in the field

2009-05-06 Thread Kwankyu

Hi William,

All right. I thought F* is the natural group structure on F. I want
to mention that additive order function is not even defined for
elements of finite fields in Magma.


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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread William Stein

On Tue, May 5, 2009 at 11:57 PM, Robert Bradshaw
rober...@math.washington.edu wrote:
  What about
 publishing (collections of) worksheets under the CC license? Code
 snippets in books? Are your books GPL compatible? (Maybe you could
 claim fair use.)

 I have no trouble licensing code under the GPL, but I do think this
 places an onerous and inappropriate burden on all *users* of Sage,
 and the GPL is supposed to be about modifying/distributing code.

Building software on top of GPL'd libraries like Sage *does* have
serious implications toward sharing.  That's sort of the point of the
GPL'd.  There's no sense in hiding that.

Suppose you spend three years implementing an algorithm as part of
Sage to compute X (say some Monsky-Washnitzer cohomology
computations).  Then somebody else writes and publishes a clever paper
that includes a several-page Sage program that uses your
implementation of X (plus many other things in Sage) to compute Y (say
p-adic Regulators of Jacobians of genus 2 curves).  Would you
definitely be allowed to use their new code and include it in Sage?

I think the GPL was designed to ensure that computer programs that
build on your programs must be shared under compatible conditions.
This has the pro that it means that your work is protected in that
when people build on it, they can't hoard their improvements.  It
has the drawback that it puts an onerous (and inappropriate?) burden
on those same people, that when they on your GPL'd work, they can't
hoard their improvements.

In one sense at least, Sage can never be an alternative to
Maple/Mathematica/Matlab/Magma, etc.  With the Ma's, if one wrote a
big program on top of them, and wanted to distribute the program as a
complete self-contained closed source program (say something like a
standalone Mathematica demonstration), at least it would be
technically and legally possible.  One would have to do some sort of
contract with say Wolfram, Inc., but that's quite reasonable.  With
Sage that would be impossible, since the copyright is spread over
hundreds of people (some dead).  Scipy/Numpy/Enthought's stack
does provide this extra feature, which Sage never will.

There's a little good and a little bad in everything.

William

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



[sage-devel] Re: order of elements in the field

2009-05-06 Thread William Stein

On Wed, May 6, 2009 at 12:20 AM, Kwankyu ekwan...@gmail.com wrote:

 Hi William,

 All right. I thought F* is the natural group structure on F.

But F* is not equal to F. :-)

  I want
 to mention that additive order function is not even defined for
 elements of finite fields in Magma.

Just out of curiosity, could you comment on my proposal that order
be removed, and replaced
by *only* additive_order and multiplicative_order?  I personally never
use order anymore, since I'm
always scared it is the wrong order.

William



 Kwankyu
 




-- 
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 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: order of elements in the field

2009-05-06 Thread Craig Citro

 Just out of curiosity, could you comment on my proposal that order
 be removed, and replaced
 by *only* additive_order and multiplicative_order?  I personally never
 use order anymore, since I'm
 always scared it is the wrong order.


I'm definitely +1 on this -- I always resort to the methods that have
explicit names. As they say, explicit is better than implicit, and
this is clearly a case where confusion can ensue ...

-cc

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



[sage-devel] Re: order of elements in the field

2009-05-06 Thread Robert Bradshaw

On May 6, 2009, at 12:32 AM, Craig Citro wrote:


 Just out of curiosity, could you comment on my proposal that order
 be removed, and replaced
 by *only* additive_order and multiplicative_order?  I personally  
 never
 use order anymore, since I'm
 always scared it is the wrong order.


 I'm definitely +1 on this -- I always resort to the methods that have
 explicit names. As they say, explicit is better than implicit, and
 this is clearly a case where confusion can ensue ...

+1 from me too. I've been bitten by using the wrong order before.

- Robert


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



[sage-devel] Re: order of elements in the field

2009-05-06 Thread Kwankyu

Hi William,

I agree with you. +1 on removing the confusing order.

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



[sage-devel] New machine in the sage.math network

2009-05-06 Thread Peter Jeremy
On 2009-May-04 19:26:13 -0700, William Stein wst...@gmail.com wrote:
Unfortunately, it seems that this does *NOT* mean that if you write a
little C program, spawn 128 threads, and watch them run, then you can
do 128 times what you would do with 1 thread.  You still can only do 8
times as much as with 1 thread.   For raw computation, I don't think
that processor is any better than 8 single cores.

Each T2 core provides a single integer ALU and a single FPU (plus a
crypto unit which can probably be ignored for this purpose), thus an
8-core T2 only has 8 ALUs.  Each core is hardware sliced between 8
threads - giving the 64 threads-per-chip.  When a thread stalls (eg
waiting for a memory access), the hardware will switch that core to a
different thread.  For small programs, this doesn't gain you much
because everything is cached.  You should see decent speedups on code
that is cache-busting: If you try running 128 copies of a program to
(eg) transpose a 2000x2000 matrix of longs or doubles then you should
see better speedup.

Note that for real-world apps, kernel and serialisation overheads
can seriously hurt you.

BTW, anyone looking at using a T1 should be aware that it only has a
single FPU shared by all cores.  This means FP performance is poor.

-- 
Peter Jeremy


pgpmRviaI7gT8.pgp
Description: PGP signature


[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread Robert Bradshaw

On May 6, 2009, at 12:29 AM, William Stein wrote:

 On Tue, May 5, 2009 at 11:57 PM, Robert Bradshaw
 rober...@math.washington.edu wrote:
  What about
 publishing (collections of) worksheets under the CC license? Code
 snippets in books? Are your books GPL compatible? (Maybe you could
 claim fair use.)

 I have no trouble licensing code under the GPL, but I do think this
 places an onerous and inappropriate burden on all *users* of Sage,
 and the GPL is supposed to be about modifying/distributing code.

 Building software on top of GPL'd libraries like Sage *does* have
 serious implications toward sharing.  That's sort of the point of the
 GPL'd.  There's no sense in hiding that.

For sure. That's perhaps the one useful purpose threads like this serve.

 Suppose you spend three years implementing an algorithm as part of
 Sage to compute X (say some Monsky-Washnitzer cohomology
 computations).  Then somebody else writes and publishes a clever paper
 that includes a several-page Sage program that uses your
 implementation of X (plus many other things in Sage) to compute Y (say
 p-adic Regulators of Jacobians of genus 2 curves).  Would you
 definitely be allowed to use their new code and include it in Sage?

I would be more apt to label this a derivative work (not just for  
convenience, the same would apply if I was the one building on  
someone else's stuff). If a paper had a chunk of code illustrating an  
elliptic curve has a needed property using the MW computations, I  
probably wouldn't.

As an aside, I wonder how some journal would react to being legally  
required to provide the source in a machine readable format due to  
their being a distributor? (Guess one would have to work that out  
before publishing...)

 I think the GPL was designed to ensure that computer programs that
 build on your programs must be shared under compatible conditions.
 This has the pro that it means that your work is protected in that
 when people build on it, they can't hoard their improvements.  It
 has the drawback that it puts an onerous (and inappropriate?) burden
 on those same people, that when they on your GPL'd work, they can't
 hoard their improvements.

 In one sense at least, Sage can never be an alternative to
 Maple/Mathematica/Matlab/Magma, etc.  With the Ma's, if one wrote a
 big program on top of them, and wanted to distribute the program as a
 complete self-contained closed source program (say something like a
 standalone Mathematica demonstration), at least it would be
 technically and legally possible.  One would have to do some sort of
 contract with say Wolfram, Inc., but that's quite reasonable.  With
 Sage that would be impossible, since the copyright is spread over
 hundreds of people (some dead).  Scipy/Numpy/Enthought's stack
 does provide this extra feature, which Sage never will.

 There's a little good and a little bad in everything.

First off, I *definitly* think GPL is the right license for Sage,  
because of (and despite) all its implications.

I guess my point is that I'm making a distinction between documents  
that happen to use Sage, and new programs built on top of Sage. In  
the former camp are things like tutorials and the homework exercise  
worksheets for your 480 class, or your modular forms and number  
theory books. These are not, in my mind, derivative works of Sage  
(though I'd hope people choose to keep them open). Of course there is  
a lot of grey area, and I think one hits the derivative work area  
long before one is shipping modified copies of Sage in its entirety.  
I would consider many Sage worksheets derivative works, but I don't  
think the implication is automatic.

- Robert


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



[sage-devel] Re: Graph Theory latex(G), global name 'latex' is not

2009-05-06 Thread John Cremona

2009/5/6 Nick Alexander ncalexan...@gmail.com:

 So apparently it's:

 from sage.misc.latex import latex

 Just for the record, it's often easier to do:

 sage: latex.__module__
 'sage.misc.latex'

That is very useful!  I think I want to put
sage: def whereis(thing):
: return thing.__module__
:
into my startup file,  Then:

sage: whereis(latex)
'sage.misc.latex'
sage: whereis(xmrange)
'sage.misc.mrange'
sage: whereis(gcd)
'sage.rings.arith'

and similarly for all the other things whose whereabouts I always forget!

John


 Nick

 


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



[sage-devel] Singular 3-1-0?

2009-05-06 Thread Simon King

Hi!

When will Singular 3-1-0 be in Sage?

I have a program parts of which would not work with Singular 3-0-4.
So, how can I test the singular version?
  sage: singular.version()
fails with an error (both on sage.math and on my machine).

Cheers,
 Simon

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



[sage-devel] Re: strange rounding with SymbolicArithmetic

2009-05-06 Thread Yann

Just for the record,
isn't the following a bug?

sage: p=RealIntervalField(4)(3.1)
sage: p.str(style='brackets')
'[3.00 .. 3.25]'
sage: p
4.?
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Singular 3-1-0?

2009-05-06 Thread mabshoff



On May 6, 2:11 am, Simon King simon.k...@uni-jena.de wrote:
 Hi!

 When will Singular 3-1-0 be in Sage?

The plan is that malb will update it when he is in Seattle before SD
15.

 I have a program parts of which would not work with Singular 3-0-4.
 So, how can I test the singular version?
   sage: singular.version()
 fails with an error (both on sage.math and on my machine).

What does the docstring say? Is it supposed to work? This might be a
bug ;).

 Cheers,
      Simon

Cheers,

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



[sage-devel] Re: strange rounding with SymbolicArithmetic

2009-05-06 Thread mabshoff



On May 6, 2:20 am, Yann yannlaiglecha...@gmail.com wrote:
 Just for the record,
 isn't the following a bug?

It looks like one to me.

 sage: p=RealIntervalField(4)(3.1)
 sage: p.str(style='brackets')
 '[3.00 .. 3.25]'
 sage: p
 4.?

The printing is a little odd, I would expect it to print 3.? cwitty?

Cheers,

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



[sage-devel] Re: Singular 3-1-0?

2009-05-06 Thread simon . king

Hi Michael,

On May 6, 11:28 am, mabshoff mabsh...@googlemail.com wrote:
 The plan is that malb will update it when he is in Seattle before SD
 15.

So, what Sage release, approximately?

 What does the docstring say? Is it supposed to work? This might be a
 bug ;).

Are there bugs in Sage? I wasn't aware of it, sorry...

This is yet another example why having doc tests is a good thing!
Namely, singular.version is defined by
def version(self):

EXAMPLES:

return singular_version()

So, no doc tests, and we have an error.

By the way, a strange error. If you do singular.version() the first
time, there is the error. If you do it a second time, no error.

I will open a ticket.

Cheers,
 Simon


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



[sage-devel] Re: strange rounding with SymbolicArithmetic

2009-05-06 Thread Yann

It's trac #5942

On May 6, 11:30 am, mabshoff mabsh...@googlemail.com wrote:
 On May 6, 2:20 am, Yann yannlaiglecha...@gmail.com wrote:

  Just for the record,
  isn't the following a bug?

 It looks like one to me.

  sage: p=RealIntervalField(4)(3.1)
  sage: p.str(style='brackets')
  '[3.00 .. 3.25]'
  sage: p
  4.?

 The printing is a little odd, I would expect it to print 3.? cwitty?

 Cheers,

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



[sage-devel] Re: strange rounding with SymbolicArithmetic

2009-05-06 Thread mabshoff



On May 6, 2:35 am, Yann yannlaiglecha...@gmail.com wrote:
 It's trac #5942

Ok, it looked familiar. I have CCed Carl Witty on the ticket so he is
aware of its existence, not that this implies that he has to fix it.

Cheers,

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



[sage-devel] Re: Singular 3-1-0?

2009-05-06 Thread mabshoff



On May 6, 2:32 am, simon.k...@uni-jena.de wrote:
 Hi Michael,

Hi Simon,

 So, what Sage release, approximately?

Well, given that Sage 3.4.2 is just out and that SD15 starts in 10
days I would say the next one.

  What does the docstring say? Is it supposed to work? This might be a
  bug ;).

 Are there bugs in Sage? I wasn't aware of it, sorry...

Heresy, there cannot be any bugs in Sage ;).

 This is yet another example why having doc tests is a good thing!

Well, you don't have to convince many people around here about that.

 Namely, singular.version is defined by
     def version(self):
         
         EXAMPLES:
         
         return singular_version()

 So, no doc tests, and we have an error.

Yep.

 By the way, a strange error. If you do singular.version() the first
 time, there is the error. If you do it a second time, no error.

Odd.

 I will open a ticket.

Thanks.

 Cheers,
      Simon

Cheers,

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



[sage-devel] Re: Singular 3-1-0?

2009-05-06 Thread simon . king

Hi!

On May 6, 11:32 am, simon.k...@uni-jena.de wrote:
 I will open a ticket.

#5994, without a patch but with a suggestion of what to do. I first
want to know what people think

When I did singular.version(), I expected to get a tuple, say:
  sage: singular.version()
  (3,0,4,4)

Would you expect a string such as
'Singular for x86_64-Linux version 3-0-4 (3044-2009031122)  Mar 11
2009 22:29:08\nwith\n\tfactory(@(#) factoryVersion = 3.0.4),libfac
(3.0.4,Mar 2008),\n\tGMP(4.2),NTL(5.4.2),static readline,Plural,DBM,\n
\tnamespaces,dynamic modules,dynamic
p_Procs,OM_CHECK=0,OM_TRACK=0,random=1241602325\n\tCC= gcc -O3 -g -
fPIC -pipe -DNDEBUG -DOM_NDEBUG -Dx86_64_Linux -DHAVE_CONFIG_H,\n
\tCXX= g++ -O3 -g -fPIC -pipe -DNDEBUG -DOM_NDEBUG -Dx86_64_Linux -
DHAVE_CONFIG_H (4.2.4 (Ubuntu 4.2.4-1ubuntu3))\nargv[0]   :
\tSingular-3-0-4\nSearchPath:\t/usr/local/sage/local/LIB\nSingular  :
\t/usr/local/sage/local/bin/Singular-3-0-4\nBinDir:\t/usr/local/
sage/local/bin\nRootDir   :\t/usr/local/sage/local\nDefaultDir:\t/usr/
local/sage/local\nInfoFile  :\t\nIdxFile   :\t\nHtmlDir   :\t
\nManualUrl :\thttp://www.singular.uni-kl.de/Manual/3-0-4\nExDir :
\t\nPath  :\t/usr/local/sage/local/bin:/usr/local/sage/local/
polymake/bin:/usr/local/sage:/usr/local/sbin:/usr/local/bin:/usr/sbin:/
usr/bin:/sbin:/bin:/usr/games\nEmacsDir  :\t\nAvailable HelpBrowsers:
dummy, emacs, \nCurrent HelpBrowser: dummy '
?

Yours,
Simon

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



[sage-devel] Re: New machine in the sage.math network

2009-05-06 Thread mabshoff



On May 6, 1:21 am, Peter Jeremy peterjer...@optushome.com.au wrote:
 On 2009-May-04 19:26:13 -0700, William Stein wst...@gmail.com wrote:

 Unfortunately, it seems that this does *NOT* mean that if you write a
 little C program, spawn 128 threads, and watch them run, then you can
 do 128 times what you would do with 1 thread.  You still can only do 8
 times as much as with 1 thread.   For raw computation, I don't think
 that processor is any better than 8 single cores.

 Each T2 core provides a single integer ALU and a single FPU (plus a
 crypto unit which can probably be ignored for this purpose), thus an
 8-core T2 only has 8 ALUs.  Each core is hardware sliced between 8
 threads - giving the 64 threads-per-chip.  When a thread stalls (eg
 waiting for a memory access), the hardware will switch that core to a
 different thread.  For small programs, this doesn't gain you much
 because everything is cached.  You should see decent speedups on code
 that is cache-busting: If you try running 128 copies of a program to
 (eg) transpose a 2000x2000 matrix of longs or doubles then you should
 see better speedup.

Well, code like ATLAS is tuned for minimizing cache misses, so I
seriously doubt that the design of the T2 will give us more benefit
past 8 simultaneously running threads.  The same more or less applies
to arbitrary precision arithemtic.

 Note that for real-world apps, kernel and serialisation overheads
 can seriously hurt you.

I don't think that is really that much of an issue with HPC code while
it does play much more of a role with DB/Java/Webserver workloads
where the T2 is making a pretty good figure. But Intel has been
catching up fast in that area, i.e. in a year or two a 2 socket Xeon
might be comparable in throughput in case Sun keeps bumbling their
hardware roadmap. And given the Oracle buy as well as the history of
Rock I guess you can see how I am not exactly optimistic here.

 BTW, anyone looking at using a T1 should be aware that it only has a
 single FPU shared by all cores.  This means FP performance is poor.

Well, the T1 had a GMP score comparable to the 68040. The T2 is about
10 times faster for a single thread than the T1 (with the above
potential scaling issues), but still lacking the current Xeon
generation by about a factor of 30 per core. So even if the T2 scaled
perfectly to 128 cores on that benchmark it would still be beaten by a
single 6 core Xeon of the Dunnington generation. And there are already
Xeons based on the i7 generation out. Some of this is certainly due to
the worst assembly support for Sparc64 in GMP (and MPIR) compared to
x86-64, but even if this gets fixed and improved by a factor of 10
which some people have thrown around this isn't enough IMHO.

Cheers,

Michael

 --
 Peter Jeremy

  application_pgp-signature_part
  1KViewDownload
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: order of elements in the field

2009-05-06 Thread John Cremona

+1 though perhaps it should just be deprecated, along with a message
saying to use multiplicative or additive order specifically.

John

2009/5/6 Kwankyu ekwan...@gmail.com:

 Hi William,

 I agree with you. +1 on removing the confusing order.

 Kwankyu
 


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



[sage-devel] Re: Sage 3.4.2 released (and this time it is the final one)

2009-05-06 Thread Alex Ghitza

Hi Michael,

Building 3.4.2 from scratch breaks at R as follows:

-
gcc -std=gnu99 -I. -I../../src/include -I../../src/include
-I/opt/sage-3.4.2/local/inlcude -DHAVE_CONFIG_H   -fpic
-I/opt/sage-3.4.2/local/include -L/opt/sage-3.4.2/local/lib/  -c
maxcol.c -o maxcol.o
make[5]: *** [maxcol.o] Killed
make[5]: Leaving directory `/opt/sage-3.4.2/spkg/build/r-2.6.1.p22/src/src/appl'
make[4]: *** [R] Error 2
make[4]: Leaving directory `/opt/sage-3.4.2/spkg/build/r-2.6.1.p22/src/src/appl'
make[3]: *** [R] Error 1
make[3]: Leaving directory `/opt/sage-3.4.2/spkg/build/r-2.6.1.p22/src/src'
make[2]: *** [R] Error 1
make[2]: Leaving directory `/opt/sage-3.4.2/spkg/build/r-2.6.1.p22/src'
Error building R.

real1m15.975s
user0m41.067s
sys 0m31.088s
sage: An error occurred while installing r-2.6.1.p22
Please email sage-devel http://groups.google.com/group/sage-devel
explaining the problem and send the relevant part of
of /opt/sage-3.4.2/install.log.  Describe your computer, operating system, etc.
If you want to try to fix the problem, yourself *don't* just cd to
/opt/sage-3.4.2/spkg/build/r-2.6.1.p22 and type 'make'.
Instead type /opt/sage-3.4.2/sage -sh
in order to set all environment variables correctly, then cd to
/opt/sage-3.4.2/spkg/build/r-2.6.1.p22
(When you are done debugging, you can type exit to leave the
subshell.)
make[1]: *** [installed/r-2.6.1.p22] Error 1
make[1]: Leaving directory `/opt/sage-3.4.2/spkg'

real168m17.432s
user150m57.636s
sys 15m42.272s
python: can't open file
'/opt/sage-3.4.2/devel/sage/doc/common/builder.py': [Errno 2] No such
file or directory
---

This is on an older laptop with 1 GB RAM:

[aghi...@frobenius sage-3.4.2]$ uname -a
Linux frobenius 2.6.29-ARCH #1 SMP PREEMPT Fri Apr 17 12:46:01 UTC
2009 i686 Mobile Intel(R) Pentium(R) 4 - M CPU 2.20GHz GenuineIntel
GNU/Linux


It could very well be that the machine is just slowly dying, but so
far I've built sage on it without problems, and I thought I should
report it.  Let me know if you want me to do any investigations on
this.


Best,
Alex



On Wed, May 6, 2009 at 4:37 PM, mabshoff mabsh...@googlemail.com wrote:

 Hello folks,

 apologies that it took a while, but the final 3.4.2 source tarball
 announced a couple days ago turned out to be not truly final :). So
 here are md5sums to make the difference clear:

 8fe47c23872bc39ceb0136602062c917  sage-3.4.2.tar
 fe5ce17b31557f57f32a714855f22d26  sage-3.4.2-sage.math-only-x86_64-
 Linux.tar.gz

 All the bits are in the usual place in

   http://sage.math.washington.edu/home/mabshoff/release-cycles-3.4.2/

 From here on it is all about Sage 4.0.

 Cheers,

 Michael

 Merged in Sage 3.4.2:

 #5981: Michael Abshoff: Sage 3.4.2: prime_pi() broken on 32 bit
 [Reviewed by Jaap Spies]
 #5983: Michael Abshoff: cmp related doctest failure in sage/schemes/
 jacobians/abstract_jacobian.py [Reviewed by William Stein]
 #5984: Michael Abshoff: cmp related doctest failure in sage/modular/
 arithgroup/arithgroup_perm.py [Reviewed by William Stein]
 #5992: Michael Abshoff: Set stack size in Maxima.spkg to 32kb for
 clisp [Reviewed by William Stein]

 





-- 
Alex Ghitza -- Lecturer in Mathematics -- The University of Melbourne
-- Australia -- http://www.ms.unimelb.edu.au/~aghitza/

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



[sage-devel] Re: Singular 3-1-0?

2009-05-06 Thread simon . king

Hi Folks!

Meanwhile I got a more detailed picture on the error.

- I tested several versions of Singular (3-0-4 and 3-1-0-beta) built
by Sage on four different machines. In *all* cases the error occured.

- I tested Singular 3-1-0-beta built by myself and Singular 3-1-0
(official release) built in Oberwolfach. The error does *not* occur.

In order to avoid a misunderstanding that occured on the Singular
mailing list:
The error does not only occur when Singular is used for the first time
after being built.
It always occurs when calling
  system(--version);
for the first time *in a session*. Start a new session, it will happen
again.

There is no problem when using the system command in a different way,
e.g.
  system(version);
(returns the version as a number).

And apparently it only occurs if Singular is built by Sage.

So, could it be Sage's fault, after all? Perhaps it was a big mistake
to remove the file Hannes-Sprueche from the Singular sources... ;)

Cheers,
Simon

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



[sage-devel] Re: Fwd: FInally the link to download SAGElwlcd ISO!

2009-05-06 Thread Lucio Lastra

People,

here: http://sage.math.washington.edu/home/luciolastra/
I'll be uploading sagelwlcd images and the code sequences to
create them.

Please try the distro out to give me feedback (sagelw...@gmail)
and help me make a better distro for everyone.

Greetings,

Lucio


On 5 mayo, 23:58, Lucio Lastra luciolas...@gmail.com wrote:
 Alfredo,

 now that I have my space, it would be really nice to cross links
 between accounts so people can choose the option that fits
 the best for them.

 Not to mention is also because we are part of the same. I'm not
 sure how to post a link to your webpage, otherwise I'll have done it.

 Greetings,

 Lucio

 On Apr 27, 11:11 am, Lucio Lastra luciolas...@gmail.com wrote:

  Alfredo,

  awesome, I'll build it and provide the instructions and send William
  an email soon and also post the news here.

  Greetings,

  Lucio.

  On Mon, Apr 27, 2009 at 11:03 AM, Alfredo Portes 
  doyenatc...@gmail.comwrote:

   Hi Lucio,

   Sorry for not replying to your previous email. I work at a financial
   company
   (Bloomberg) and work has been crazy lately.

   If you have some time to build a new iso with the new Sage please do it,
   and post your version in the mailing list. We can upload the iso the
   sagemath.
   If you ask William, he can surely give you access to the server, or I
   can uploaded
   for you. I can give you access to my server also if necessary.

   Again, I am very interested in your work with thelivecd. If you need any
   help,
   I will try to free some time to help.

   Thank you very much for your work and effort on this. Again sorry I didn't
   reply
   faster before.

   Regards,

   Alfredo

   On Sun, Apr 26, 2009 at 6:41 PM, Lucio Lastra luciolas...@gmail.com
   wrote:

Alfredo,

I sent you an email, many days ago talking about alivecdI built
from scratch which is about 200 Mibs less in size and has the
performance of sagelwlcd.

I'm not sure if you read it and/or you are interested on it. I'm just
telling you this because I don't have much time as I did before
since I started working a week ago.

In case you are interested or not post back in here. If not, the
steps and code to build sagelwlcd are posted so if you are
interested on it, you can build it.

Greetings,

Lucio Lastra.

On 12 abr, 21:49, Lucio Lastra luciolas...@gmail.com wrote:
Great!

I have a doubt: how did you make to turn the cpio image into an
ISO image?

Greetings,

Lucio.

On 10 abr, 15:30, Jason Grout jason-s...@creativetrax.com wrote:

 Lucio Lastra wrote:
  Update:

  I just downloaded and tried it out. Alfredo you are
  completely right, this is exactly what we need!

  I'll follow the steps in the forum to get the eth0 up
  and working and try out the mkxpud to see how it
  works.

  This is really exciting. Thanks once again for sharing
  your discovery!

 I tried it out yesterday too.  Wow, it looks really nice!

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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread Harald Schilly

On May 6, 8:58 am, Ondrej Certik ond...@certik.cz wrote:
 But honestly, I am always astonished by a thread like this and the the
 wide range of opinions of what the (L)GPL actually allow you to or
 not.

Me too, wow. My opinion is, that if you write a sage script, it's just
a script. You can do with it what you want since you have the
copyright. Distribution complications with the GPL is not an issue,
since your script does not include Sage at all -- it just uses it, is
interpreted by and formost, Sage is intended to be used that way.
Theoretically, also something else could interpret that script ...
e.g. a webserver that reads a text file and sends out something! A
derived work is something that has a work as an input and builds or
modifies it. If you write Sage code from scratch, this doesn't apply,
too.

from http://www.linuxjournal.com/article/6366

The meaning of derivative work will not be broadened to include
software created by linking to library programs that were designed and
intended to be used as library programs. When a company releases a
scientific subroutine library, or a library of objects, for example,
people who merely use the library, unmodified, perhaps without even
looking at the source code, are not thereby creating derivative works
of the library.

-- Lawrence Rosen, attorney in private practice for opensource.org

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



[sage-devel] Re: Wigner 3j, 6j, 9j, Clebsch-Gordan, Racah and Gaunt coefficients

2009-05-06 Thread jyr

Just to say that I have opened a ticket now with Dan's changes:

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

Jens

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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread kcrisman

Wow, I really missed quite a thread.

So is there any final consensus on this?  Is the following Sage
program automatically GPL?

{{{
2+2
}}}

Or only in the following form?

{{{
Integer(2)+Integer(2)
}}}

Please no flames!  I only wanted to know if there was a consensus, I
got sort of confused by 50 messages on this in my RSS reader at once.

If there isn't a consensus (and it seems there is not) then please
don't reply, and I will go along with Rob B. and publish whatever Sage
worksheets I want to under whatever license I deem appropriate, if
any.

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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread Gonzalo Tornaria

On Wed, May 6, 2009 at 4:29 AM, William Stein wst...@gmail.com wrote:
 Suppose you spend three years implementing an algorithm as part of
 Sage to compute X (say some Monsky-Washnitzer cohomology
 computations).  Then somebody else writes and publishes a clever paper
 that includes a several-page Sage program that uses your
 implementation of X (plus many other things in Sage) to compute Y (say
 p-adic Regulators of Jacobians of genus 2 curves).      Would you
 definitely be allowed to use their new code and include it in Sage?

Suppose you spend three years writing a proof of X (say, some very
important result about high rank elliptic curves), which you publish
as a paper under cc-by-sa in some journal. Then somebody else writes
and publishes a very clever paper that includes a several-page
mathematical proof which uses your implementation of the proof of X
(i.e. statement of lemmas, propositions, etc. leading to X which
appear in your paper), to prove the BSD conjecture. Would you
definitely be allowed to republish their new proof and include it in
(say) wikipedia?

If this were true, some obstinate mathematicians could be releasing
their proofs under the GPL, thus eventually infecting all
mathematics... (provided they reach critical mass, say).

Wrt the clever paper you mention above, I can see two possibilities,
maybe depending on the interpretation of the law (the notion of
derivative work) by a court:

(a) the paper is NOT legally a derivative work of Sage. Then the
journal is clean, and you cannot claim anything about it.

(b) the paper IS legally a derivative work of Sage. Then the journal
is clean or not depending on whether they have a license to reuse
Sage. Assume for the sake of the argument that the GPL is the only
valid license Sage the editorial can obtain. The GPL is a permission
(license) to reuse Sage which is valid as long as they comply with the
terms. Then either

(b1) the journal complies with the GPL by releasing the new code as GPL
=== you would be definitely allowed to use the new code and include
it in Sage; or
(b2) the journal doesn't release the new code as GPL
=== then the journal would be infringing Sage copyright. It does
*not* follow that you are allowed to use the new code and include it
in Sage. It *only* follows that the copyright owner for Sage can sue
the editorial for copyright infringement, i.e. distributing a
derivative work without a license. (IOW, the GPL is *not* really viral
--- copyright law is).

Remember: the GPL is only a *license*. Nobody is forced to agree, and
nobody is forced to comply.
The GPL gives permission to do some things that copyright law would
not allow, provided its terms and conditions are satisfied. If I want
to do something that copyright law alone would allow me to, then I
don't need to follow the GPL. This includes fair use.

For instance: what's the difference between referencing the sage
library by using an import statement and a function call, vs.
referencing a theorem in a paper by citing it in the bibliography and
recalling the statement? They both seem fair use to me... In
principle: I guess it would be possible to write a paper which cites,
references, and recalls so much from a previous paper so that it
becomes a derivative work and fair use doesn't apply; the same is true
for scripts which reference the sage library.

IOW: I'm claiming that *some* scripts can be derivative works, but
others are either not derivatives or under fair use  (this has been
already pointed out by Robert Bradshaw). I'd say *most* notebooks
making use of the sage library in the intended way, using the
documented APIs, etc, would fall into the second category, and thus
can be published under any license or no license at all.

Gonzalo

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



[sage-devel] Sage and GPL for end user scripts (Re: Clarification of Sage and GPL)

2009-05-06 Thread Gonzalo Tornaria

On Wed, May 6, 2009 at 4:29 AM, William Stein wst...@gmail.com wrote:
 On Tue, May 5, 2009 at 11:57 PM, Robert Bradshaw
 rober...@math.washington.edu wrote:
  What about
 publishing (collections of) worksheets under the CC license? Code
 snippets in books? Are your books GPL compatible? (Maybe you could
 claim fair use.)

 I have no trouble licensing code under the GPL, but I do think this
 places an onerous and inappropriate burden on all *users* of Sage,
 and the GPL is supposed to be about modifying/distributing code.

 Building software on top of GPL'd libraries like Sage *does* have
 serious implications toward sharing.  That's sort of the point of the
 GPL'd.  There's no sense in hiding that.

At this point in the thread I'd argue that we don't really have a clue
on what would be a court interpretation of the GPL on this issue [ok,
each one of us has a clue, but the clues we have disagree :) in fact
we don't even know if different courts would agree on this]. But IMO
this particular issue is rather important and it deserves a
definition, at the very least in the form of an express intent by the
Sage developers, or even a clarification in the license itself.

Thus, the really important question is not what the GPL means, or
implies, but what *should* it mean, in order to better achieve the
goals of Sage and of Sage developers, and what the Sage developers
*intent* is.

I think it is better if we differentiate two levels of program:

(A) the sage system, i.e. the core sage library and all the packages
included in sage, etc.

(B) the user scripts written independently of the sage system, which
may depend on facilities provided by the documented APIs, etc.

There is of course a gray area between (A) and (B), because a user
script may (ab)use of Sage internals in a significative way, etc, and
in the end it becomes a part of (A). For instance, it definitely would
be unfair if somebody extended functionality on some area of Sage by
exporting all the internals and adding on top of that in a non-GPLed
user script.



So, here's a question for Sage developers:

For user scripts clearly in (B), i.e. scripts which just *use* sage in
the intended ways of use, etc.

(1) do you think it is a good idea to require the scripts to be
published under GPL or not published at all?

(2) was this your actual intent when you contributed code to Sage under the GPL?

I'm particularly interested in your (William) answer to this. In some
of your posts seemed as if you were claiming that requiring scripts to
be published under the GPL is the only option (just by the FSF
interpretation of the issue), but I don't know what was your original
intent, and whether you think this is good or just an undesired side
effect of the GPL.

Gonzalo

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



[sage-devel] Re: order of elements in the field

2009-05-06 Thread Nick Alexander


On 6-May-09, at 12:32 AM, Craig Citro wrote:


 Just out of curiosity, could you comment on my proposal that order
 be removed, and replaced
 by *only* additive_order and multiplicative_order?  I personally  
 never
 use order anymore, since I'm
 always scared it is the wrong order.


 I'm definitely +1 on this -- I always resort to the methods that have
 explicit names. As they say, explicit is better than implicit, and
 this is clearly a case where confusion can ensue ...

+1

Nick

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



[sage-devel] Re: Graph Theory latex(G), global name 'latex' is not

2009-05-06 Thread Nick Alexander

 Just for the record, it's often easier to do:

 sage: latex.__module__
 'sage.misc.latex'

 That is very useful!

Yep, that's why I thought I'd throw it out there.

Nick

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



[sage-devel] Re: Sage and GPL for end user scripts (Re: Clarification of Sage and GPL)

2009-05-06 Thread William Stein

On Wed, May 6, 2009 at 8:13 AM, Gonzalo Tornaria
torna...@math.utexas.edu wrote:
 I'm particularly interested in your (William) answer to this.


Dang, I was hoping to not have to respond to this post, but since you
explicitly ask me
I have no choice.

 In some
 of your posts seemed as if you were claiming that requiring scripts to
 be published under the GPL is the only option (just by the FSF
 interpretation of the issue), but I don't know what was your original
 intent, and whether you think this is good or just an undesired side
 effect of the GPL.

Both.  I view it as a bad and an undesired side effect... unless I
really want to use somebody's code, and then I might suddenly view it
is a desired side effect.

Over the last few years, I've personally convinced probably well over
a dozen people to relicense their code under GPL (or a GPL compatible
license), so I could include it in Sage.   These include PARI scripts,
programs against the PARI library, and other programs.  In retrospect,
in many cases I was able to convince the author to GPL their code,
since their code fundamentally depended on a GPL'd program (e.g.,
PARI).  In one case, I had argued for a week with a certain author
about him making his code available under a GPL-compatible license,
and at a certain moment we both realized that he had no choice,
because his code depended on PARI; his response was to spend several
weeks completely rewriting the program so it didn't depend on PARI to
work, and releasing the resulting code under a pseudo-BSD license.

Building your code on top of GPL'd code has consequences (or
responsibilities) and there is no point in ignoring that.   It also
has rewards, e.g., you can read the source code of the whole stack,
change anything, etc., and contribute back knowing that improvements
to your contributions won't be locked away in the future.

 -- William

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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread Ralf Hemmecke

On 05/06/2009 07:50 AM, William Stein wrote:
 On Tue, May 5, 2009 at 3:25 PM, Brian Granger ellisonbg@gmail.com wrote:
 Hi,

 I have a question about Sage and the GPL.  Here is the main question..

 IF I write code in a Sage notebook, AND I redistribute the code, do I
 need to release my code under the GPL?

 Here is a bit of background...

 At a conference in the last year, one of the Sage developers was asked
 this question, and their answer was...

 You can do whatever you want with your code, you don't have to
 release it under the GPL

 In general, I don't think this answer can be right, but I think it is
 actually a bit subtle.  Here are some of the issues that I see (all of
 this assumes that I do want to distribute my code to others)...

 * Is the code pure python or does it use the sage syntax?  If the code
 uses the sage syntax, I think it must be released under the GPL.
 * Does the code being written actually use any GPL libraries (like the
 sage python package)?  If the code uses GPL libraries, I again think
 it must be GPL'd.

 Publicly distributed code using GPL'd library must be GPL'd.

Suppose Ondrej's program
---
from sage.all import x
print x**2
---
were a bit longer to actually contain some creativity (but no line from 
any GPL source code). Suppose he puts that in a file aaa.sage and 
distributes that (without sage). Why should there be any restriction on 
this source? He may, of course put that under BSD (it's open source 
anyway). The file itself does not use Sage. It's simply a string of 
characters.

Only if somebody downloads Sage, downloads aaa.sage and actually runs 
aaa.sage, the sage library is used. But then distribution has already 
happened and there is no obligation for Ondrej to change the license of 
aaa.sage from BSD to GPL.

 * If a sage notebook is source code does clicking Share in the
 notebook constitute distribution.  In other words, if a bunch of
 people start sharing sage notebooks, do they all have to be GPL?

 No.  This is internal distribution, so the GPL doesn't apply.  This is
 no different than the NSA (say) distributing a program from one
 researcher to another, and obviously they don't have to GPL their
 code.

No. But for a different reason. The notebook is a separate piece. If you 
don't distribute it together with Sage, then it's only a string of 
characters (and as such not particularly useful) and I don't see a 
reason why such distribution must be under GPL rules.

If, however, you choose to distribute your notebook together with Sage 
then it can be considered an extension/derivative work of Sage and as 
such the whole thing (=Sage+notebook) has to be GPL.

The important term is distribution. Of course, also NSA-internal 
distribution of a GPL program has to follow GPL rules.

Suppose I write a program and *distribute* it to my wife under the GPL.
If my wife chooses to *distribute* that program to my child, she can do 
that, but she must follow the GPL rules. Now three people have that 
program (and source code) and none of us is forced by GPL rules to 
publish the source code to anybody else in the world if no further 
distribution happens.

Only if you distribute the work, you must follow GPL rules.

 The usage case I have in mind is using this to teach University
 courses in computational physics.  I know others are already doing
 this (William is right now I think).  If I share notebooks with
 students and they with me, does everything have to be GPL?

 No, definitely not.   But if you post the notebooks publicly and they make use
 of the sage library, then they have to be GPL'd.

I'd say if you distribute the notebooks alone without any GPL'ed 
software, then you are free to choose any license you like.

  This is relevant, because I need to
 clarify these issues for students and faculty who would use Sage in
 this manner.  It isn't necessarily bad if the answer is GPL, but we
 all need to know this.

 You might consider consulting with a lawyer at your university.
 Universities sometimes have
 lawyers for this sort of thing.

Yes, that is always a good thing. There are, for example, certain items 
of GPL2 that don't apply in certain countries.


Don't get me wrong here. I am a fan of GPL. And if everyone distributed 
his software under GPL there would not be such a lot of wasted 
mailing-list hours that discuss license issues.

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



[sage-devel] Re: strange rounding with SymbolicArithmetic

2009-05-06 Thread Carl Witty

On Wed, May 6, 2009 at 2:20 AM, Yann yannlaiglecha...@gmail.com wrote:

 Just for the record,
 isn't the following a bug?

 sage: p=RealIntervalField(4)(3.1)
 sage: p.str(style='brackets')
 '[3.00 .. 3.25]'
 sage: p
 4.?

It's a deliberate design decision.  To quote from real_mpfi.pyx:

When there are two
possible results of equal precision and with the same error width,
then we pick the one which is farther from zero. (For instance,
RIF(0, 123) with two error digits could print as 61.?62 or 62.?62.
We prefer the latter because it makes it clear that the interval is
known not to be negative.)

In other words,
sage: RealIntervalField(4)(0, 1)
1.?
prints as the interval [0 .. 2], rather than [-1 .. 1], because IMHO
it is useful to be able to know that an interval is nonnegative; and
we do this by always picking the result farther from zero whenever
there are two possible correct printings.  (Note that 3.? and 4.?
would both include the interval [3.00 .. 3.25], so they are both
correct in that sense.)

It would be possible to use a different rule for choosing between two
correct answers, but I like the current one.

Carl

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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread William Stein

On Wed, May 6, 2009 at 9:32 AM, Ralf Hemmecke r...@hemmecke.de wrote:

 On 05/06/2009 07:50 AM, William Stein wrote:
 On Tue, May 5, 2009 at 3:25 PM, Brian Granger ellisonbg@gmail.com 
 wrote:
 Hi,

 I have a question about Sage and the GPL.  Here is the main question..

 IF I write code in a Sage notebook, AND I redistribute the code, do I
 need to release my code under the GPL?

 Here is a bit of background...

 At a conference in the last year, one of the Sage developers was asked
 this question, and their answer was...

 You can do whatever you want with your code, you don't have to
 release it under the GPL

 In general, I don't think this answer can be right, but I think it is
 actually a bit subtle.  Here are some of the issues that I see (all of
 this assumes that I do want to distribute my code to others)...

 * Is the code pure python or does it use the sage syntax?  If the code
 uses the sage syntax, I think it must be released under the GPL.
 * Does the code being written actually use any GPL libraries (like the
 sage python package)?  If the code uses GPL libraries, I again think
 it must be GPL'd.

 Publicly distributed code using GPL'd library must be GPL'd.

 Suppose Ondrej's program
 ---
 from sage.all import x
 print x**2
 ---
 were a bit longer to actually contain some creativity (but no line from
 any GPL source code). Suppose he puts that in a file aaa.sage and
 distributes that (without sage). Why should there be any restriction on
 this source? He may, of course put that under BSD (it's open source
 anyway). The file itself does not use Sage. It's simply a string of
 characters.

 Only if somebody downloads Sage, downloads aaa.sage and actually runs
 aaa.sage, the sage library is used. But then distribution has already
 happened and there is no obligation for Ondrej to change the license of
 aaa.sage from BSD to GPL.

[snip]

Ralf,

In this email, what are you basing all your claims on?  Numerous
claims you make seem to me to contradict statements in the GPL FAQ at

   http://www.gnu.org/licenses/gpl-faq.html

So I'm curious if you're basing everything on what you just tend to
wish/believe is true about the GPL based on your memory, or on
actually carefully reading the GPL and statements made by the FSF
lawyers to clarify their intent regarding the GPL.  Generally
speaking, I think that if one wants to understand the intent of the
GPL, then

   http://www.gnu.org/licenses/gpl-faq.html

is a very good place to look.Almost every question I have about
the GPL is clearly answered there.   If one directly disagrees with a
statement made there, then it is easy to get a lawyer from FSF to
provide further clarification/answers.

William


 * If a sage notebook is source code does clicking Share in the
 notebook constitute distribution.  In other words, if a bunch of
 people start sharing sage notebooks, do they all have to be GPL?

 No.  This is internal distribution, so the GPL doesn't apply.  This is
 no different than the NSA (say) distributing a program from one
 researcher to another, and obviously they don't have to GPL their
 code.

 No. But for a different reason. The notebook is a separate piece. If you
 don't distribute it together with Sage, then it's only a string of
 characters (and as such not particularly useful) and I don't see a
 reason why such distribution must be under GPL rules.

 If, however, you choose to distribute your notebook together with Sage
 then it can be considered an extension/derivative work of Sage and as
 such the whole thing (=Sage+notebook) has to be GPL.

 The important term is distribution. Of course, also NSA-internal
 distribution of a GPL program has to follow GPL rules.

 Suppose I write a program and *distribute* it to my wife under the GPL.
 If my wife chooses to *distribute* that program to my child, she can do
 that, but she must follow the GPL rules. Now three people have that
 program (and source code) and none of us is forced by GPL rules to
 publish the source code to anybody else in the world if no further
 distribution happens.

 Only if you distribute the work, you must follow GPL rules.

 The usage case I have in mind is using this to teach University
 courses in computational physics.  I know others are already doing
 this (William is right now I think).  If I share notebooks with
 students and they with me, does everything have to be GPL?

 No, definitely not.   But if you post the notebooks publicly and they make 
 use
 of the sage library, then they have to be GPL'd.

 I'd say if you distribute the notebooks alone without any GPL'ed
 software, then you are free to choose any license you like.

  This is relevant, because I need to
 clarify these issues for students and faculty who would use Sage in
 this manner.  It isn't necessarily bad if the answer is GPL, but we
 all need to know this.

 You might consider consulting with a lawyer at your university.
 Universities sometimes have
 lawyers for this sort of 

[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread Vinzent Steinberg

On May 6, 4:41 pm, kcrisman kcris...@gmail.com wrote:
 Wow, I really missed quite a thread.

 So is there any final consensus on this?  Is the following Sage
 program automatically GPL?

 {{{
 2+2

 }}}

 Or only in the following form?

 {{{
 Integer(2)+Integer(2)

 }}}

Technically, what's the difference between a GPL'd interpreter
interpreting 2 + 2 and a call to a GPL'ed library add(2, 2)?

I think this is the problem with the GPL: any program you write that
uses an GPL'd interface has to be GPL'd. If you add a layer of
abstraction to your program, for instance by defining Integer to be an
user-specified type representing an integer, nothing forces you to use
the GPL for you code, even if you users use you program in conjunction
with a GPL'd implementation of Integer. The point is that your
interface has to be general enough to be clearly not derived from a
GPL'd interface/library/code.
However, circumvention of this kind are debatable. (The nvidia closed
source driver for Linux has an open source interface to the kernel, if
I recall it correctly.)

From my point of view, GPL'd libraries (and I think sage is also a
library) are practically only usable by GPL'd code. If you don't want
this, use LGPL'd libraries or similar.
The main difference of the LGPL is as far as I know that it allows you
to use an interface to the LGPL'd code without LGPL'ing your own code.


Vinzent

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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread Tim Lahey


On May 6, 2009, at 12:05 PM, Vinzent Steinberg wrote:


 On May 6, 4:41 pm, kcrisman kcris...@gmail.com wrote:
 Wow, I really missed quite a thread.

 So is there any final consensus on this?  Is the following Sage
 program automatically GPL?

 {{{
 2+2

 }}}

 Or only in the following form?

 {{{
 Integer(2)+Integer(2)

 }}}

 From my point of view, GPL'd libraries (and I think sage is also a
 library) are practically only usable by GPL'd code. If you don't want
 this, use LGPL'd libraries or similar.
 The main difference of the LGPL is as far as I know that it allows you
 to use an interface to the LGPL'd code without LGPL'ing your own code.


Doesn't both Maple and Mathematica make use of GMP? I thought they did.

They aren't licensed under the GPL.

Cheers,

Tim.

---
Tim Lahey
PhD Candidate, Systems Design Engineering
University of Waterloo
http://www.linkedin.com/in/timlahey

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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread William Stein

On Wed, May 6, 2009 at 10:37 AM, Tim Lahey tim.la...@gmail.com wrote:


 On May 6, 2009, at 12:05 PM, Vinzent Steinberg wrote:


 On May 6, 4:41 pm, kcrisman kcris...@gmail.com wrote:
 Wow, I really missed quite a thread.

 So is there any final consensus on this?  Is the following Sage
 program automatically GPL?

 {{{
 2+2

 }}}

 Or only in the following form?

 {{{
 Integer(2)+Integer(2)

 }}}

 From my point of view, GPL'd libraries (and I think sage is also a
 library) are practically only usable by GPL'd code. If you don't want
 this, use LGPL'd libraries or similar.
 The main difference of the LGPL is as far as I know that it allows you
 to use an interface to the LGPL'd code without LGPL'ing your own code.


 Doesn't both Maple and Mathematica make use of GMP? I thought they did.

 They aren't licensed under the GPL.

GMP is not GPL'd.  It is LGPL'd.   So any program can use/include GMP without
having to be GPL'd.  Magma also includes GMP.

William


 Cheers,

 Tim.

 ---
 Tim Lahey
 PhD Candidate, Systems Design Engineering
 University of Waterloo
 http://www.linkedin.com/in/timlahey

 




-- 
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 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread Robert Bradshaw

On May 6, 2009, at 10:37 AM, Tim Lahey wrote:

 Doesn't both Maple and Mathematica make use of GMP? I thought they  
 did.

 They aren't licensed under the GPL.

GMP is LGPL, not GPL. If what Ralf said were correct (which it  
isn't), there would be no need for an LGPL at all.

- Robert


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



[sage-devel] Re: order of elements in the field

2009-05-06 Thread William Stein

On Wed, May 6, 2009 at 8:39 AM, Nick Alexander ncalexan...@gmail.com wrote:


 On 6-May-09, at 12:32 AM, Craig Citro wrote:


 Just out of curiosity, could you comment on my proposal that order
 be removed, and replaced
 by *only* additive_order and multiplicative_order?  I personally
 never
 use order anymore, since I'm
 always scared it is the wrong order.


 I'm definitely +1 on this -- I always resort to the methods that have
 explicit names. As they say, explicit is better than implicit, and
 this is clearly a case where confusion can ensue ...

 +1

 Nick

OK, this is not trac 5997:

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

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



[sage-devel] Wrong answer in IntegerModRing.multiplicative_subgroups

2009-05-06 Thread daveloeffler

Just now I was doing some tinkering in sage.rings.integer_mod_ring
with the aim of fixing ticket #5250, where Sage wrongly claims that
(Z / 162Z)^* is non-cyclic when it is. That turned out to be easy to
fix, but in the process I discovered something more nasty: the method
multiplicative_subgroups for the IntegerModRing class returns
answers that are wrong.

For example, take N = 341 = 11 * 31. Then (Z / NZ)^* is isomorphic to
C_10 x C_30. The current method just calculates all subgroups of C_10
and all subgroups of C_30, and returns the products of those. This is
clearly wrong, since not all subgroups of a direct product are
products of subgroups of the factors. In fact in this example there
are 80 subgroups -- I checked in GAP -- and Sage only finds 32 of
them.

Does anyone know a good, fast algorithm for solving this problem
(correctly)? Alternatively, can someone give me a hint on how to use
Gap for this? It has the right command (SubgroupsSolvableGroup) but
I'm struggling to work out how to convert Gap's output back into Sage.
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread David Harvey


On May 6, 10:41 am, kcrisman kcris...@gmail.com wrote:

 So is there any final consensus on this?  Is the following Sage
 program automatically GPL?

 {{{
 2+2

 }}}

 Or only in the following form?

 {{{
 Integer(2)+Integer(2)

 }}}

 Please no flames!  I only wanted to know if there was a consensus, I
 got sort of confused by 50 messages on this in my RSS reader at once.

 If there isn't a consensus (and it seems there is not) then please
 don't reply, and I will go along with Rob B. and publish whatever Sage
 worksheets I want to under whatever license I deem appropriate, if
 any.

Totally awesome thread guys.

What about this one?

def is_prime(n):
  return not any([1 * n / d == n // d for d in range(2, n)])

Works in sage, but not in python. Is it GPL?

david

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



[sage-devel] Re: Wrong answer in IntegerModRing.multiplicative_subgroups

2009-05-06 Thread William Stein

On Wed, May 6, 2009 at 10:58 AM, daveloeffler dave.loeff...@gmail.com wrote:

 Just now I was doing some tinkering in sage.rings.integer_mod_ring
 with the aim of fixing ticket #5250, where Sage wrongly claims that
 (Z / 162Z)^* is non-cyclic when it is. That turned out to be easy to
 fix, but in the process I discovered something more nasty: the method
 multiplicative_subgroups for the IntegerModRing class returns
 answers that are wrong.

Crap.   Thanks for spotting this.  Fortunately this is used in only
one place in Sage; this one line in congroup_gamma0.py:

return [GammaH(N, H) for H in R.multiplicative_subgroups()]

But of course that is a potentially important line.

 For example, take N = 341 = 11 * 31. Then (Z / NZ)^* is isomorphic to
 C_10 x C_30. The current method just calculates all subgroups of C_10
 and all subgroups of C_30, and returns the products of those. This is
 clearly wrong, since not all subgroups of a direct product are
 products of subgroups of the factors. In fact in this example there
 are 80 subgroups -- I checked in GAP -- and Sage only finds 32 of
 them.

 Does anyone know a good, fast algorithm for solving this problem
 (correctly)? Alternatively, can someone give me a hint on how to use
 Gap for this? It has the right command (SubgroupsSolvableGroup) but
 I'm struggling to work out how to convert Gap's output back into Sage.

If possible, I would greatly prefer not to use GAP for this. As it is,
none of the modular forms code in Sage depends on GAP or any other
external *pexpect* library.  This can be really important when doing
parallel computing, which I do a lot when doing research computations.

Of course now the onus is on me to give an algorithm (that works), and
I don't have time right now.

William

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



[sage-devel] Re: Wrong answer in IntegerModRing.multiplicative_subgroups

2009-05-06 Thread John Cremona

Do we have a function which returns (Z/NZ)* as an abelian group?
Should not be hard since you could use pari's znstar function.  Then
you'll just run into the less than perfect abelian group codewhich
as far as I know does not have a function returning all subgroups of a
group.

John

2009/5/6 daveloeffler dave.loeff...@gmail.com:

 Just now I was doing some tinkering in sage.rings.integer_mod_ring
 with the aim of fixing ticket #5250, where Sage wrongly claims that
 (Z / 162Z)^* is non-cyclic when it is. That turned out to be easy to
 fix, but in the process I discovered something more nasty: the method
 multiplicative_subgroups for the IntegerModRing class returns
 answers that are wrong.

 For example, take N = 341 = 11 * 31. Then (Z / NZ)^* is isomorphic to
 C_10 x C_30. The current method just calculates all subgroups of C_10
 and all subgroups of C_30, and returns the products of those. This is
 clearly wrong, since not all subgroups of a direct product are
 products of subgroups of the factors. In fact in this example there
 are 80 subgroups -- I checked in GAP -- and Sage only finds 32 of
 them.

 Does anyone know a good, fast algorithm for solving this problem
 (correctly)? Alternatively, can someone give me a hint on how to use
 Gap for this? It has the right command (SubgroupsSolvableGroup) but
 I'm struggling to work out how to convert Gap's output back into Sage.
 


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



[sage-devel] Re: Wrong answer in IntegerModRing.multiplicative_subgroups

2009-05-06 Thread davidloeffler

On May 6, 7.10pm, William Stein wrote:
Crap.   Thanks for spotting this.  Fortunately this is used in only
 one place in Sage; this one line in congroup_gamma0.py:

   return [GammaH(N, H) for H in R.multiplicative_subgroups()]

Yes, that was how I noticed this -- my fix for 5250 caused
multiplicative_subgroups to give a different answer when n = 2, which
broke the doctest for that function in congroup_gamma0.

On May 6, 7:13 pm, John Cremona john.crem...@gmail.com wrote:
 Do we have a function which returns (Z/NZ)* as an abelian group?

Somehow secretly we do, because it's embedded in the DirichletGroup
machinery; but nothing that explicitly creates an AbelianGroup object.


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



[sage-devel] Re: Wrong answer in IntegerModRing.multiplicative_subgroups

2009-05-06 Thread William Stein

On Wed, May 6, 2009 at 11:33 AM, davidloeffler dave.loeff...@gmail.com wrote:

 On May 6, 7.10pm, William Stein wrote:
Crap.   Thanks for spotting this.  Fortunately this is used in only
 one place in Sage; this one line in congroup_gamma0.py:

       return [GammaH(N, H) for H in R.multiplicative_subgroups()]

 Yes, that was how I noticed this -- my fix for 5250 caused
 multiplicative_subgroups to give a different answer when n = 2, which
 broke the doctest for that function in congroup_gamma0.

 On May 6, 7:13 pm, John Cremona john.crem...@gmail.com wrote:
 Do we have a function which returns (Z/NZ)* as an abelian group?

 Somehow secretly we do, because it's embedded in the DirichletGroup
 machinery; but nothing that explicitly creates an AbelianGroup object.


Just some clarification.  The functionality to do that is not embedded
in the DirichletGroup machinery -- what's embedded is that the
functionality is *used* there, so David knows it must be in Sage
somewhere :-).

Here's an example of how to get an explicit description of (Z/NZ)^* as
a product of cyclic abelian groups:

sage: R = Zmod(341)
sage: R.unit_gens()
[156, 34]
sage: [a.multiplicative_order() for a in R.unit_gens()]
[10, 30]
sage: euler_phi(341)
300

Thus (Z/341Z)* = Z/10Z + Z/30Z with the map sending (1,0) to 156 and
(0,1) to 34.

Being able to work with abelian groups in all kinds of different
arrangements and with subtle relations between them is one of the
most critical and central tools needed in implementing computational
number theory algorithms.   That's why I've put a lot of work into
http://trac.sagemath.org/sage_trac/ticket/5882 lately.

 -- William

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



[sage-devel] Re: Wrong answer in IntegerModRing.multiplicative_subgroups

2009-05-06 Thread John Cremona

2009/5/6 William Stein wst...@gmail.com:

 On Wed, May 6, 2009 at 11:33 AM, davidloeffler dave.loeff...@gmail.com 
 wrote:

 On May 6, 7.10pm, William Stein wrote:
Crap.   Thanks for spotting this.  Fortunately this is used in only
 one place in Sage; this one line in congroup_gamma0.py:

       return [GammaH(N, H) for H in R.multiplicative_subgroups()]

 Yes, that was how I noticed this -- my fix for 5250 caused
 multiplicative_subgroups to give a different answer when n = 2, which
 broke the doctest for that function in congroup_gamma0.

 On May 6, 7:13 pm, John Cremona john.crem...@gmail.com wrote:
 Do we have a function which returns (Z/NZ)* as an abelian group?

 Somehow secretly we do, because it's embedded in the DirichletGroup
 machinery; but nothing that explicitly creates an AbelianGroup object.


 Just some clarification.  The functionality to do that is not embedded
 in the DirichletGroup machinery -- what's embedded is that the
 functionality is *used* there, so David knows it must be in Sage
 somewhere :-).

 Here's an example of how to get an explicit description of (Z/NZ)^* as
 a product of cyclic abelian groups:

 sage: R = Zmod(341)
 sage: R.unit_gens()
 [156, 34]
 sage: [a.multiplicative_order() for a in R.unit_gens()]
 [10, 30]
 sage: euler_phi(341)
 300

 Thus (Z/341Z)* = Z/10Z + Z/30Z with the map sending (1,0) to 156 and
 (0,1) to 34.

OK, so if anyone did want to implement a class for
multiplicative-group-mod-N then all the needed machinery is already
there.  I had tried r.tab ut had not see the unit_gens() function.


 Being able to work with abelian groups in all kinds of different
 arrangements and with subtle relations between them is one of the
 most critical and central tools needed in implementing computational
 number theory algorithms.   That's why I've put a lot of work into
 http://trac.sagemath.org/sage_trac/ticket/5882 lately.

I did not know of that work, which looks very interesting (and will
perhaps make AbelianGroup, as currently implemented, redundant?)

John


  -- William

 


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



[sage-devel] Re: Wrong answer in IntegerModRing.multiplicative_subgroups

2009-05-06 Thread William Stein

On Wed, May 6, 2009 at 12:13 PM, John Cremona john.crem...@gmail.com wrote:

 2009/5/6 William Stein wst...@gmail.com:

 On Wed, May 6, 2009 at 11:33 AM, davidloeffler dave.loeff...@gmail.com 
 wrote:

 On May 6, 7.10pm, William Stein wrote:
Crap.   Thanks for spotting this.  Fortunately this is used in only
 one place in Sage; this one line in congroup_gamma0.py:

       return [GammaH(N, H) for H in R.multiplicative_subgroups()]

 Yes, that was how I noticed this -- my fix for 5250 caused
 multiplicative_subgroups to give a different answer when n = 2, which
 broke the doctest for that function in congroup_gamma0.

 On May 6, 7:13 pm, John Cremona john.crem...@gmail.com wrote:
 Do we have a function which returns (Z/NZ)* as an abelian group?

 Somehow secretly we do, because it's embedded in the DirichletGroup
 machinery; but nothing that explicitly creates an AbelianGroup object.


 Just some clarification.  The functionality to do that is not embedded
 in the DirichletGroup machinery -- what's embedded is that the
 functionality is *used* there, so David knows it must be in Sage
 somewhere :-).

 Here's an example of how to get an explicit description of (Z/NZ)^* as
 a product of cyclic abelian groups:

 sage: R = Zmod(341)
 sage: R.unit_gens()
 [156, 34]
 sage: [a.multiplicative_order() for a in R.unit_gens()]
 [10, 30]
 sage: euler_phi(341)
 300

 Thus (Z/341Z)* = Z/10Z + Z/30Z with the map sending (1,0) to 156 and
 (0,1) to 34.

 OK, so if anyone did want to implement a class for
 multiplicative-group-mod-N then all the needed machinery is already
 there.  I had tried r.tab ut had not see the unit_gens() function.


 Being able to work with abelian groups in all kinds of different
 arrangements and with subtle relations between them is one of the
 most critical and central tools needed in implementing computational
 number theory algorithms.   That's why I've put a lot of work into
 http://trac.sagemath.org/sage_trac/ticket/5882 lately.

 I did not know of that work, which looks very interesting (and will
 perhaps make AbelianGroup, as currently implemented, redundant?)

Yes.  The plan is that once 5882 is done (and optimized), then we'll
implement abelian groups very easily as a light wrapper around the
code at 5882.  And finally, after long last, somebody will
successfully (re)write abelian groups in Sage!

 -- William

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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread Robert Bradshaw

On May 6, 2009, at 11:01 AM, David Harvey wrote:

 On May 6, 10:41 am, kcrisman kcris...@gmail.com wrote:

 So is there any final consensus on this?  Is the following Sage
 program automatically GPL?

 {{{
 2+2

 }}}

 Or only in the following form?

 {{{
 Integer(2)+Integer(2)

 }}}

 Please no flames!  I only wanted to know if there was a consensus, I
 got sort of confused by 50 messages on this in my RSS reader at once.

 If there isn't a consensus (and it seems there is not) then please
 don't reply, and I will go along with Rob B. and publish whatever  
 Sage
 worksheets I want to under whatever license I deem appropriate, if
 any.

 Totally awesome thread guys.

 What about this one?

 def is_prime(n):
   return not any([1 * n / d == n // d for d in range(2, n)])

 Works in sage, but not in python. Is it GPL?

I think it depends on the context. Ignoring questions of  
substantiveness, if you were to publish the above code as  
MyAwsomePrimeDetectingScript.sage then it would need to be licensed  
under the GPL. If, however, you had this code in a tutorial/worksheet  
Detecting Primes: a Comparison of Various Methods than I think not  
(because I wouldn't classify that as a derivative work of Sage).

Both the GMP and MPFR manuals contain code that uses GMP/MPFR  in  
their manuals, and I'm sure they're not the only ones. Their manuals  
are licensed under the GFDL, which is incompatible with the GPL.  
Perhaps the license is so restrictive that the FSF can't even abide  
by it, but I take it as an indication that there is at least some  
leeway here.

- Robert



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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread Ralf Hemmecke



On 05/06/2009 06:47 PM, William Stein wrote:
 On Wed, May 6, 2009 at 9:32 AM, Ralf Hemmecke r...@hemmecke.de wrote:
 On 05/06/2009 07:50 AM, William Stein wrote:
 On Tue, May 5, 2009 at 3:25 PM, Brian Granger ellisonbg@gmail.com 
 wrote:
 Hi,

 I have a question about Sage and the GPL.  Here is the main question..

 IF I write code in a Sage notebook, AND I redistribute the code, do I
 need to release my code under the GPL?

 Here is a bit of background...

 At a conference in the last year, one of the Sage developers was asked
 this question, and their answer was...

 You can do whatever you want with your code, you don't have to
 release it under the GPL

 In general, I don't think this answer can be right, but I think it is
 actually a bit subtle.  Here are some of the issues that I see (all of
 this assumes that I do want to distribute my code to others)...

 * Is the code pure python or does it use the sage syntax?  If the code
 uses the sage syntax, I think it must be released under the GPL.
 * Does the code being written actually use any GPL libraries (like the
 sage python package)?  If the code uses GPL libraries, I again think
 it must be GPL'd.
 Publicly distributed code using GPL'd library must be GPL'd.
 Suppose Ondrej's program
 ---
 from sage.all import x
 print x**2
 ---
 were a bit longer to actually contain some creativity (but no line from
 any GPL source code). Suppose he puts that in a file aaa.sage and
 distributes that (without sage). Why should there be any restriction on
 this source? He may, of course put that under BSD (it's open source
 anyway). The file itself does not use Sage. It's simply a string of
 characters.

 Only if somebody downloads Sage, downloads aaa.sage and actually runs
 aaa.sage, the sage library is used. But then distribution has already
 happened and there is no obligation for Ondrej to change the license of
 aaa.sage from BSD to GPL.
 
 [snip]
 
 Ralf,
 
 In this email, what are you basing all your claims on?  Numerous
 claims you make seem to me to contradict statements in the GPL FAQ at
 
http://www.gnu.org/licenses/gpl-faq.html
 
 So I'm curious if you're basing everything on what you just tend to
 wish/believe is true about the GPL based on your memory, or on
 actually carefully reading the GPL and statements made by the FSF
 lawyers to clarify their intent regarding the GPL.  Generally
 speaking, I think that if one wants to understand the intent of the
 GPL, then
 
http://www.gnu.org/licenses/gpl-faq.html
 
 is a very good place to look.Almost every question I have about
 the GPL is clearly answered there.   If one directly disagrees with a
 statement made there, then it is easy to get a lawyer from FSF to
 provide further clarification/answers.
 
 William

Did I disagree with gpl-faq.html? Show me where?

First, I say it again. If all software were GPL, that would be 
wonderful. So if people think that the GPL requires notebooks to be 
further distributed under GPL that's fine with me and, in fact, I like 
this viral nature of GPL.

But if it comes to Ondrej's code, I think it is ridiculous if it were 
forced to be under GPL. Just suppose Ondrej had mistyped his text so 
that it looked like

---
from asge.all import x
print x**2
---
(Note it's asge not sage.)

Who would claim that this text must be distributed under GPL?

http://www.gnu.org/licenses/gpl-faq.html#CanIUseGPLToolsForNF
http://www.gnu.org/licenses/gpl-faq.html#GPLOutput
http://www.gnu.org/licenses/gpl-faq.html#WhatCaseIsOutputGPL

 * If a sage notebook is source code does clicking Share in the
 notebook constitute distribution.  In other words, if a bunch of
 people start sharing sage notebooks, do they all have to be GPL?
 No.  This is internal distribution, so the GPL doesn't apply.  This is
 no different than the NSA (say) distributing a program from one
 researcher to another, and obviously they don't have to GPL their
 code.

Ooops, I've just found
http://www.gnu.org/licenses/gpl-faq.html#InternalDistribution
However, that doesn't say that the GPL doesn't apply. Why should the GPL 
not apply? The only restriction is:

... without giving the staff permission to release that
modified version to  outsiders

By the GPL each individual inside the company has the right to 
distribute a modified (organization internal) GPL program under the 
terms of the GPL (i.e. with sources). But the GPL does not force 
distribution and the organization may forbid it. So it just means that 
inside the organization, every one who has the binary form of the 
program must be able to get the source.

 No. But for a different reason. The notebook is a separate piece. If you
 don't distribute it together with Sage, then it's only a string of
 characters (and as such not particularly useful) and I don't see a
 reason why such distribution must be under GPL rules.

 If, however, you choose to distribute your notebook together with Sage
 then it can be considered an 

[sage-devel] Re: strange rounding with SymbolicArithmetic

2009-05-06 Thread Yann



On May 6, 6:35 pm, Carl Witty carl.wi...@gmail.com wrote:
 On Wed, May 6, 2009 at 2:20 AM, Yann yannlaiglecha...@gmail.com wrote:

  Just for the record,
  isn't the following a bug?

  sage: p=RealIntervalField(4)(3.1)
  sage: p.str(style='brackets')
  '[3.00 .. 3.25]'
  sage: p
  4.?

 It's a deliberate design decision.  To quote from real_mpfi.pyx:

         When there are two
         possible results of equal precision and with the same error width,
         then we pick the one which is farther from zero. (For instance,
         RIF(0, 123) with two error digits could print as 61.?62 or 62.?62.
         We prefer the latter because it makes it clear that the interval is
         known not to be negative.)

I do agree

 In other words,
 sage: RealIntervalField(4)(0, 1)
 1.?
 prints as the interval [0 .. 2], rather than [-1 .. 1], because IMHO
 it is useful to be able to know that an interval is nonnegative; and
 we do this by always picking the result farther from zero whenever
 there are two possible correct printings.  (Note that 3.? and 4.?
 would both include the interval [3.00 .. 3.25], so they are both
 correct in that sense.)

I would agree if it was 4.?1 (even I find something like 4.?±1 easier
to understand)
but without the error explicitely written, I would prefer to do what
is in the docstring:
In question style (the default), we print the known correct
part of the number 
My understanding of this sentence is that we print the digits known
for sure. And if a
number is in the interval [3.00 .. 3.25], this should be 3.?
The design you decision si only relevant IMHO if the error digits are
explicitely written

 It would be possible to use a different rule for choosing between two
 correct answers, but I like the current one.

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



[sage-devel] Re: strange rounding with SymbolicArithmetic

2009-05-06 Thread Carl Witty

On Wed, May 6, 2009 at 1:46 PM, Yann yannlaiglecha...@gmail.com wrote:
 In other words,
 sage: RealIntervalField(4)(0, 1)
 1.?
 prints as the interval [0 .. 2], rather than [-1 .. 1], because IMHO
 it is useful to be able to know that an interval is nonnegative; and
 we do this by always picking the result farther from zero whenever
 there are two possible correct printings.  (Note that 3.? and 4.?
 would both include the interval [3.00 .. 3.25], so they are both
 correct in that sense.)

 I would agree if it was 4.?1 (even I find something like 4.?±1 easier
 to understand)
 but without the error explicitely written, I would prefer to do what
 is in the docstring:
    In question style (the default), we print the known correct
 part of the number 
 My understanding of this sentence is that we print the digits known
 for sure. And if a
 number is in the interval [3.00 .. 3.25], this should be 3.?
 The design you decision si only relevant IMHO if the error digits are
 explicitely written

We definitely don't want to print the digits known for sure.
Consider the interval [0.99 .. 1.01], which would print as
1.00? with the current code (I'm ignoring the fact that the
endpoints are not exactly representable in binary).  With printing
the digits known for sure, the first digit that we know for sure is
the tens digit, which is known to be zero; that would give 0.?e1,
which gives vastly less information than 1.00?.

Perhaps the docstring you quote should be adjusted?  Elsewhere (in the
module docstring) we find this variant:

In question style, we print the known correct part of the number,
followed by a question mark. The question mark indicates that the
preceding digit is possibly wrong by +/- 1.

Maybe that second sentence should be copied into the docstring for .str()?

Carl

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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread dagss

On May 6, 10:27 pm, Ralf Hemmecke r...@hemmecke.de wrote:
 But if it comes to Ondrej's code, I think it is ridiculous if it were
 forced to be under GPL. Just suppose Ondrej had mistyped his text so
 that it looked like

 ---
 from asge.all import x
 print x**2
 ---
 (Note it's asge not sage.)

 Who would claim that this text must be distributed under GPL?

Another example I wonder about, in the same (contrived) spirit: It's
entirely possible to write original Sage code, in, say, an email,
without ever having retrieved a copy of Sage (e.g. by simply reading
online docs); and so never accepting its terms of use. How can one
possibly violate a license one never agreed to in the first place?

I guess there's two discussions going on here; one for text and one
for worksheets...though I find it hard to seperate the two.

I know, IANAL...

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



[sage-devel] sage patches to ghmm

2009-05-06 Thread Tim Abbott

Hello,

The ghmm developers have posted a 0.9rc1 release candidate on their 
website:

http://sourceforge.net/project/showfiles.php?group_id=67094

with the hopes of doing an actual release shortly (they said they were 
doing it last Friday, actually, but I think are delaying because I said 
I'd review the software for minor bugs found by Debian's automated 
checking tools).

Since they haven't released in several years, this might be a good time to 
send them any patches Sage has against ghmm that haven't been applied 
there already.

I can't figure out what those are, however, because the .spkg in Sage 
3.4.1 seems to have a bunch of patches that don't do anything (i.e. the 
file being copied in is replacing an identical file).  Did someone 
accidentally overwrite the copies in the upstream directory, or did the 
patches all get merged already?

-Tim Abbott

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



[sage-devel] Re: strange rounding with SymbolicArithmetic

2009-05-06 Thread Yann

On May 6, 11:04 pm, Carl Witty carl.wi...@gmail.com wrote:
 On Wed, May 6, 2009 at 1:46 PM, Yann yannlaiglecha...@gmail.com wrote:
  In other words,
  sage: RealIntervalField(4)(0, 1)
  1.?
  prints as the interval [0 .. 2], rather than [-1 .. 1], because IMHO
  it is useful to be able to know that an interval is nonnegative; and
  we do this by always picking the result farther from zero whenever
  there are two possible correct printings.  (Note that 3.? and 4.?
  would both include the interval [3.00 .. 3.25], so they are both
  correct in that sense.)

  I would agree if it was 4.?1 (even I find something like 4.?±1 easier
  to understand)
  but without the error explicitely written, I would prefer to do what
  is in the docstring:
     In question style (the default), we print the known correct
  part of the number 
  My understanding of this sentence is that we print the digits known
  for sure. And if a
  number is in the interval [3.00 .. 3.25], this should be 3.?
  The design you decision si only relevant IMHO if the error digits are
  explicitely written

 We definitely don't want to print the digits known for sure.
 Consider the interval [0.99 .. 1.01], which would print as
 1.00? with the current code (I'm ignoring the fact that the
 endpoints are not exactly representable in binary).  With printing
 the digits known for sure, the first digit that we know for sure is
 the tens digit, which is known to be zero; that would give 0.?e1,
 which gives vastly less information than 1.00?.

 Perhaps the docstring you quote should be adjusted?  Elsewhere (in the
 module docstring) we find this variant:

 In question style, we print the known correct part of the number,
 followed by a question mark. The question mark indicates that the
 preceding digit is possibly wrong by +/- 1.

 Maybe that second sentence should be copied into the docstring for .str()?

 Carl

or print the error digit 4.?1 (expicit is better than implicit,
etc :) )
--~--~-~--~~~---~--~~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Wrong answer in IntegerModRing.multiplicative_subgroups

2009-05-06 Thread davidloeffler

OK. In that case I'll upload a fix for #5250 without addressing this
issue, and just fudge the multiplicative_subgroups method so it
returns the same wrong output it did before, so the doctest in
congroup_gamma0 passes. Once we have a new abelian groups framework
based on #5882, someone can then go away and write a subgroups
method for arbitrary abelian groups which gives correct output, and we
can fix multiplicative_subgroups using that.

David

On May 6, 8:46 pm, William Stein wst...@gmail.com wrote:
 On Wed, May 6, 2009 at 12:13 PM, John Cremona john.crem...@gmail.com wrote:

  2009/5/6 William Stein wst...@gmail.com:

  On Wed, May 6, 2009 at 11:33 AM, davidloeffler dave.loeff...@gmail.com 
  wrote:

  On May 6, 7.10pm, William Stein wrote:
 Crap.   Thanks for spotting this.  Fortunately this is used in only
  one place in Sage; this one line in congroup_gamma0.py:

        return [GammaH(N, H) for H in R.multiplicative_subgroups()]

  Yes, that was how I noticed this -- my fix for 5250 caused
  multiplicative_subgroups to give a different answer when n = 2, which
  broke the doctest for that function in congroup_gamma0.

  On May 6, 7:13 pm, John Cremona john.crem...@gmail.com wrote:
  Do we have a function which returns (Z/NZ)* as an abelian group?

  Somehow secretly we do, because it's embedded in the DirichletGroup
  machinery; but nothing that explicitly creates an AbelianGroup object.

  Just some clarification.  The functionality to do that is not embedded
  in the DirichletGroup machinery -- what's embedded is that the
  functionality is *used* there, so David knows it must be in Sage
  somewhere :-).

  Here's an example of how to get an explicit description of (Z/NZ)^* as
  a product of cyclic abelian groups:

  sage: R = Zmod(341)
  sage: R.unit_gens()
  [156, 34]
  sage: [a.multiplicative_order() for a in R.unit_gens()]
  [10, 30]
  sage: euler_phi(341)
  300

  Thus (Z/341Z)* = Z/10Z + Z/30Z with the map sending (1,0) to 156 and
  (0,1) to 34.

  OK, so if anyone did want to implement a class for
  multiplicative-group-mod-N then all the needed machinery is already
  there.  I had tried r.tab ut had not see the unit_gens() function.

  Being able to work with abelian groups in all kinds of different
  arrangements and with subtle relations between them is one of the
  most critical and central tools needed in implementing computational
  number theory algorithms.   That's why I've put a lot of work into
 http://trac.sagemath.org/sage_trac/ticket/5882lately.

  I did not know of that work, which looks very interesting (and will
  perhaps make AbelianGroup, as currently implemented, redundant?)

 Yes.  The plan is that once 5882 is done (and optimized), then we'll
 implement abelian groups very easily as a light wrapper around the
 code at 5882.  And finally, after long last, somebody will
 successfully (re)write abelian groups in Sage!

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



[sage-devel] #6000 [with patch, needs review] Sets enumerated by exploring a search space with a (lazy) tree or graph structure

2009-05-06 Thread Nicolas M. Thiery

Dear Sage and Sage-combinat developers,

Patch of the day:

#6000 ([with patch, needs review] Sets enumerated by exploring a search space 
with a (lazy) tree or graph structure

That's rather trivial code (searches in a graph), but has lots of
applications, and I ended up written it again too many times in my
life. So, this is an attempt at not doing it once again. It's used
extensively in upcoming patches to enumerate elements in a submonoid,
an ideal of a poset, a descent classes in a Coxeter group, a crystal,
etc.

We had the analog in MuPAD-Combinat and used it a lot, but never came
up with a good interface.

So, it needs a review, and more importantly feed back!

Best, 
Nicolas

--
This patches extend the sage.combinat.backtrack library with other
generic tools for constructing large sets whose elements can be
enumerated by exploring a search space with a (lazy) tree or graph
structure.

 - SearchForest:
   Depth first search through a tree descrived by a `child` function
 - GenericBacktracker: (was readilly there)
   Depth first search through a tree descrived by a `child` function, with 
branch pruning, ...
 - TransitiveIdeal:
   Depth first search through a graph described by a `neighbours` relation
 - TransitiveIdealGraded:
   Breath first search through a graph described by a `neighbours` relation

Todo: the names are crappy and inconsistent, because they come from
different point of views. We need to find a good naming scheme!!! 

Do we want to emphasize the underlying graph/tree structure?  The
branchbound aspect? The transitive closure of a relation point of
view?

Todo: which interface do we want:
 - TransitiveIdeal(relation, generators)
 - TransitiveIdeal(generators, relation)
The code needs to be standardized once the choice is done.
--

--
Nicolas M. Thiéry Isil nthi...@users.sf.net
http://Nicolas.Thiery.name/

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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread Ralf Hemmecke

On 05/06/2009 07:44 PM, Robert Bradshaw wrote:
 On May 6, 2009, at 10:37 AM, Tim Lahey wrote:
 Doesn't both Maple and Mathematica make use of GMP? I thought they  
 did.

 They aren't licensed under the GPL.
 
 GMP is LGPL, not GPL. If what Ralf said were correct (which it  
 isn't), there would be no need for an LGPL at all.

Could you point me exactly to the place where I am wrong?

Suppose you have a library A that is distributed under license L.
If you write a program B that uses the library A *and* you create a 
binary and distribute the binary for B then that contains A (I don't 
care whether that is static or dynamic linking).

Let's agree that B without the library A is the extension E (which is 
purely new code).

If you distribute B=A+E and want to keep the sources for E private then 
you cannot do this if L=GPL, but you can if L=LGPL.

This settles the need for LGPL.

However, I did not describe this case. Even if L=GPL, you can distribute
a form of E in a non-source form (which is probably useless without A) 
under any license you like. You might have produced that form of E 
without even having any GPL software on your computer. So why would 
somebody have the right to force you to distribute E under GPL? What if 
A was formerly under BSD and then changed to GPL? Would that mean you 
suddenly can no longer distribute E under a closed license. Why? If you 
don't distribute A you don't distribute GPL code and thus have no 
obligation.

Now if a person P takes your E and also gets A and in some way produces 
a binary B, then P has no right to distribute B if L=GPL, since this 
would require him to distribute B under GPL as well, but without the 
sources for E this is clearly impossible. But of course, it is no 
problem to use B for private things.

Now think of A as being Sage and E as being a notebook.

Ralf

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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread Ivan Andrus

On May 6, 2009, at 12:09 AM, mabshoff wrote:

 Note that any GPLed codebase like Singular or pari would also be viral
 to high level code and I cannot believe that this is the way the GPL
 is intended. Anything using readline, i.e. IPython, would be infected,
 too, and that goes way too far IMHO (You can obviously use libedit or
 no readline at all to work around this).

I could very well be wrong, but according to RMS anything using  
readline *is* infected:
http://clisp.cvs.sourceforge.net/*checkout*/clisp/clisp/doc/Why-CLISP-is-under-GPL

I would be interested in knowing why this is _not_ the case, i.e. what  
caused clisp to have problems but not IPython.

Not a big fan of the GPL,
Ivan


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



[sage-devel] Sage 4.0 plan

2009-05-06 Thread William Stein

Hi,

This is the plan for getting Sage-4.0 out.  Help in any way you can.

Wed May 6: * mhansen (by 2am) -- patches/todo list so anybody can help.
   * robertwb will have reviewed david roe's
   * mabshoff provides bill with symmetrica bug testcase
   * mabshoff fix libtool issue for pynac

Thu May 7:   sage-4.0.alpha0.tar -- ecl; mop up positive review; freebsd
burcin updated pynac
(this will better test ecl)
   * wstein, robertwb, nick, mhansen --
help with pynac/symbolics doctest

Fri May 8:   sage-4.0.alpha1.tar -- mhansen's symbolics
  get in david roe's patch

Sat May 9:   Sage-4.0 day -- IRC /merge/referee:
 goal: coverage to 75.0%.
 E.g.,
   * wstein or cwitty -- referee implicit plot 3d

Sun May 10:  sage-4.0.rc0.tar  (feature freeze)
   * fix singular prompt issue (solaris fix)
   * fix other singular remaining issues.

Mon May 11:  fix fallout;malb fix os x libsingular (?)

Tue May 12:  sage-4.0.rc1.tar

Wed May 13:

Thu May 14:  sage-4.0.final.tar

Fri May 15:  Release sage-4.0.tar.


-- 
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 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: strange rounding with SymbolicArithmetic

2009-05-06 Thread Carl Witty

On Wed, May 6, 2009 at 2:16 PM, Yann yannlaiglecha...@gmail.com wrote:
 or print the error digit 4.?1 (expicit is better than implicit,
 etc :) )

Well, again this was an explicit decision; the thinking was that if
somebody saw 1.234567? they might be able to guess approximately what
it means without reading the documentation, but 1.234567?1 is more
confusing and less likely to have somebody correctly guess what it
means.

What do other people think?

Carl

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



[sage-devel] Re: strange rounding with SymbolicArithmetic

2009-05-06 Thread Nick Alexander

 1.234567?

+1

 1.234567?1 is more

-1

Nick

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



[sage-devel] Re: sage patches to ghmm

2009-05-06 Thread mabshoff



On May 6, 2:16 pm, Tim Abbott tabb...@mit.edu wrote:
 Hello,

Hi Tim,

 The ghmm developers have posted a 0.9rc1 release candidate on their
 website:

 http://sourceforge.net/project/showfiles.php?group_id=67094

Good.

 with the hopes of doing an actual release shortly (they said they were
 doing it last Friday, actually, but I think are delaying because I said
 I'd review the software for minor bugs found by Debian's automated
 checking tools).

Cool.

 Since they haven't released in several years, this might be a good time to
 send them any patches Sage has against ghmm that haven't been applied
 there already.

Well, William did some pretty deep changes upstream does not want,
i.e. Sage does not use the XML interface that they want to keep non-
optional, so I am not sure how much of the code should actually go
upstream.

 I can't figure out what those are, however, because the .spkg in Sage
 3.4.1 seems to have a bunch of patches that don't do anything (i.e. the
 file being copied in is replacing an identical file).  Did someone
 accidentally overwrite the copies in the upstream directory, or did the
 patches all get merged already?

Sounds like an accident. As is the code in Sage is actually partially
broken on Itanium/Linux (some allocator just segfaults), so this ought
to be sorted out in Sage 4.0.x. Right now the plan is to do 4.0 before
SD 15, 4.0.1 after SD 15 with work from SD 15 and patches that didn't
make it into 4.0. and then hopefully sort out everything for Debian
for 4.0.2, i.e. about a month from now. Does that fit with your time
table?

After that we ought to have 4.1 which should deal with the category
patches, etc.

         -Tim Abbott

Cheers,

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



[sage-devel] Re: Sage 4.0 plan

2009-05-06 Thread mabshoff



On May 6, 5:53 pm, William Stein wst...@gmail.com wrote:
 Hi,

 This is the plan for getting Sage-4.0 out.  Help in any way you can.

 Wed May 6: * mhansen (by 2am) -- patches/todo list so anybody can help.
            * robertwb will have reviewed david roe's
            * mabshoff provides bill with symmetrica bug testcase

*stand alone* testcase :)

            * mabshoff fix libtool issue for pynac

I think Mike already partially fixed that, but we will see.

 Thu May 7:   sage-4.0.alpha0.tar -- ecl; mop up positive review; freebsd
                                     burcin updated pynac
                                     (this will better test ecl)
            * wstein, robertwb, nick, mhansen --
                         help with pynac/symbolics doctest

 Fri May 8:   sage-4.0.alpha1.tar -- mhansen's symbolics
                                                       get in david roe's patch

 Sat May 9:   Sage-4.0 day -- IRC /merge/referee:
              goal: coverage to 75.0%.
              E.g.,
                * wstein or cwitty -- referee implicit plot 3d

William will announce this separately later tonight.

 Sun May 10:  sage-4.0.rc0.tar  (feature freeze)
                * fix singular prompt issue (solaris fix)
                * fix other singular remaining issues.

singular - solaris?

 Mon May 11:  fix fallout;        malb fix os x libsingular (?)

 Tue May 12:  sage-4.0.rc1.tar

 Wed May 13:

 Thu May 14:  sage-4.0.final.tar

 Fri May 15:  Release sage-4.0.tar.

During SD 15: Sage 4.0 release party :)

 --
 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 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~--~~~~--~~--~--~---



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread mabshoff



On May 6, 5:43 pm, Ivan Andrus g...@macmail.com wrote:
 On May 6, 2009, at 12:09 AM, mabshoff wrote:

  Note that any GPLed codebase like Singular or pari would also be viral
  to high level code and I cannot believe that this is the way the GPL
  is intended. Anything using readline, i.e. IPython, would be infected,
  too, and that goes way too far IMHO (You can obviously use libedit or
  no readline at all to work around this).

 I could very well be wrong, but according to RMS anything using  
 readline *is* 
 infected:http://clisp.cvs.sourceforge.net/*checkout*/clisp/clisp/doc/Why-CLISP...

Yes, that is universally agreed upon. The issue is what is a derived
work when GPLed interpreter uses extension modules that are GPL due do
linking against GPLed libraries.

I find it strange that code written on top of a GPLed interpreter is
fine, but if you write a GPLed interpreter that loads GPLed extensions
according the the FSF that code written on top of the interpreter is
subject to the GPL (IANAL, this is how I read the FSF's position).

 I would be interested in knowing why this is _not_ the case, i.e. what  
 caused clisp to have problems but not IPython.

IPython is licensed under the new BSD license, so it is GPL
compatible.

 Not a big fan of the GPL,

Well, that is a whole other thread if it gets started, but it should
be on sage-flame :)

 Ivan

Cheers,

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



[sage-devel] Re: strange rounding with SymbolicArithmetic

2009-05-06 Thread Robert Bradshaw

On May 6, 2009, at 6:38 PM, Nick Alexander wrote:


 1.234567?

 +1

 1.234567?1 is more

 -1

Agreed.

- Robert


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



[sage-devel] Re: strange rounding with SymbolicArithmetic

2009-05-06 Thread Jason Grout

Nick Alexander wrote:
 1.234567?
 
 +1
 
 1.234567?1 is more
 
 -1


I vote the same as Nick.

Jason


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



[sage-devel] Is the pre-built clisp.spkg for Solaris SPARC available? If so where?

2009-05-06 Thread Dr. David Kirkby

Michael said he would post a pre-built clisp for Solaris, as it appears 
there are serious issues with clisp with any recent compiler for 
Solaris. Is is available, and if so where can I find it?

Sorry if this has been answered in another thread. The discussions were 
originally on a thread about a specific Sage release, but I can't seem 
to find the reply, but as the thread has around 50 (wild guess) entries, 
it is not always easy to find the bit on is looking for.

dave

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



[sage-devel] Re: Clarification of Sage and GPL

2009-05-06 Thread Ronan Paixão

Em Qua, 2009-05-06 às 00:29 -0700, William Stein escreveu:
 On Tue, May 5, 2009 at 11:57 PM, Robert Bradshaw
 rober...@math.washington.edu wrote:
   What about
  publishing (collections of) worksheets under the CC license? Code
  snippets in books? Are your books GPL compatible? (Maybe you could
  claim fair use.)
 
  I have no trouble licensing code under the GPL, but I do think this
  places an onerous and inappropriate burden on all *users* of Sage,
  and the GPL is supposed to be about modifying/distributing code.
 

including yourself.

 Building software on top of GPL'd libraries like Sage *does* have
 serious implications toward sharing.  That's sort of the point of the
 GPL'd.  There's no sense in hiding that.
 
 Suppose you spend three years implementing an algorithm as part of
 Sage to compute X (say some Monsky-Washnitzer cohomology
 computations).  Then somebody else writes and publishes a clever paper
 that includes a several-page Sage program that uses your
 implementation of X (plus many other things in Sage) to compute Y (say
 p-adic Regulators of Jacobians of genus 2 curves).  Would you
 definitely be allowed to use their new code and include it in Sage?
 
 I think the GPL was designed to ensure that computer programs that
 build on your programs must be shared under compatible conditions.
 This has the pro that it means that your work is protected in that
 when people build on it, they can't hoard their improvements.  It
 has the drawback that it puts an onerous (and inappropriate?) burden
 on those same people, that when they on your GPL'd work, they can't
 hoard their improvements.
 
 In one sense at least, Sage can never be an alternative to
 Maple/Mathematica/Matlab/Magma, etc.  With the Ma's, if one wrote a
 big program on top of them, and wanted to distribute the program as a
 complete self-contained closed source program (say something like a
 standalone Mathematica demonstration), at least it would be
 technically and legally possible.  One would have to do some sort of
 contract with say Wolfram, Inc., but that's quite reasonable.  With
 Sage that would be impossible, since the copyright is spread over
 hundreds of people (some dead).  Scipy/Numpy/Enthought's stack
 does provide this extra feature, which Sage never will.
 
 There's a little good and a little bad in everything.
 
 William

Here's something that may really upset you (specially since earlier you
asked about which developers could be infringing the GPL, if one thinks
about the most restrictive interpretation).

You wrote a book last year. It does include code that should be executed
in Sage. However, you haven't released the book under the GPL and
instead signed with a publisher to distribute your book. OK, you did
take some measures to ensure the book will be freely available to the
public after some time, however the GPL does not include text to deal
with that. So, if you really want to take the strict interpretation, you
should make available your book right now, which would of course break
your contract with your publisher. So, what could you do now? Could
other developers sue you to make you release your book under the GPL? If
other people published books which included Sage example code, could you
sue them to release their books under the GPL?

Now, if one mathematician happens to solve one of the Millenium Prize
Problems ( http://en.wikipedia.org/wiki/Millennium_Prize_Problems ) in
Sage. Would his proof be GPL? Would other proofs that depend on that
also be GPL? What about the result itself? I guess this would pretty
much restrict much of Mathematics itself, contrary to the spirit of
mathematics.

Just my 2 cents with a truckload of salt.

Ronan

PS: Just to mention, if I had to choose I would release my libraries as
LGPL, which would avoid much of the problems of both sides, or use some
sort of dual-licensing, or even just not release them, but that's too
extreme.



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



[sage-devel] Re: strange rounding with SymbolicArithmetic

2009-05-06 Thread William Stein

On Wed, May 6, 2009 at 6:28 PM, Carl Witty carl.wi...@gmail.com wrote:

 On Wed, May 6, 2009 at 2:16 PM, Yann yannlaiglecha...@gmail.com wrote:
 or print the error digit 4.?1 (expicit is better than implicit,
 etc :) )

 Well, again this was an explicit decision; the thinking was that if
 somebody saw 1.234567? they might be able to guess approximately what
 it means without reading the documentation, but 1.234567?1 is more
 confusing and less likely to have somebody correctly guess what it
 means.

 What do other people think?

 Carl

I'm not voting on anything, but when my undergrad students in the Sage
class I'm teaching learned about RIF, they all nearly uniformly
thought they had made a mistake when they got output that contained a
?.

 -- William

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