Vote: should CHomP be a standard spkg?

82 views
Skip to first unread message

John H Palmieri

unread,
Jul 12, 2012, 10:48:23 PM7/12/12
to sage-...@googlegroups.com
Right now CHomP (Computation Homology Project) is an optional spkg for Sage (according to a vote in December 2010 https://groups.google.com/d/topic/sage-devel/HLxXNpykXm8/discussion, although the spkg never got moved from the "experimental" directory to the "optional" directory). I propose making it a standard package.

[ ] Yes
[ ] No

Some background: CHomP is used to compute homology of simplicial complexes and chain complexes. The spkg is small, about 800k, and when built, installs three binaries, total about 800k, to SAGE_ROOT/local/bin. Someone who knows more C++ than I do could probably write a library interface to it that would make it faster than using the binaries, and possibly also make its footprint smaller.

Anyway, I am aware of the following software for doing these kinds of computations:

 - Sage: slow, with limited capabilities -- computes homology only as abstract groups, does not keep track of generators. We could implement this, but it would make the calculations much slower.

 - CHomP: fast, can keep track of homology generators.

 - simpcomp: a GAP package. Faster than Sage, not as fast as CHomP, can keep track of homology generators.

 - homology: a proposed GAP package. Hard to install (requires the GNU Pascal compiler), but when installed, very fast.

 - topaz: part of polymake. polymake is an experimental Sage package, which is currently broken. The new version of polymake insists that on Mac OS X, Fink is a prerequisite, so this does not seem like a good option. (Maybe Fink isn't really necessary, but I don't want to figure it out.)

 - macaulay2: another experimental spkg, also seems to be broken.

Keeping track of generators of homology groups is necessary for doing many computations with chain complexes and simplicial complexes; for example, if you have a map of chain complexes and you want to compute the induced map on homology, you need the generators. CHomP is the easiest way to achieve this right now, especially since it is already an optional package and has an interface to Sage.

--
John

kcrisman

unread,
Jul 12, 2012, 10:57:02 PM7/12/12
to sage-...@googlegroups.com


On Thursday, July 12, 2012 10:48:23 PM UTC-4, John H Palmieri wrote:
Right now CHomP (Computation Homology Project) is an optional spkg for Sage (according to a vote in December 2010 https://groups.google.com/d/topic/sage-devel/HLxXNpykXm8/discussion, although the spkg never got moved from the "experimental" directory to the "optional" directory).

What would the disadvantage be to having it be a very good optional spkg?  Other than convenience :) Just curious.   If the chomp interface with native Sage stuff in this area is fairly rudimentary, as is (maybe?) implied here, maybe it would be better to wait until it was better-integrated.

kcrisman

unread,
Jul 12, 2012, 11:05:06 PM7/12/12
to sage-...@googlegroups.com

 - topaz: part of polymake. polymake is an experimental Sage package, which is currently broken. The new version of polymake insists that on Mac OS X, Fink is a prerequisite, so this does not seem like a good option. (Maybe Fink isn't really necessary, but I don't want to figure it out.)


I had a query the other day about using polymake in Sage.  And http://polymake.org/doku.php/howto/mac does eventually get to non-Fink instructions.  Not that this necessarily relates directly to the vote, but I figured some enterprising person might make a working spkg for polymake.  Note that it apparently only works on 10.6+ with the most recent versions?  They even give some pretty specific patches (further down than I copied) to put in the configuration files... it looks at least as detailed as most spkg-installs!

You can compile polymake versions 2.11 or 2.10 also without using Fink. In this case you have to compile some Linux packages first. Note: This is still not very thoroughly tested, but it should work on Mac OS 10.6 and 10.7. If you experience problems please tell me.

  • You need to install the following Linux packages (Follow the installation instructions given with each of the packages.)
    • readline (version 6 or later)
    • XML-LibXSLT (version 1.68 for 10.6 and version 1.71 for 10.7, otherwise you also need a version of XML-LibXML)
    • gmp (version 5 or later). gmp needs to be configured with the –enable-cxx=yes option.
    • mpfr (version 3 or later)
    • boost (we only need the headers, so it suffices to unpack the archive, you can even delete most of the stuff, just keep include)
  • For Mac OS 10.7 you also have to build your own gcc, so you additionally need
    • gcc
      To build your gcc you also need Xcode, and compile in the right order: gmpmpfrmpcppl, and then gcc.
 

kcrisman

unread,
Jul 12, 2012, 11:08:22 PM7/12/12
to sage-...@googlegroups.com, sage-ma...@googlegroups.com


On Thursday, July 12, 2012 11:05:06 PM UTC-4, kcrisman wrote:

 - topaz: part of polymake. polymake is an experimental Sage package, which is currently broken. The new version of polymake insists that on Mac OS X, Fink is a prerequisite, so this does not seem like a good option. (Maybe Fink isn't really necessary, but I don't want to figure it out.)


I had a query the other day about using polymake in Sage.  And http://polymake.org/doku.php/howto/mac does eventually get to non-Fink instructions.  Not that this necessarily relates directly to the vote, but I figured some enterprising person might make a working spkg for polymake.  Note that it apparently only works on 10.6+ with the most recent versions?  They even give some pretty specific patches (further down than I copied) to put in the configuration files... it looks at least as detailed as most spkg-installs!

Sorry for hijacking this, John ...  does chomp have hoodies?


I would buy a Sage hoodie.  Just sayin'.  There HAS to be a larger market for those than polymake hoodies, wouldn't you think? 

François Bissey

unread,
Jul 12, 2012, 11:08:49 PM7/12/12
to sage-...@googlegroups.com
I myself as a software packager have a teeth against chomp upstream.
They distribute unversioned tarballs. So the only stuff available from them
is the latest. Not a real problem for sage per see.

The spkg in the experimental repo is at version 20100213 (.p2) while upstream
is at 20110818. From past experience sage worked with 20100830 so at least
the interface is probably fairly stable.

Burcin would know about polymake. I think he has a recent spkg. I think we
have it working in sage-on-gentoo and lmnd-prefix.

Francois

François Bissey

unread,
Jul 12, 2012, 11:14:06 PM7/12/12
to sage-...@googlegroups.com
Hoodies I don't think so. But a jumper/jersey/(you regional variation) or a T
shirt may be. There are outfit that would make them on demand at relatively low
cost like caffepress I believe spreadshirt.de is probably a similar outfit.

Francois

John H Palmieri

unread,
Jul 12, 2012, 11:37:43 PM7/12/12
to sage-...@googlegroups.com


On Thursday, July 12, 2012 10:08:49 PM UTC-5, François wrote:
On Thu, 12 Jul 2012 19:57:02 kcrisman wrote:
> On Thursday, July 12, 2012 10:48:23 PM UTC-4, John H Palmieri wrote:
> > Right now CHomP (Computation Homology Project) is an optional spkg for
> > Sage (according to a vote in December 2010
> > https://groups.google.com/d/topic/sage-devel/HLxXNpykXm8/discussion,
> > although the spkg never got moved from the "experimental" directory to the
> > "optional" directory).
>
> What would the disadvantage be to having it be a very good optional spkg?

Not much except for convenience.
 
>  Other than convenience :) Just curious.   If the chomp interface with
> native Sage stuff in this area is fairly rudimentary, as is (maybe?)
> implied here, maybe it would be better to wait until it was
> better-integrated.

