[SciPy-Dev] Accuracy of single-precision FFT

Robert Kern robert.kern@gmail....
Fri Jun 25 10:10:31 CDT 2010

On Fri, Jun 25, 2010 at 09:59, Sturla Molden <sturla@molden.no> wrote:
> Den 25.06.2010 16:28, skrev Nathaniel Smith:
>> Not to mention, if MKL were required then GPL'ed projects could not
>> legally use SciPy.  (Plus it would annoy the FOSS zealots who would
>> really rather not use a proprietary library at all. (Like me.))
> Are you suggesting GPL'd programs cannot use proprietary DLLs? How can
> you legally run a GPL'd Python program on Windows, when msvcr90.dll and
> the OS are closed source?

There is an explicit exception in the GPL for system runtime libraries.

> If a GPL'd program can use msvcr90.dll, it can use MKL as well. There is
> no difference here.
> Also, optionally using MKL is different from requiring MKL. We can build
> SciPy and NumPy against MKL even today, e.g. for LAPACK and BLAS.
> Doesn't that exclude their use from your GPL'd project?

He was under the impression that you were suggesting that MKL would be required.

> I believe you are thinking backwards, IANAL but I am quite sure it works
> like this:
> - A GPL'd project can link against whatever library it needs.
> - A GPL incompatible project cannot link against a GPL'd library.
> GPL is an descending infection from library to project, not an ascending
> infection, to speak in medical termes. Ascending GPL infection would not
> make sence, since the library is the property of someone else.

This is completely incorrect. The GPL requires that the work as a
whole be distributed under the terms of the GPL (or less restrictive
terms for an individual component). If a library is proprietary, then
the GPLed program simply cannot use it. Ignore the "infection"
analogy. It is misleading.

> All I am saying is this: Why not allow MKL as an alternative to FFTPACK
> as well?

Just the work that would be required to have a generic backend
mechanism. We used to have this, but eventually removed it because it
broke often. Most developers did not have the ability to build and
test against all (or even more than one) backend. It could be done,
but the cost is significant.

Robert Kern

"I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth."
  -- Umberto Eco

More information about the SciPy-Dev mailing list