Re: [sage-devel] removing pickles for old k-Schur implementation

2014-01-12 Thread Anne Schilling
Hi!

I agree with Travis that we should just remove the jar, given that the old
k-Schurs were deprecated for over a year!

Best,

Anne


On Sun, Jan 12, 2014 at 10:44 PM, Travis Scrimshaw wrote:

> Hey everyone,
>This is not easy as I have been trying to fix this for a few hours (but
> there is always the possibility that I'm doing something wrong). Here's
> what I believe to be going on.
>
> 1 - The unreduce from UniqueRepresentation is overriding the __setstate__,
> which is then calling the __init__() of kSchurFunctions_t, *not* the
> __setstate__() (which is never called).
> 2 - The register_unpickle_override() is ignored; probably a side effect of
> 1.
> 3 - I must have a module kschur; probably a side effect of 1.
>
> I believe 1 is a bug, and if 2 and 3 are not related to 1, IMO they are
> also bugs. However, considering that we've had this deprecated, I believe
> we should just remove the corresponding pickles from the jar.
>
> Best,
> Travis
>
>  --
> You received this message because you are subscribed to a topic in the
> Google Groups "sage-devel" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/sage-devel/KjnxIXO-xnE/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> sage-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-devel@googlegroups.com.
> Visit this group at http://groups.google.com/group/sage-devel.
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] removing pickles for old k-Schur implementation

2014-01-12 Thread Travis Scrimshaw
Hey everyone,
   This is not easy as I have been trying to fix this for a few hours (but 
there is always the possibility that I'm doing something wrong). Here's 
what I believe to be going on.

1 - The unreduce from UniqueRepresentation is overriding the __setstate__, 
which is then calling the __init__() of kSchurFunctions_t, *not* the 
__setstate__() (which is never called).
2 - The register_unpickle_override() is ignored; probably a side effect of 
1.
3 - I must have a module kschur; probably a side effect of 1.

I believe 1 is a bug, and if 2 and 3 are not related to 1, IMO they are 
also bugs. However, considering that we've had this deprecated, I believe 
we should just remove the corresponding pickles from the jar.

Best,
Travis

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


[sage-devel] Re: Sage build system

2014-01-12 Thread Volker Braun
Another bullet point, related to being able to package and store the 
installed files:

- downgrades should work and be fast, so you can easily go back to an old 
ticket 

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Sage 6.x documentation

2014-01-12 Thread Harald Schilly
On Mon, Jan 13, 2014 at 6:26 AM, Minh Nguyen  wrote:
>  I think the transition to git has messed up my
> build scripts. ...
> Anyway, someone updated the documentation (thanks!).  Sorry for the
> miscommunication that resulted in the delay.


no problem, everyone needs a break sometimes ;-)

I was the one who fixed this build-doc script and then updated the
documentation. So far I didn't hear of any complaints that something
has been broken.

Harald

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Re: Python as build-time dependency

2014-01-12 Thread Volker Braun
follow-up discussion on the build system please into this thread: 

https://groups.google.com/d/msg/sage-devel/WmykUtM4Gi0/qm6tH5i8b8UJ

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


[sage-devel] Sage build system

2014-01-12 Thread Volker Braun
[top-posted reply to start an appropriately-named thread]

On Monday, January 13, 2014 12:26:30 AM UTC-5, William wrote:
> I don't think this is off topic and I think you make a very good 
> point.  Relocation (as I defined it) is not the goal.  The goal is to 
> build user-installable binaries.  If what you suggest above works with 
> a given build system, then that satisfies the design constraints. 
> 
> Has anybody listed the functionality constraints, i.e., the problem we 
> are discussing?  Here is a very rough first stab. 
> 
>- user-installable binaries 
>- tested (as Volker defined above) 
>- supports our platforms, e.g., OS X, Solaris, Linux, Cygwin, ?? 
>- parallel build from source must be fast 
>- upgrades of binaries without having to compile anything would be 
>  nice (we do not have that now) 
>- ability to uninstall packages (which we do not have now) 
> 
> I think building in parallel is the part of the current build system 
> that was by far the hardest, and for which most effort has probably 
> been spent.   The time it takes to do a full build from source on a 
> fast  multi-core machine is an absolutely critical benchmark for 
> whatever is proposed.