I'm the person most interested in this, I think, and I don't have the expertise to integrate it better. So it would be a long wait. I imagine that of the possible users of this, most would want to calculate homology groups of large simplicial complexes, in which the bottleneck will be the actual calculations, not the time spent in the interface between CHomP and Sage.
 
I myself as a software packager have a teeth against chomp upstream.
They distribute unversioned tarballs. So the only stuff available from them
is the latest. Not a real problem for sage per see.

Yes, that's a problem. They also don't seem to have any release notes or change logs. 
 
The spkg in the experimental repo is at version 20100213 (.p2) while upstream
is at 20110818. From past experience sage worked with 20100830 so at least
the interface is probably fairly stable.

I downloaded and built the new version a few days ago. At the moment, anyway, the optional spkg for Sage only uses a few of the pieces of CHomP, and as far as I can tell, those pieces haven't changed in the new version. Or if they have changed, they haven't affected the interface, and they haven't gotten any faster: homology calculations take the same time with the old and the new.

--
John

Dima Pasechnik

unread,
Jul 13, 2012, 12:04:49 AM7/13/12
to sage-...@googlegroups.com
On 2012-07-13, John H Palmieri <jhpalm...@gmail.com> wrote:
> ------=_Part_1075_13357397.1342147703730
> Content-Type: text/plain; charset=ISO-8859-1
>
> Right now CHomP (Computation Homology Project) is an optional spkg for Sage
> (according to a vote in December 2010
> https://groups.google.com/d/topic/sage-devel/HLxXNpykXm8/discussion,
> although the spkg never got moved from the "experimental" directory to the
> "optional" directory). I propose making it a standard package.
>
[X] Yes

