Differences between revisions 24 and 25
Revision 24 as of 2009-01-06 21:54:05
Size: 2018
Comment: add a link to the 64 bit OSX port of Sage progress page
Revision 25 as of 2009-01-14 13:56:37
Size: 3934
Comment: add low level build improvements ToDo list
Deletions are marked like this. Additions are marked like this.
Line 14: Line 14:
== Task Table == == Sage Projects ==
Line 16: Line 16:
=== Currently Working on === === High Level ===
Line 27: Line 28:

=== Low Level: Build System Improvements ===

A list of things on my ToDo list related to the build system. As things mature they will be moved to their own SEP:

 * compiler classes, i.e. gcc, icc, sun cc, MSVC
 * the construct 'export MAKE="make -j10"' is bad, we need something like SAGE_BUILD_THREADS and SAGE_MAKE and use those
 * Sage on 64 bit OSX 10.5 and higher, Solaris, FreeBSD
 * gcc 4.4 snapshots or whatever else is coming up
 * OSX 10.6 coming up
 * Cygwin support coming back
 * Fortran infrastructure rework - i.e. support for g77, g95, gfortran and the SiCortex Fortran compiler
 * SAGE_DEBUG mode - i.e. '-O0 -g' - but this also needs to work with SAGE64
 * Custom CFLAGS, CXXFLAGS
 * Custom CC, CXX, FORTRAN compilers, i.e. 'CC == gcc-4.2'
 * Tier 1 vs. Tier 2 support: Tier 1 - builds and passes doctests vs. Tier 2: builds, but can fail some doctests. For Tier 2 only some configs might even build
 * SAGE_BUILD_TMPDIR:
  * use it instead of spkg/build - this could be scratch space or a tmpfs disk
  * write a script that does du -sch before deleting the spkg dir in build and then logs the amount of data, then we can use some common table in the sage_scripts repo to check for available space before building an spkg
 * spkg cleanup: split rpy.spkg from r.spkg, move the boost headers to its own spkg from polybori.spkg.
 * tmpfs like solutions for temp build dir:
  * Solaris - tmp is automatically mounted as tmpfs
  * Linux - tmpfs - http://en.wikipedia.org/wiki/TMPFS: "Usage of tmpfs for example is "mount -t tmpfs -o size=1G,nr_inodes=10k,mode=0700 tmpfs /space" which will allow up to 1 GiB in RAM/swap with 10240 inodes and only accessible by the owner of the directory /space. The filesystem's maximum size can also be changed on-the-fly, like "mount -o remount,size=2G /space"."
  * OSX: http://lists.apple.com/archives/darwin-kernel/2004/Sep/msg00004.html

Michael Abshoff's Wiki SAGE page

Hello, I study math at the University of Dortmund. Most of the time I spend with SAGE is dedicated around packages and their portability. I added valgrind support to Sage 2.8.3 and have been using various valgrind tools to investigate Sage's memory consumption.

I am the main release manager for Sage and I chaired a number of releases - 29 so far:

  • 2.8.11, 2.8.13-2.8.15
  • 2.9, 2.9.2-3
  • 2.10, 2.10.1-3, 2.10.4 (together with Robert Miller)
  • 2.11
  • 3.0, 3.0.1-6
  • 3.1, 3.1.1-4
  • 3.2, 3.2.1-3

Sage Projects

High Level

Low Level: Build System Improvements

A list of things on my ToDo list related to the build system. As things mature they will be moved to their own SEP:

  • compiler classes, i.e. gcc, icc, sun cc, MSVC
  • the construct 'export MAKE="make -j10"' is bad, we need something like SAGE_BUILD_THREADS and SAGE_MAKE and use those
  • Sage on 64 bit OSX 10.5 and higher, Solaris, FreeBSD
  • gcc 4.4 snapshots or whatever else is coming up
  • OSX 10.6 coming up
  • Cygwin support coming back
  • Fortran infrastructure rework - i.e. support for g77, g95, gfortran and the SiCortex Fortran compiler

  • SAGE_DEBUG mode - i.e. '-O0 -g' - but this also needs to work with SAGE64
  • Custom CFLAGS, CXXFLAGS
  • Custom CC, CXX, FORTRAN compilers, i.e. 'CC == gcc-4.2'
  • Tier 1 vs. Tier 2 support: Tier 1 - builds and passes doctests vs. Tier 2: builds, but can fail some doctests. For Tier 2 only some configs might even build
  • SAGE_BUILD_TMPDIR:
    • use it instead of spkg/build - this could be scratch space or a tmpfs disk
    • write a script that does du -sch before deleting the spkg dir in build and then logs the amount of data, then we can use some common table in the sage_scripts repo to check for available space before building an spkg
  • spkg cleanup: split rpy.spkg from r.spkg, move the boost headers to its own spkg from polybori.spkg.
  • tmpfs like solutions for temp build dir:

Done Tasks

  • My closed trac tickets (the idea was shamelessly stolen from Martin Albrecht)

  • See the Changelog, the google groups sage-devel and sage-support and #sage-devel on freenode.
  • DMG installation image for MacOSX [other people did most of the work here]
  • make all packages using BLAS/Lapack use the Accelerate Framework on MacOSX. Patch for Linbox exists and will hopefully show up in Linbox svn soon

Other Software Interests

  • Linbox with MSVC
  • Porting mathematical open source code to Solaris, Windows and any odd Unix out there.

Places where I can be found


MichaelAbshoff (last edited 2009-05-04 13:13:24 by MichaelAbshoff)