[Ooops, I didn't realize that this was CCed to sage-devel, so here is
my reply, slightly edited for public consumption]

William Stein wrote:
> Michael,

William

>
> I want to somehow start a very tentative *actual* step toward doing a
> native windows port.   I installed
> Windows into vmware on my laptop yesterday.  I think the first thing
> we need to do is decide whether
> we're going to:
>      (1) build our own Python using mingw,
> or (2) use the standard Visual C++ built Python that is distributed at
> python.org.
>

I still think I can ressurect option (3) Cygwin temporarily and get it
working with libSingular. I found a rebase script by Gary Zablackis,
so I think I can get the other issue I had under control - I gave up
on those after libSingular.

> The advantage to (1) is .... I can't think of any, except maybe "control"
> but my impression when we last talked was
> that you thought (1) was the way to go.
>
> The advantage to (2) is that whatever we do it will play very nicely with
> all existing Python libraries that get distributed for windows.  In 
> particular,
> graphics libraries, Enthought's Scipy for windows, etc., will all just work.
> If we go the (2) route, we can just immediately check scipy/numpy off
> the list, and any other python library that has been ported to native windows
> already.
>
> If we do (2), step 1 will be to figure out the modern way to build
> Python extensions
> against that standard Visual C++ built Python, either using mingw or Visual 
> C++.
> I did this 3 years ago using mingw, and it was possible but painful.  Things
> may have changed.
>

I started looking into that and provided we have the libstc++ runtime
for MinGW it could work. I am still skeptical, but I am willing to be
proven wrong.

> Once we decide on (1) versus (2), the next step is to somehow get
> pexpect or some
> pexpect replacement (with equivalent functionality) to work in the
> context of Windows.

I was thinking of hacking pexpect to use CreateProcess() and some
other Windows APIs - the qprocess implementation in Qt does the same
thing and could be used as guidance. We only have to get enough of
pexpect working to make Sage run :)

> Once that is done, we can port the Sage notebook and all interfaces to
> Windows -- they're
> pure python and depend only on Twisted, so this shouldn't be
> impossible. We should
> also port the pure python matplotlib-based plotting code, which should be 
> easy.

Agreed.

> Next we port the calculus Python functionality, which is again pure python.
> Given a maxima binary, we'll then have Sage's calculus functionality
> and plotting
> fully ported.  This will on its own be a very useful program for a lot
> of people.

Agreed.

>
> After that we can start thinking about the much harder parts of the
> SAge library that
> involve Cython, external C/C++ libraries, [lib]Singular, etc., etc.

Salami tactic, combined with Cygwin should let us do that.

> By far the main difficult and thing that scares me above is pexpect.
> Even in Cygwin,
> pexpect sucked...
>

Agreed.

Do you got the statistics script for downloads of Sage? I checked my
Sage mirror logs and it looks like I had about 100 binary downloads
from 11/01-11/26 this month from sage.apcocoa.org alone.

Cheers,

Michael


--~--~---------~--~----~------------~-------~--~----~
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://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~----------~----~----~----~------~----~------~--~---

Reply via email to