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

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

>
> On Mar 26, 2008, at 11:57 AM, Gary Furnish wrote:
>
> > Honestly, independent of the spkg vs libcsage issue, which is
> > really an issue of semantics in my opinion, Sage has no high speed
> > implementations of C algorithms. Sage can not escape this forever.
> > Either someone will have to write their own at some point or we can
> > use glib as a starting block. It is a big chunk of code, but Sage
> > needs fast lists, hash tables, etc. Using glib as a starting point
> > dramatically reduces debugging time, and is therefore preferable.
>
> Browsing the glib documentation, looking at its features, and reading
> what other people have to say about it I think this is a worthy set
> of things to include.
>
> One question I have is how much faster glib hashtables are than
> python dictionaries (as accessed directly through the Python/C API,
> which they will be from Cython if declared as type "dict") and how
> much faster glib (linked or non-linked) lists are then Python lists.
> Have you run any tests? If there is not a significant speed
> difference, it would be preferable to use the Python datatypes to
> store Python objects when possible (for cleaner code and to minimize
> recounting woes). This wouldn't mean that glib isn't worth including
> however.
>
> > I don't see how blocking a glib patch because of maintenance issues
> > really helps solve this problem in the long run. Is it really
> > preferable that I code up custom versions of the things so that I
> > can have fast symbolic implementations?
>
> No. I think the point is that before including it we should consider
> issues of maintenance and this may influence where we put it. (Much
> easier, for instance, than trying to move it later.) I agree that it
> should probably be a seperate spkg.
>
> > Most of the bloat in glib is internationaliztaion, which is not
> > included in this patch. The parts that are included are simple
> > enough and well documented enough (either in the code or in glib
> > documents) that anyone should be able to easily maintain it.
> > Furthermore, I intend to help maintain the C algorithms. I fully
> > intend to work on them actively if their speed is not sufficient.
> > Making a seperate spkg dramatically increases the difficulty of
> > active development.
>
> I agree that making an spkg raises the barrier of working on it, but
> not by that much. Also, as an spkg, other components of Sage can make
> use of it, and I think it will be much easier to keep in sync with
> and contribute upstream.
>
> I'd also really like to avoid a fork, which is what this could easily
> turn into. I'm noticing a lot of changes from glib 2.16.1 at GNOME.
> Is this the version you started from? Are you simply copying a subset
> of the c/h files, or are there significant changes that need to be
> done every time glib is updated (every month or two looking at the
> history)?
>
> I would like to see this included, but I think these issues need to
> be resolved now, or they never will until it hurts us.
>
> - Robert
>
> >
> >
> > On Wed, Mar 26, 2008 at 12:26 PM, William Stein <[EMAIL PROTECTED]>
> > wrote:
> >
> > On Wed, Mar 26, 2008 at 11:16 AM, didier deshommes
> > <[EMAIL PROTECTED]> wrote:
> > >
> > >
> > > On Wed, Mar 26, 2008 at 1:52 PM, mabshoff
> > > <[EMAIL PROTECTED]> wrote:
> > > >
> > > >
> > > >
> > > > On Mar 26, 6:43 pm, "William Stein" <[EMAIL PROTECTED]> wrote:
> > > > > On Wed, Mar 26, 2008 at 10:09 AM, mabshoff
> > > > >
> > > >
> > > > > <[EMAIL PROTECTED]> wrote:
> > > > >
> > > > > > On Mar 26, 6:02 pm, "William Stein" <[EMAIL PROTECTED]> wrote:
> > > > > > > Is any of the code gpl v3+ only?
> > > > >
> > > > > > No.
> > > > >
> > > > > That's good.
> > > > >
> > > > >
> > > > >
> > > > > > > How difficult will it be to update our version whenever
> > upstream
> > > > > > > changes? Do only you know how to do this?
> > > > >
> > > > > > Not particularly hard.
> > > > >
> > > > > You didn't answer my second question.
> > > >
> > > > Gary did it and I didn't pay much attention to it. I assume it
> > will be
> > > > documented. I don't consider such a thing "hard" once it has been
> > > > documented.
> > > >
> > > >
> > > > > > > Why put this in c_lib instead of a separate spkg called
> > glib-min?
> > > > > > > Couldn't such a package be useful outside of sage?
> > > > >
> > > > > > It is easiest if we put it into libcsage.
> > > > >
> > > > > That's not a good enough answer. Until now almost all code in
> > libcsage and
> > > > > the main sage library has been new code we've written --
> > except a few
> > > > > exceptions,
> > > > > where we greatly regretted them greatly and moved the code
> > out later.
> > > > > So from experience I'm very opposed to this code being in c_lib.
> > > > >
> > > > > I vote -1 to this code going into sage unless:
> > > > > (1) it is put in a separate spkg, and
> > > >
> > > > We can certainly do that.
> > > >
> > > >
> > > > > (2) the process of extracting glib-min from the official glib
> > > > > tarball is automated.
> > > >
> > > > That is unlikely to happen since it requires manual
> > interaction. It
> > > > will break in the next release in six months and writing automated
> > > > tools will take longer than actually doing the work in the first
> > > > place.
> > >
> > > How frequent are the glib releases? If they're not that frequent,
> > this
> > > should less than an issue as long as Gary documents what he's done
> > > somewhere :)
> >
> > If you've been maintaining packages for Sage for three years, and
> > expect
> > to be maintaining them for years to come, you'de view this as a much
> > bigger deal. It's really bad when there is a big chunk of code in Sage
> > that gets out of stream with "up stream", but no easy way to
> > resolve that
> > problem.
> >
> >  -- William
> >
> >
> >
> >
> > >
>
>
> >
>

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

Reply via email to