One point of conflict is that we currently do not distinguish between 
configure, build, and install. Hence:

* We cannot track installed files without serializing everything
* We cannot simply set relative rpaths since configure will run binaries in 
the build directory (and not $SAGE_ROOT/local/bin)

We also talked a bit about that at SD56 and the favored solution was to 
split build scripts into bash functions to separate 
configure/build/install, this is very similar to gentoo. We probably want 
to allow python build scripts, too, so similar functions in a Python script 
should be allowed as well.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


[sage-devel] Sage build system

2014-01-12 Thread Volker Braun
[changed subject to end up top-posted]

On Monday, January 13, 2014 12:26:30 AM UTC-5, William wrote:
>
> I don't think this is off topic and I think you make a very good 
> point.  Relocation (as I defined it) is not the goal.  The goal is to 
> build user-installable binaries.  If what you suggest above works with 
> a given build system, then that satisfies the design constraints. 
>
> Has anybody listed the functionality constraints, i.e., the problem we 
> are discussing?  Here is a very rough first stab. 
>
>- user-installable binaries 
>- tested (as Volker defined above) 
>- supports our platforms, e.g., OS X, Solaris, Linux, Cygwin, ?? 
>- parallel build from source must be fast 
>- upgrades of binaries without having to compile anything would be 
> nice (we do not have that now) 
>- ability to uninstall packages (which we do not have now) 
>
> I think building in parallel is the part of the current build system 
> that was by far the hardest, and for which most effort has probably 
> been spent.   The time it takes to do a full build from source on a 
> fast  multi-core machine is an absolutely critical benchmark for 
> whatever is proposed. 



One point of conflict is that we currently do not distinguish between 
configure, build, and install. Hence:

* We cannot track installed files without serializing everything
* We cannot simply set relative rpaths since configure will run binaries in 
the build directory (and not $SAGE_ROOT/local/bin)

We also talked a bit about that at SD56 and the favored solution was to 
split build scripts into bash functions to separate 
configure/build/install, this is very similar to gentoo. We probably want 
to allow python build scripts, too, so similar functions in a Python script 
should be allowed as well.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Re: Python as build-time dependency

2014-01-12 Thread William Stein
On Sun, Jan 12, 2014 at 9:15 PM, Volker Braun  wrote:
> At the risk of veering even further off-topic, I would like to give up "tree
> relocation" as it is currently defined. Its cumbersome (need to check that
> we haven't been moved all the time) and insecure.
>
> For relocatable binaries, we build with / rewrite rpaths to be relative and
> make all libtool .la files have relative paths. This may require further
> dependencies, like tools to rewrite rpaths. Also, once you unpack the binary
> and start compiling further stuff in its directory it may or may not be
> relocatable any more. But really the goal is to distribute binaries, not
> allow you to move your sage directory around all the time. All modern
> linuxes and intel OSX allow relative rpaths and its modification with the
> help of special tools.

I don't think this is off topic and I think you make a very good
point.  Relocation (as I defined it) is not the goal.  The goal is to
build user-installable binaries.  If what you suggest above works with
a given build system, then that satisfies the design constraints.

Has anybody listed the functionality constraints, i.e., the problem we
are discussing?  Here is a very rough first stab.

   - user-installable binaries
   - tested (as Volker defined above)
   - supports our platforms, e.g., OS X, Solaris, Linux, Cygwin, ??
   - parallel build from source must be fast
   - upgrades of binaries without having to compile anything would be
nice (we do not have that now)
   - ability to uninstall packages (which we do not have now)

I think building in parallel is the part of the current build system
that was by far the hardest, and for which most effort has probably
been spent.   The time it takes to do a full build from source on a
fast  multi-core machine is an absolutely critical benchmark for
whatever is proposed.

 -- William

