On Wed, 26 Mar 2008 14:06:08 -0700, 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.

I have to strongly agree that I really want something with the feature
set of glib included, and that I don't think we have any business writing
it from scratch.

> 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.

This is certainly worth knowing.

>
>> 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.

I agree.  And I don't think the above has been sufficiently
addressed yet.

Sorry to be a pain, but what you're proposing doing with glib is
almost the same as say taking the pyrex code and sticking it in

    SAGE_ROOT/devel/sage/pyrex

under the main Sage hg repo.  Doing that would amount to both
a fork and a maintenance problem.   Even I didn't go that far
to entagle Pyrex with Sage when forking Pyrex.

I want to emphasize again that I strongly disagree with putting
all of glib-lite in SAGE_ROOT/devel/sage/, and I don't see
why doing that is going to make maintenance easier.

But I also want to emphasize that I strongly support glib-lite going
into Sage in some form, and I greatly greatly appreciate the hard
work you've put into making this possible.

  -- William

-- 
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 [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