I'm pretty much by default against adding any new standard packages to
Sage anytime soon. I can't think of anything even on the horizon.
Maybe some sort of linear programming code is being proposed. Can
anybody else think of anything?
The last two packages that we added to Sage -- cliquer and ratpoints
-- both caused a lot of trouble. I will be much more careful in the
future about adding spkg's.
-- William
I had forgotten about them -- thanks for pointing them out.
Fortunately, those are both mainstream widely mature packages -- note
that both cliquer and ratpoints are highly specialized with (probably)
one developer. In contrast PIL is the standard Python imaging library
and glpk the standard GPL'd linear programming library. So that
helps. But this time, let's be very careful about how these actually
get included in Sage.
Who is actually doing the work to include either of these? I think
ncohen is working on glpk (?). I don't know who is working on PIL. I
know who proposed it, but not if anybody is doing the actual work.
William
>>> I'm pretty much by default against adding any new standard packages to
>>> Sage anytime soon. I can't think of anything even on the horizon.
>>> Maybe some sort of linear programming code is being proposed. Can
>>> anybody else think of anything?
>>
>> PIL and glpk are on the horizon. PIL has already recieved a positive vote.
>>
>
> I had forgotten about them -- thanks for pointing them out.
> Fortunately, those are both mainstream widely mature packages -- note
> that both cliquer and ratpoints are highly specialized with (probably)
> one developer. In contrast PIL is the standard Python imaging library
> and glpk the standard GPL'd linear programming library. So that
> helps. But this time, let's be very careful about how these actually
> get included in Sage.
If something is obscure and presenting problems, should it be moved out
of the standard packages and to optional? Certainly cliquer has issues
on Solaris, with it forcing the use of gcc, then at another point
failing to build it if can't find 'cc' (that was on the first release of
Solaris 10 I would add - it is less problematic on later releases).
Dave
I'm short on time at the moment as well, so if anyone else wants to
review it, go right ahead!
Jason
<SNIP>
>> So what would your thoughts be, if someone one to propose package X is
>> added, despite the fact it will not build on all of the following?
>>
>> 1) Build as 32-bit gcc on SPARC
>> 2) Build as 64-bit gcc on SPARC
>> 3) Build as 32-bit with Sun's compiler on SPARC
>> 4) Build as 64-bit with Sun's compiler on SPARC
>>
>> 5) Build as 32-bit gcc on x64
>> 6) Build as 64-bit gcc on x64
>> 7) Build as 32-bit with Sun's compiler on x86
>> 8) Build as 64-bit with Sun's compiler on x64
Working on platforms with GCC installed means that I don't need to
first compile GCC myself. I have had relatively little trouble with
doing porting work and testing on sage.math, bsd.math, virtualized
Linux guests on boxen.math, t2.math using GCC, and various Fedora, Red
Hat and SUSE machines on SkyNet.
The trouble comes in when I want to test or do porting work on a SPARC
machine with Solaris and Sun's compiler. At the moment, t2.math is
equipped with both GCC and Sun compiler. I can set GCC as the default
compiler with these export lines by David Kirkby:
export PATH=/usr/local/gcc-4.4.1-sun-linker/bin:/usr/local/bin2:/usr/bin:/usr/ccs/bin:/usr/local/bin:/usr/sfw/bin:/bin:/usr/sbin
export LD_LIBRARY_PATH=/usr/local/gcc-4.4.1-sun-linker/lib:/usr/local/lib
export SAGE_FORTRAN=/usr/local/gcc-4.4.1-sun-linker/bin/gfortran
export SAGE_FORTRAN_LIB=/usr/local/gcc-4.4.1-sun-linker/lib/libgfortran.so
If I also want to do testing or porting with the Sun compiler on
t2.math, are there equivalent export commands I can use? Of course it
would be nice to have a box with just the Sun compiler, linker and
library paths all setup whenever one login, and another box with GNU
equivalent. In the absense of that, switching between compilers,
linkers and library paths on the same box can be confusing.
> The last two packages that we added to Sage -- cliquer and ratpoints
> -- both caused a lot of trouble.
The building problem with cliquer is pretty much solved I think. As
for ratpoint, the issue is that it should build OK with GCC 3.4.x. Is
there a machine somewhere with GCC 3.4.x that I can use to have a shot
at this problem?
--
Regards
Minh Van Nguyen
It would be interesting and perhaps very useful to hear from the Project
Fortress team about the prospects for high-performance computing (HPC)
with Sage.
Fortress is actually a new programming language, distinct from Python:
http://projectfortress.sun.com/Projects/Community
http://research.sun.com/projects/plrg/Publications/
It has at least one goal I think the Sage community would appreciate,
namely, that programs should have a mathematical representation:
http://projectfortress.sun.com/Projects/Community/wiki/MathSyntaxInFortress
Implicit parallelism is also appealing. Does Fortress have a foreign
function interface?
Disclaimer: I'm not familiar with Fortress. I just discovered it
recently, during a digression.
I created '/opt/t2/bin/sun-studio' You can source that instead of
whatever you use for gcc. It does NOT set SAGE_FORTRAN, so you might
want to add something like
export SAGE_FORTRAN=/opt/SUNWspro/bin/f95
but I'm not exactly sure what compiler will work best, so you will have
to try.
>> The last two packages that we added to Sage -- cliquer and ratpoints
>> -- both caused a lot of trouble.
>
> The building problem with cliquer is pretty much solved I think. As
> for ratpoint, the issue is that it should build OK with GCC 3.4.x. Is
> there a machine somewhere with GCC 3.4.x that I can use to have a shot
> at this problem?
/usr/sfw/bin/gcc is version 3.4.3, but from what I gather, flint will
not build with an old compiler either, so we are sort of needing
something more modern. It would have been good if Sage would have built
with the compiler supplied with Solaris, but it will not.
The more immediate problem is that Sage's configure script will not
allow you to use the Sun compiler at all. I manually hacked the
configure script to get around that, but I am looking at a better
solution - see my next post.
Dave
Hi,
I'm one of the people working on the port of Sage to Sun's Solaris. I'm
mainly working on SPARC, but intend doing likewise on x86. Sage does
run, but building it is not straightforward.
A Sun T5240 was donated by Sun to the Sage project. That is now running
Solaris 10 update 7. We wish to produce binaries which will run on any
Solaris 10 release, so we should build them on a machine running the
first release of Solaris 10 (03/2005 if I recall correctly). If you are
aware of any way we can get access to such a machine, it would be useful.
I had suggested to William Stein that he purchase an older machine (the
T5240 is not supported on the first release of Solaris 10), but he has
issues with rack space, cooling and power, so it is not even possible to
get a small 1U machine. I have some older SPARCs at home, but don't
really have the bandwidth to make creating huge binaries and uploading
them. I also have issues with power and cooling, in that the power costs
come directly from my own pocket!
If you are aware of anyone who has some spare time, and would like to
help on the project, we could do with more Solaris developers. Currently
we have only build Sage as 32-bit on gcc. We intend ultimately to create
a 64-bit version with the Sun compiler, but there are several issues
of GNUisms, which mean Sage will not build with Sun's compiler. I am
sorting some of those out. In the latest alpha release, some of the
changes were:
#6759: David Kirkby: Update sqlite to latest release - needed for
Sun's compiler [Reviewed by Minh Van Nguyen]
#6609: David Kirkby: GNUism in lcalc-20080205.p2 passing GNU flags
directly to the Sun assembler. [Reviewed by Minh Van Nguyen]
Dave
My belief is that it should build with Sun's compiler, and in 64-bit
mode before being made a standard package. Otherwise a port of Sage to
64-bit will just get more and more difficult.
Have you tried with SAGE64=yes on Solaris? There are many things in Sage
which will not build in 64-bit mode on Solaris with gcc, but I'm really
keen that list is not increased.
I intend updating prereq so Sage can be tested with the Sun compiler. At
present that fails very early, as the 'configure' script in prereq exits
with the Sun compiler. However, it is not hard to hack that yourself -
just remove the line that causes it to exit when it finds the gcc
version is not suitable. I hope to have a better solution soon.
Oh, you're right, I think our voting procedure is not formal enough.
I've been thinking this for quite a while. I would definitely be
interested in having a good discussion about how to make it more
formal. Could we do that first before lrs?
First, some obvious questions:
1. How does *Python* do package inclusion in their standard
library? How is it decided? All I know is that Guido has final say,
but I'm sure there is much more to it than that. I think at a bare
minimum they require a formal PEP. If so, maybe we should require
a formal SEP (=Sage enhancement proposal) before even considering
including a new package with Sage.
2. What about other projects? E.g., how does Ubuntu, Debian, etc.
decide what is in their standard distribution (the one that comes on
CD)?
If anybody reading this has experience with any of the above projects
or related projects, please share your experience. Once that is done,
I think we'll be able to have a productive discussion.
-- William
You have a very good point.
We should also consider having two Sage versions -- one with *all*
optional free packages, and one without. That way optional packages
would get much much better testing, and be on a far better footing
than they are now. We should really learn from projects like R, Perl,
Ubuntu, etc. that all have extremely robust well tested optional
package systems.
-- William