[Matrix-SIG] Multipack

Travis Oliphant Oliphant.Travis@mayo.edu
Thu, 17 Jun 1999 10:59:22 -0500 (CDT)


Thanks for contributing your comments, Konrad.  I'd been wondering where
you had gone to, given you have played such an important role in the
development of NumPy, I was sure you'd have some comments on my latest
proposal.

> In fact, I'd prefer to see Multipack move towards a "Fortran if
> possible, C if not" approach. Running the Fortran modules through f2c
> is not much work. Then a (yet-to-be-written) installation script would
> decide if it can use the Fortran version on a given machine, and if
> not would use the C translations. The best of both worlds: maximum
> performance and maximum portability.

This is a good idea, so do we require availability of f2c or distribute it
with it?  I guess what you are saying is deliver a set of translated-to-C
sources with the distribution.  This gets pretty big, the distribution
will already be quite large.  Perhaps two distributions?  You can either
download the Fortran only or the C-translated versions?

With the availability of g77 on many platforms (including Windows) is it
that much of a problem to require a Fortran compiler to compile?  This
does not preclude someone from making a binary available for platforms
that don't have easy-to-install Fortran compilers (e.g. Robert Kern
has done).  I admit I have little experience with the MAC so I'm not sure
what the Fortran compiler scene looks like there.

> Another problem is licenses. As I understand it, LGPL is more
> restrictive than the Python/NumPy license, although I don't understand
> the details. In fact, I don't understand at all what LGPL (as opposed
> to GPL) means for Python code, which is not linked to anything! I'd
> just like to make sure that licensing problems don't prevent
> non-academic users from using the code.

There seems to be quite a bit of fear of the GPL floating around. If all
you care about is using the code then the GPL has nothing to say.  You can
use it to do anything you want.  The GPL and LGPL (lesser GPL) only limit
what you can do when you want to distribute code derived from it.  I
picked the LGPL because it allows you to link against it (i.e. import the
shared module into Python) without delivering the source code to the
module that imports it.  As far as I know companies can still write Python
code which depends on the LGPL'd module code and not distribute their own
sources.

What a company cannot do is change the LGPL'd module, distribute the
changed module as a binary only, and not release code back to the public.
I really don't see how this gets in the way of anybody except people who
don't want to play nicely.

I can see that how people (like bosses) feel about the LGPL may be a
problem for some, so my position on this issue is not immovable.  At
this point any changes will have to be approved by Pearu Peterson too.
I'm anxious to hear feedback from people with actual problems using the
code because of the license, not just ideas about hypothetical problems.

> Finally, a suggestion for Multipack: Instead of importing everything
> into one top-level module, I'd prefer a package structure. In fact,
> I'd prefer to have each "XXXpack" as one module within Numeric (that
> doesn't require all the code to be distributed with NumPy, but it does
> require some changes to the current NumPy distribution).

I'm not exactly sure what you mean here.  Version 0.7 of Multipack is
compiled as separate C-code modules and separate python modules.  There is
one Python module called Multipack that does nothing but import all of the
other modules.  This allows one to interact with all the code through
Multipack or in a more modular fashion according to taste.  

I am proposing making LinearAlgebra and friends one more module underneath
Multipack (or whatever other name people find more appealing).

Thanks again for your feedback,

Travis










--------------------------------------------------
Travis Oliphant           200 First St SW          
    	                  Rochester MN 55905       
Ultrasound Research Lab	  (507) 286-5293           
Mayo Graduate School	  Oliphant.Travis@mayo.edu