This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

sort


Maciej Stachowiak <mstachow@MIT.EDU> writes:

> My own opinion is that we shouldn't add things to libguile unless
> strictly necessary, since that will just make the factorization more
> painful (guile tends to grow dependencies on even the most random
> weird things in libguile).

I think your point is good in a general case, but don't think it
applies to this case.

The OO package is dependent upon `sort'.  I planned to load it from
slib, which would make the OO package dependent upon slib.  Mike
objected that this wasn't good.  I agree.

Most scheme implementations supply `sort', because it is a useful and
common operation, and needs to be implemented in C to be efficient.

So the natural thing is to include `sort' in the guile-core
distribution.  That is, I think `sort' belongs in guile-core.

What I meant about factorization is that it doesn't necessarily belong
in the core module, but could be supplied in another library, also
supplied in the guile-core package.

The factorization won't be more painful because of `sort' since it is
very clear that it should be moved to the sort module, and it is easy
to add the dependency on the sort module to other modules using sort.

Also, I don't imagine that the core module, intended to contain only
R5RS + things needed for their implementation, would grow a dependency
on the sort module, because sort operations aren't required to
implement the R5RS primitives.

To this I'd like to add the unpleasantness of the alternative: to add
sort to the OO package.

So, even though it is slightly bad to grow the current libguile by a
few K, I still think it is the best option.

/mdj