>
>
>
> On Monday, January 13, 2014 12:00:55 AM UTC-5, William wrote:
>>
>> Of course, relocation is really a way to solve the problem "build a
>> sage binary once and make it available to other people to install in
>> their home directory".   I don't know of any other way to solve that
>> problem.   I also don't know if *any* of the non-Sage build systems in
>> this thread support relocation of binaries.
>>
> --
> You received this message because you are subscribed to the Google Groups
> "sage-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sage-devel+unsubscr...@googlegroups.com.
> To post to this group, send email to sage-devel@googlegroups.com.
> Visit this group at http://groups.google.com/group/sage-devel.
> For more options, visit https://groups.google.com/groups/opt_out.



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

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Sage 6.x documentation

2014-01-12 Thread Minh Nguyen
Hi,

On Sun, Dec 22, 2013 at 7:40 PM, Marc Mezzarobba  wrote:
> As noticed by Paul Zimmermann, http://www.sagemath.org/doc/ still points
> to the documentation of Sage 5.13. For regular manuals, it shouldn't
> make any difference until sage-6.1 is released, however the developer
> guide is out of date.

This is a miscommunication on my part.  When Sage 6.0 was released, I
didn't see any binaries for boxen.math under /home/release/sage-6.0 so
I waited a while.  After a few days, I still couldn't find a binaries
so I tried building sage-6.0 on boxen.math, but couldn't get it to
build successfully.  I think the transition to git has messed up my
build scripts.  I decided to wait for the binaries and in the meantime
went on a vacation to recover from an intensive year of work.

Anyway, someone updated the documentation (thanks!).  Sorry for the
miscommunication that resulted in the delay.

-- 
Regards,
Minh Van Nguyen
http://bit.ly/mvngu

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Re: Python as build-time dependency