I used CHomP recently for some homology computations
(see (the bottom of) the question I posted here:
http://mathoverflow.net/questions/93785/do-you-know-this-determinant-basic-commutative-algebra)
and it was great, and I was wondering why it's not
included in Sage in a more proper way.

At least "optional" would be great!

Best,
Dima


Volker Braun

unread,
Jul 13, 2012, 9:21:28 AM7/13/12
to sage-...@googlegroups.com
CHomP is GPL v2 only, at least according to the license.txt. Its probably just a case of never updating it, but maybe we should ask first if GPL v2+ is ok?

The CHomP source is pretty decent C++, it could be wrapped into some Cython code easily enough I think.

Altogether, I'd be happy to see CHomP more closely integrated into Sage.






On Thursday, July 12, 2012 10:48:23 PM UTC-4, John H Palmieri wrote:

mhampton

unread,
Jul 13, 2012, 9:51:54 AM7/13/12
to sage-...@googlegroups.com


[X ] Yes

The versioning issue sounds a little annoying but not serious enough to stop it from being a standard package. 

As far as I know, nobody has had a problem installing the optional spkg - it should not be a major burden to maintain.

CHomP provides some additional functionality that I think few other programs have, which could make improving Sage's support for dynamical systems quite a bit easier some day.

It would be very worthwhile to improve the Macaulay2 and polymake situation since they both provide lots of other functionality.

-Marshall

Benjamin Jones

unread,
Jul 13, 2012, 10:29:34 AM7/13/12
to sage-...@googlegroups.com
I would also buy a Sage hoodie, even though I wouldn't be allowed to
wear it on the floor of the house of reps. I think a line of
skateboard decks with Sage logos might be a hit also (not entirely
joking).

--
Benjamin Jones

Andrey Novoseltsev

unread,
Jul 14, 2012, 12:10:07 PM7/14/12
to sage-devel
[X] Yes

If licensing and versioning issues can be dealt with.

It would be great to have polymake and Macaulay2, but as they are
relatively big and long-compiling packages they are more difficult to
include as standard.

Except for convenience, the difference between optional and standard
is that users may want to use some optional packages, but have no
rights to install them. Optional packages also have lesser visibility
than stuff which is always distributed with Sage.

Thank you,
Andrey

John H Palmieri

unread,
Jul 16, 2012, 5:49:33 PM7/16/12
to sage-...@googlegroups.com


On Friday, July 13, 2012 6:21:28 AM UTC-7, Volker Braun wrote:
CHomP is GPL v2 only, at least according to the license.txt. Its probably just a case of never updating it, but maybe we should ask first if GPL v2+ is ok?

I've skimmed through the source code, and the files all seem to say something like this:

// This file is part of the Homology Library.  This library 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 2 of the License, or (at your option) any later version.

Does the last line mean GPL v2+, or do we need more than this?

--
John
 

John H Palmieri

unread,
Jul 16, 2012, 5:55:08 PM7/16/12
to sage-...@googlegroups.com


On Thursday, July 12, 2012 7:57:02 PM UTC-7, kcrisman wrote:


On Thursday, July 12, 2012 10:48:23 PM UTC-4, John H Palmieri wrote:
Right now CHomP (Computation Homology Project) is an optional spkg for Sage (according to a vote in December 2010 https://groups.google.com/d/topic/sage-devel/HLxXNpykXm8/discussion, although the spkg never got moved from the "experimental" directory to the "optional" directory).

What would the disadvantage be to having it be a very good optional spkg?  Other than convenience :)

I sort of answered this in an earlier response, but let me give a better answer. At Sage-Combinat Days 40 last week, a few people requested certain functionality which is (a) a completely natural thing to want, and (b) missing from Sage. To implement it, we could use CHomP, and spend half a day writing code, or we could essentially reinvent the wheel and implement it ourselves, spending longer to write code which will do the same job, but much more slowly. Given Sage's motto about "building the car", I think it makes a lot of sense to use CHomP to do this.

We could still require people to download the optional package to get this functionality, but since it's a pretty small package (and since I'm willing to be the maintainer), I don't see a big downside to making it standard. I do wish that the software were distributed more "professionally", with version numbers and change logs, but that's my only issue with it.

And Sage should definitely have hoodies. Should we have a Sage Days focused on Sage clothing and accessories?

--
John

Keshav Kini

unread,
Jul 17, 2012, 1:01:17 AM7/17/12
to sage-...@googlegroups.com
That last line does mean GPL v2+. In fact, the term "GPL v2+" refers to
exactly that line. There is no actual version of the GNU General Public
License called "v2+".

-Keshav

----
Join us in #sagemath on irc.freenode.net !

kcrisman

unread,
Jul 17, 2012, 9:39:55 AM7/17/12
to sage-...@googlegroups.com

And Sage should definitely have hoodies. Should we have a Sage Days focused on Sage clothing and accessories?


I think this could be handled in a one-day workshop at the end of another Sage Days ;-) 

Volker Braun

unread,
Jul 17, 2012, 10:30:37 AM7/17/12
to sage-...@googlegroups.com
It seems like the copyright headers are not uniform, especially when you look a older files. For example /src/capd-chom/complex.cpp technically isn't even GPL (it says "Copyright <author>. All rights reserved.")
Reply all
Reply to author
Forward
0 new messages