Differences between revisions 31 and 32
Revision 31 as of 2010-08-17 01:06:51
Size: 17808
Editor: BillHart
Comment: moved cliquer back to first list
Revision 32 as of 2010-08-17 01:26:50
Size: 18313
Editor: BillHart
Comment: More factoring out into categories and added a few comments and python prereqs
Deletions are marked like this. Additions are marked like this.
Line 11: Line 11:
 || [[http://www.bzip.org/ | bzip2]] || Y || P || P || 1.0.4 || works fine with MSVC (32 bits at least) - required by python ||
Line 16: Line 17:
 || [[http://www.g95.org/ | g95]] || || || || 20071120.p3 || Part of MinGW 32 and 64 - does not need to be ported to MSVC ||
Line 27: Line 29:
 || openssl || || || || || required by Python - builds fine with MSVC (32 bits at least) ||
Line 34: Line 37:
 || [[http://www.sqlite.org/ | sqlite]] || || || || 3.5.3.p1 || pure Windows port exists (see http://www.sqlite.org/download.html), required by Python - builds fine with MSVC (32 bits at least) ||
Line 35: Line 39:
 || tcl || || || || || Required by Python's IDLE - builds fine with MSVC (32 bits at least) ||
 || tk || || || || || Required by Python's IDLE - builds fine with MSVC (32 bits at least) ||
Line 40: Line 46:
 || [[http://www.bzip.org/ | bzip2]] || Y || P || P || 1.0.4 || port exists: http://gnuwin32.sourceforge.net/packages/bzip2.htm. Since that port uses MinGW we need to either use MinGW 64 bit or do an MSVC port ourselves. [[a sage without bzip2 would be possible...; saved objects under unix/osx wouldn't load though.]] ||
Line 42: Line 47:
 || cephes || N || N || N || || Last updated circa 1994, small library, but uses long doubles ||  || cephes || N || N || N || || Last updated circa 1994, small library, but uses long doubles - only used in the Cygwin port so far (and FreeBSD in future) ||
Line 44: Line 49:
 || dir || || || || 0.1 || requires POSIX shell ||
Line 47: Line 51:
 || [[http://www.g95.org/ | g95]] || || || || 20071120.p3 || Use Intel's Fortran compiler. An alternative for 32 bit is g77. ||
Line 53: Line 56:
 || [[http://www.warwick.ac.uk/staff/J.E.Cremona/mwrank/index.html | mwrank]] || || || || XXXX || ||
Line 55: Line 57:
 || [[http://www.openopt.org/Welcome | openopt]] || || || || XXXX || ||
Line 57: Line 58:
 || prereq || || || || 0.3 || requires POSIX shell - small build system issues ||
Line 61: Line 61:
 || [[http://www.sqlite.org/ | sqlite]] || || || || 3.5.3.p1 || pure Windows port exists (see http://www.sqlite.org/download.html), but we need ??? ||
Line 70: Line 69:
 || [[http://abel.ee.ucla.edu/cvxopt/ | cvxopt]] || Y || N || N || 0.9.p5 || Has Windows build support, provides binary packages ||
Line 71: Line 71:
 || [[http://abel.ee.ucla.edu/cvxopt/ | cvxopt]] || Y || N || N || 0.9.p5 || Has Windows build support, provides binary packages ||
Line 99: Line 98:

== Do not correspond to Sage spkgs (elsewhere or no longer used in Sage?) ==

 || Website || Win32 || Win64 || MSVC || Version || Comments ||
 || [[http://www.warwick.ac.uk/staff/J.E.Cremona/mwrank/index.html | mwrank]] || || || || XXXX || Is this now eclib in Sage?? ||

== No longer listed on sagemath.org and not included as spkgs ==

 || Website || Win32 || Win64 || MSVC || Version || Comments ||
 || dir || || || || 0.1 || requires POSIX shell ||
 || [[http://www.openopt.org/Welcome | openopt]] || || || || XXXX || ||
 || prereq || || || || 0.3 || requires POSIX shell - small build system issues ||

This page is part of the Sage on Windows port.

Package Analysis

Below you will find a list of packages in Sage as well as remarks on issues that will potentially come up during the Windows port. As we progress we will add detailed problem reports and how we resolved those issues at individual pages.

Build dependencies of Sage (port these first for a minimal Sage on Windows)

Unknown dependencies of Sage (not listed on sage-on-gentoo list)

Runtime dependencies of Sage (these are probably only needed at runtime for specific functionality)

  • Website

    Win32

    Win64

    MSVC

    Version

    Comments

    cddlib

    N

    N

    N

    094b.p1

    unclear how hard the port will be, but shouldn't be too hard.

    cu2

    cubex

    cvxopt

    Y

    N

    N

    0.9.p5

    Has Windows build support, provides binary packages

    dikcube

    examples

    2.10.2.alpha0

    no compiled code, i.e. no problem

    extcode

    XXX

    various code in interpreted languages, i.e. javascript, java, Magma, pari, singular, no porting issues

    flintqs

    20070817.p2

    is obsolete, but should build fine once FLINT works, C99 mode required

    gap

    4.4.10.p2

    Depends on sbrk(), currently builds only via Cygwin. a cygwin build could be fine for us, since there is no binary linking between sage and gap, and almost certainly there never will be any.

    gap-guava

    gdmodule

    0.56.p4

    should be pretty easy to do for MSVC Boothby told me this swig-generated "crap" will be removed from sage soon, he hopes.

    genus2reduction

    0.3.p1

    unclear, don't really see any problem easy, probably; it's just math

    gfan

    0.2.2.p2

    unclear how hard the port will be, but shouldn't be too hard. we should upgrade to 0.2.3 first. Some more remarks: gfan requires argv[0] to switch to the right computation. I.e. during installation the following is executed: "ln -s gfan gfan_weightvector". This should be portable, but symlinks can be problematic on Windows.

    ipython

    0.8.1.p1

    should work fine with MSVC definitely will work fine.

    jinja

    XXXX

    jmol

    11.5.2.p1

    pure java, no portability issues, large community of users on Windows

    jsmath

    XXXX

    matplotlib

    0.91.1.p3

    should work with MSVC, more investigation is needed I'm sure this will work -- it is also part of what the enthought people distribute for windows.

    maxima

    5.13.0.p2

    Should build fine with Clisp, Windows binary package exists.

    mcube

    sage-notebook

    optimalrubik

    20070912.p1

    no Windows port, but simple C/C++ code without any POSIX dependencies. Console applications easy?

    palp

    1.1.p1

    unclear how hard the port will be, but shouldn't be too hard.

    pexpect

    2.0.p1

    Difficult. pexpect uses pseudo ttys and a whole bunch of POSIX infrastructure. It is essential and central to Sage and no one has ported pexpect to Windows. While the API is very different it is still possible to map all functionality to native Windows API calls. Instead of porting pexpect, it might be possible to do something different that accomplishes the same thing. pexpect was the way to go with Python and Unix. It's possibly OK if this means rewriting SAGE_ROOT/devel/sage/sage/interfaces/ for this new approach. Some of the programs Sage interfaces with have native "client server" archicture, and that could perhaps be used instead. E.g., Maple and Mathematica do. Maxima almost certainly doesn't...

    pycrypto

    2.0.1.p1

    unclear how hard the port will be, but shouldn't be too hard. maybe trivial??

    python_gnutls

    1.1.4.p2

    Should work, uses dlopen based mechanism. Is essential to the notebook, but can be dropped in favour of system's OpenSSL compatible library

    r

    2.6.1.p14

    Existing MinGW port, not too difficult to build. Port to MSVC desired. They don't already have a native MSVC port? Wow. That's amazing.

    sage-doc

    sage-latex

    http://rpy.sourceforge.net/ rpy

    1.0.1.p1

    Support for MSVC in 32 bit mode with MSVC. No Cygwin support, but patch by Abshoff exists

    sphinx

    XXXX

    sympow

    1.018.1.p4

    tricky code that needs the right FPU flags set. Otherwise no big hurdles to overcome

Do not correspond to Sage spkgs (elsewhere or no longer used in Sage?)

  • Website

    Win32

    Win64

    MSVC

    Version

    Comments

    mwrank

    XXXX

    Is this now eclib in Sage??

No longer listed on sagemath.org and not included as spkgs

  • Website

    Win32

    Win64

    MSVC

    Version

    Comments

    dir

    0.1

    requires POSIX shell

    openopt

    XXXX

    prereq

    0.3

    requires POSIX shell - small build system issues

Packages with upstream MSVC support

  • Website

    Win32

    Win64

    MSVC

    Version

    Comments

    atlas

    3.8.p11

    Works find fine, Intel C for better performance preferred

    ecm

    6.1.3

    no Windows port, but C, potentially issues with threading. Upstream ecm-6.2 has MSVC project by Brian Gladman - upgrading evm to the 6.2 release is #3237

    gsl

    1.10.p0

    port exists: http://gnuwin32.sourceforge.net/packages/gsl.htm. Brian Gladman also maintains a native MSVC port, 32 & 64 bit.

    m4ri

    20071224.p1

    MSVC and SunForte port done by Martin Albrecht and in upstream. Upgrade ticket is #3204

    mpfr

    2.3.1

    pure C, Windows make file support welcome upstream, depends on gmp. MSVC project by Brian Gladman exists and is recommended by upstream

    numpy

    20080104-1.0.4.p2

    support by enthought, builds out of the box with MSVC + ATLAS

    scipy

    20071020-0.6.p3

    support by enthought, builds out of the box with MSVC + ATLAS

    scipy_sandbox

    20071020.p2

    support by enthought, builds out of the box with MSVC + ATLAS

    scons

    0.97

    works fine on Windows, python based.

    tachyon

    0.98beta.p4

    Windows port exists, unsure about MSVC + threading.

    weave

    0.4.9

    now part of scikits, works fine with MSVC

    zlib

    1.2.3.p3

    port exists: http://gnuwin32.sourceforge.net/packages/zlib.htm Microsoft ships a copy under some name, so we might be able to "just" use the system one.

    zodb

    3.7.0.p0

    mostly python, unknown difficulty to port probably easy

Pure Python Packages

Packages without code

  • Website

    Win32

    Win64

    MSVC

    Version

    Comments

    conway_polynomials

    N/A

    N/A

    N/A

    0.2

    platform independent, i.e. no known Windows specific issues trivial -- just a pickle

    doc

    2.10.2.alpha0

    no compiled code, so no portability issues.

    elliptic_curves

    0.1

    elliptic curve database, so no porting issues

    graphs

    20070722

    graph database, so no porting issues

    polytopes