2014-01-12 Thread Volker Braun
At the risk of veering even further off-topic, I would like to give up 
"tree relocation" as it is currently defined. Its cumbersome (need to check 
that we haven't been moved all the time) and insecure.

For relocatable binaries, we build with / rewrite rpaths to be relative and 
make all libtool .la files have relative paths. This may require further 
dependencies, like tools to rewrite rpaths. Also, once you unpack the 
binary and start compiling further stuff in its directory it may or may not 
be relocatable any more. But really the goal is to distribute binaries, not 
allow you to move your sage directory around all the time. All modern 
linuxes and intel OSX allow relative rpaths and its modification with the 
help of special tools.



On Monday, January 13, 2014 12:00:55 AM UTC-5, William wrote:
>
> Of course, relocation is really a way to solve the problem "build a 
> sage binary once and make it available to other people to install in 
> their home directory".   I don't know of any other way to solve that 
> problem.   I also don't know if *any* of the non-Sage build systems in 
> this thread support relocation of binaries. 
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Re: Python as build-time dependency

2014-01-12 Thread William Stein
On Sun, Jan 12, 2014 at 8:09 PM, Francois Bissey
 wrote:

> Relocation. Technically possible. In practise hard to achieve as it involves 
> rewriting
> runpath inside binaries, this is highly OS dependent. The prefix solves 
> Volker's
> LD_LIBRARY_PATH problem at the cost of relocation. Other gain dear to Volker:
> we can use any blas/lapack we want.

For the record, I view relocation as an important requirement of any
build system we adopt.  To me, "relocation" means that you can build
Sage in /this/directory, then type "mv /this/directory /that/path;
/that/path/sage" and have it work, though it may take  a while.
Obviously, it would be desirable if this isn't a major security risk
(I know Volker has pointed out some important issues with this.)

Of course, relocation is really a way to solve the problem "build a
sage binary once and make it available to other people to install in
their home directory".   I don't know of any other way to solve that
problem.   I also don't know if *any* of the non-Sage build systems in
this thread support relocation of binaries.

 -- William

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

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Re: Python as build-time dependency

2014-01-12 Thread Volker Braun
On Sunday, January 12, 2014 11:09:23 PM UTC-5, François wrote:
>
> OS X support. Almost 3 years ago with Georg we tackled it and I had sage 
> build 
> in a 32bit prefix on 10.5.8 up to sage 5.9 I think. There are a number of 
> prefix that 
> degraded that state.


That is what I meant by "automated testing". Verifying that each version 
runs on all supported platforms (ideally containing the Sage supported 
platforms). And if it a proposed change breaks one of them then its not 
merged.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


RE: [sage-devel] Re: Python as build-time dependency

2014-01-12 Thread Francois Bissey
I should have invited myself to the conversation earlier I guess. I usually 
avoid those
discussion because I could be seen as coming with a political agenda.

Technically I don't really care what sage does so long as it doesn't get in the 
way of
what I am doing with regards to gentoo/prefix. Whether you go for easybuild 
(http://hpcugent.github.io/easybuild/) conda or another equivalent is fine by 
me.
portage? I would be flattered and there are a number of things to deal with -
which we can discuss further later.

OS X support. Almost 3 years ago with Georg we tackled it and I had sage build
in a 32bit prefix on 10.5.8 up to sage 5.9 I think. There are a number of 
prefix that
degraded that state. At the time of the initial work with Georg we had 
successfully
build ppc, x86 and x64 targets. Like I said there are trouble in prefix on OS X 
that make
things difficult. It may be that the new (alternative) RAP prefix which build 
its own 
glibc could smooth all the problem.

portage is fine in my opinion for sage. The number of package that I have 
installed 
and the number of customization of options (some of which are for 
sage-on-gentoo)
mean that I sometimes have a very complicated dependency tree for portage to 
sort
which make it look slow. pkgcore may be better. 


Relocation. Technically possible. In practise hard to achieve as it involves 
rewriting 
runpath inside binaries, this is highly OS dependent. The prefix solves Volker's
LD_LIBRARY_PATH problem at the cost of relocation. Other gain dear to Volker:
we can use any blas/lapack we want.

Automated testing. I am not sure what Volker meant by that. In Gentoo you can 
set the
feature "test" which will run the testsuite of the package before it is merged 
- provided
that the ebuild allows it, the tests exist and it make sense.
Currently we run the sage testsuite after sage is merged. Testing sage before 
merge
would require a lot of work from our current point.

François
I guess I can claim "lead sage-on-gentoo developer" as a title.


From: sage-devel@googlegroups.com [sage-devel@googlegroups.com] on behalf of 
Michael Orlitzky [mich...@orlitzky.com]
Sent: Monday, 13 January 2014 10:39
To: sage-devel@googlegroups.com
Subject: Re: [sage-devel] Re: Python as build-time dependency

On 01/12/2014 03:51 PM, R. Andrew Ohana wrote:
> I'm a fan of gentoo's package manager specification (PMS) [1], however
> the only package manager that is fully compliant is portage, which I
> don't think is appropriate for sage. In particular:

Keep in mind that the alternative is a bunch of hand-rolled python and
bash scripts that punt on all of the hard problems that portage solves.


> 1. It requires a noticeably bigger bootstrapping of the world. Lmonade
> reduces this to only ~20 more packages than we already have (if I
> recall), but imo this is still too many.

Sage needs most of these too, they just aren't listed as dependencies
anywhere. Things like binutils and glibc are assumed to exist. The fact
that we don't build them explicitly in sage is a source of bugs.


> 2. Portage itself has many dependencies, often with very explicit
> version requirements. This makes non-Linux platforms a pain, since you
> need things like gnu coreutils and findutils.

Those two examples build and run fine on non-Linux platforms. Portage
itself has very few dependencies, you can see them in its ebuild. There
is the "implicit system" dependency that you get from prefix, but only
one or two of those have version bounds, and it's all stuff that sage uses.


> 3. It does not support tree relocation.

What do you mean by this?


> 4. (Lesser) The Portage source is atrocious, and it performs terribly.
>
> Imo, the most promising implementation of the PMS is paludis, however it
> is not fully compliant (in particular prefix support is incomplete, and
> binaries are assumed to be in the ELF format).
>
> [1] http://wiki.gentoo.org/wiki/Project:PMS

If for the sake of argument we rule out portage, I would concentrate on
pkgcore instead. It's missing EAPI5 support at the moment, but there's
some discussion in Gentoo about whether to switch the focus from portage
to pkgcore in the long term. Otherwise it's fast, clean, written in
python, and the spiritual successor to portage.

But portage is fine. It's running tens of thousands of Gentoo machines,
and somebody else writes it for you, which is where we stand to benefit
the most. Dependency resolution is the slow part, and users would rarely
need to emerge anything.

--
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.
This email may be confiden

Re: [sage-devel] removing pickles for old k-Schur implementation

2014-01-12 Thread Andrew
Hi Anne,

Have you tried writing a custom __setstate__ method for the kSchur 
functions? This should be all that is necessary. I ran into a similar 
problem when I moved Partition into the category framework and all that was 
required was

def __setstate__(self, state):
if isinstance(state, dict):   # for old pickles from Partition_class
self._set_parent(_Partitions)
self.__dict__ = state
else:
self._set_parent(state[0])
self.__dict__ = state[1]

I haven't looked at all at your new code, but I did look at the current 
implementation of kSchur functions and its __getstate__ function is just 
returning a dictionary -- just like Partition used to -- so I suspect that 
essentially the changing the parent in the code above is all that you need 
to do.

Andrew

On Saturday, 11 January 2014 22:50:06 UTC+1, anne1.s...@gmail.com wrote:
>
>
> http://www.sagemath.org/doc/developer/coding_basics.html#the-pickle-jarsays:
>>
>> Warning Sage’s pickle jar helps to ensure backward compatibility in sage. 
>> Pickles should only be removed from the pickle jar after the corresponding 
>> objects have been properly deprecated. Any proposal to remove pickles from 
>> the pickle jar should first be discussed on sage-devel.
>>
>> I agree it would be best to use the override mechanism, though it might 
>> be an unjustifiable amount of work depending on how much the new kSchur 
>> implementation changed. If it  comes down to keeping a bunch of dead code 
>> vs. removing something from the pickle jar, we should just do the latter.
>>
>> "Tradition is a guide and not a jailer"
>>
>
> If someone can help us to figure out how to override the deprecated 
> pickles, then I would be happy to do it. Otherwise, let's remove them (I 
> think the people mostly using the code are anyway Mike and me, and we do 
> not need the old pickles ).
>
> Best,
>
> Anne 
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Re: Python as build-time dependency

2014-01-12 Thread Michael Orlitzky
On 01/12/2014 03:51 PM, R. Andrew Ohana wrote:
> I'm a fan of gentoo's package manager specification (PMS) [1], however
> the only package manager that is fully compliant is portage, which I
> don't think is appropriate for sage. In particular:

Keep in mind that the alternative is a bunch of hand-rolled python and
bash scripts that punt on all of the hard problems that portage solves.


> 1. It requires a noticeably bigger bootstrapping of the world. Lmonade
> reduces this to only ~20 more packages than we already have (if I
> recall), but imo this is still too many.

Sage needs most of these too, they just aren't listed as dependencies
anywhere. Things like binutils and glibc are assumed to exist. The fact
that we don't build them explicitly in sage is a source of bugs.


> 2. Portage itself has many dependencies, often with very explicit
> version requirements. This makes non-Linux platforms a pain, since you
> need things like gnu coreutils and findutils.

Those two examples build and run fine on non-Linux platforms. Portage
itself has very few dependencies, you can see them in its ebuild. There
is the "implicit system" dependency that you get from prefix, but only
one or two of those have version bounds, and it's all stuff that sage uses.


> 3. It does not support tree relocation.

What do you mean by this?


> 4. (Lesser) The Portage source is atrocious, and it performs terribly.
> 
> Imo, the most promising implementation of the PMS is paludis, however it
> is not fully compliant (in particular prefix support is incomplete, and
> binaries are assumed to be in the ELF format).
> 
> [1] http://wiki.gentoo.org/wiki/Project:PMS

If for the sake of argument we rule out portage, I would concentrate on
pkgcore instead. It's missing EAPI5 support at the moment, but there's
some discussion in Gentoo about whether to switch the focus from portage
to pkgcore in the long term. Otherwise it's fast, clean, written in
python, and the spiritual successor to portage.

But portage is fine. It's running tens of thousands of Gentoo machines,
and somebody else writes it for you, which is where we stand to benefit
the most. Dependency resolution is the slow part, and users would rarely
need to emerge anything.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Re: Python as build-time dependency

2014-01-12 Thread R. Andrew Ohana
I'm a fan of gentoo's package manager specification (PMS) [1], however the
only package manager that is fully compliant is portage, which I don't
think is appropriate for sage. In particular:

1. It requires a noticeably bigger bootstrapping of the world. Lmonade
reduces this to only ~20 more packages than we already have (if I recall),
but imo this is still too many.
2. Portage itself has many dependencies, often with very explicit version
requirements. This makes non-Linux platforms a pain, since you need things
like gnu coreutils and findutils.
3. It does not support tree relocation.
4. (Lesser) The Portage source is atrocious, and it performs terribly.

Imo, the most promising implementation of the PMS is paludis, however it is
not fully compliant (in particular prefix support is incomplete, and
binaries are assumed to be in the ELF format).

[1] http://wiki.gentoo.org/wiki/Project:PMS

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Re: Python as build-time dependency

2014-01-12 Thread Felix Salfelder
On Sun, Jan 12, 2014 at 01:09:42PM -0500, Michael Orlitzky wrote:
> Prefix is designed to run as an ordinary user on non-gentoo systems. If
> you're on gentoo, you don't need it (unless you don't have root). Plenty
> of us have been able to get it working, so if we made a concerted
> effort, I'm sure we could stick a nice UI on it. Besides, it's currently
> working better than the nonexistent rewrite being discussed.

the nonexistant rewrite exists as a demo [1]. it is based on autotools
(not python). it is mostly boilt down to calling the spkg-install
programs in the right order, while being semantically similar to the
current toplevel makefiles and scripts. it also supports package content
lists (to possibly remove/exchange packages) and is able to optionally
completely disable packages (fallback to system packages).

i'm sure a python script could as well be used to call the spkg-install
programs in the right order and do fancy stuff. but similar to the
autotools build system, it will not be able to guess package contents
without some tiny spkg-install modifications like [2].

imo, sage should stay distribution independent, distributions other than
sage should only require to package sagelib in the end. and whatever
happens next, sage (the library) should be freed from hardcoded paths
and from package management code, so not everybody has to work that
out again and again, YMMV of course.

have fun
felix

[1] http://tool.em.cs.uni-frankfurt.de/~felix/sage
[2] http://trac.sagemath.org/ticket/15136

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Re: Python as build-time dependency

2014-01-12 Thread Volker Braun
On Sunday, January 12, 2014 8:09:42 AM UTC-10, Michael Orlitzky wrote:
>
> > lmnd currently does not work on OSX and other exotic platforms. 
> Prefix works on OSX, so whatever's wrong is fixable.


I'm sure your help would be appreciated at lmona.de. We'll be happy to 
consider it when it is ready.

Prefix is designed to run as an ordinary user on non-gentoo systems.


There is no automatted testing, so it does not work. This is not about a 
nice UI, just being able to build without user interaction. Lmnd aims to 
fill this gap, among others. But I think we agree that it is not ready yet.

The releases shouldn't have anything to do with the git tree.


Well, they do. 

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Re: Python as build-time dependency

2014-01-12 Thread Michael Orlitzky
On 01/12/2014 12:03 PM, Volker Braun wrote:
> On Sunday, January 12, 2014 6:41:21 AM UTC-10, Michael Orlitzky wrote:
> 
> At this point I must conjure the semi-regular reminder that
> "cross-platform homebrew" already exists in the form of Gentoo Prefix.
> 
> 
> We are aware of gentoo prefix and lmnd. 
> 
> lmnd currently does not work on OSX and other exotic platforms.
> 

Prefix works on OSX, so whatever's wrong is fixable.


> I've tried lmnd and prefix occasionally on Fedora and have almost always
> run into problems. It does not "just work", even on a current Linux
> system. Including wonky errors where gentoo prefix wants to start manage
> uids on my system etc. I don't think there is any real regression
> testing for gentoo prefix on common platforms outside of lmnd. It is
> mostly tested as part of gentoo, but we would only want a small part of
> the gentoo system.

Prefix is designed to run as an ordinary user on non-gentoo systems. If
you're on gentoo, you don't need it (unless you don't have root). Plenty
of us have been able to get it working, so if we made a concerted
effort, I'm sure we could stick a nice UI on it. Besides, it's currently
working better than the nonexistent rewrite being discussed.


> Also, we want a system to rebuild sage according to our git tree status.
> In particular, no time stamps. But take version and dependency
> information out of our git tree. And possibly store old builds (tarball
> or other packaging system). 

The releases shouldn't have anything to do with the git tree. Normal
users would download prefix bundled with sage-on-gentoo and `emerge
sage` to install. Version and dependency information go in the ebuild:

https://github.com/cschwan/sage-on-gentoo/blob/master/sci-mathematics/sage/sage-.ebuild

(i.e. as the responsibility of the package manager, as god intended.)

When sage is run, it expects that stuff to be there -- no need to
reimplement the package manager. If you want to develop, you'd clone the
git repo inside prefix and go about your business. The deviations from
upstream (via patches) are incorporated in sage-on-gentoo. "Sage" thus
becomes "The Sage Library" and we can finally do away with the 500
megabytes of copy/paste that we've been hauling around for years.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Re: Python as build-time dependency

2014-01-12 Thread Volker Braun
On Sunday, January 12, 2014 6:41:21 AM UTC-10, Michael Orlitzky wrote:
>
> At this point I must conjure the semi-regular reminder that 
> "cross-platform homebrew" already exists in the form of Gentoo Prefix. 
>

We are aware of gentoo prefix and lmnd. 

lmnd currently does not work on OSX and other exotic platforms.

I've tried lmnd and prefix occasionally on Fedora and have almost always 
run into problems. It does not "just work", even on a current Linux system. 
Including wonky errors where gentoo prefix wants to start manage uids on my 
system etc. I don't think there is any real regression testing for gentoo 
prefix on common platforms outside of lmnd. It is mostly tested as part of 
gentoo, but we would only want a small part of the gentoo system.

Also, we want a system to rebuild sage according to our git tree status. In 
particular, no time stamps. But take version and dependency information out 
of our git tree. And possibly store old builds (tarball or other packaging 
system). 

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Re: Python as build-time dependency

2014-01-12 Thread Michael Orlitzky
On 01/12/2014 04:16 AM, Javier López Peña wrote:
> On Sunday, January 12, 2014 2:20:03 AM UTC, William wrote:
> 
> Thanks for reminding people of conda.   One issue is that Sage's build
> system is far more than just for installing Python package -- it's
> much, much more (e.g., Gap, Singular, etc.).
> 
> 
> conda started off as a python package manager, but is not limited to
> them anymore; it will build and install anything for which it has a
> recipe: LLVM, python itself, C libraries, R packages, it doesn't matter,
> all is put at the same level (Travis described it as a 'cross-platform
> homebrew'). 
> 

At this point I must conjure the semi-regular reminder that
"cross-platform homebrew" already exists in the form of Gentoo Prefix.
It's got years of work behind it, it's heavily tested, and other people
do the work for you -- all we'd have to do is put the desired versions
of stuff in a text file.

Even that work is done in the form of sage-on-gentoo. So we'd just need
to package it up along with some build instructions in a form that users
can follow. But lmonade is pretty good at that. We might need to make
some adjustments, but the proof-of-concept is there and a lot of the
hard work is already done.

If you survived the git migration it would seem like a piece of cake.

We'd get to remove the package management features from sage, and it
would eliminate Volker's best friend the LD_LIBRARY_PATH hack. We would
still be installing the universe from scratch, but at least we'd be
doing it right. It's also a big step towards getting distros to package
sage.

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.


Re: [sage-devel] Re: Python as build-time dependency

2014-01-12 Thread Javier López Peña
On Sunday, January 12, 2014 2:20:03 AM UTC, William wrote:
>
> Thanks for reminding people of conda.   One issue is that Sage's build 
> system is far more than just for installing Python package -- it's 
> much, much more (e.g., Gap, Singular, etc.). 
>

conda started off as a python package manager, but is not limited to them 
anymore; it will build and install anything for which it has a recipe: 
LLVM, python itself, C libraries, R packages, it doesn't matter, all is put 
at the same level (Travis described it as a 'cross-platform homebrew'). 

The build framework [1] doesn't actually look much different from what we 
do with spkg's.

Cheers,
J

[1] http://docs.continuum.io/conda/build.html

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-devel+unsubscr...@googlegroups.com.
To post to this group, send email to sage-devel@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel.
For more options, visit https://groups.google.com/groups/opt_out.