I really like Gonzalo's suggestion to think of specific tools and also
the actual people involved, rather than abstractions and standards.
Ideas for tools:
* a GNU toolchain
* Busybox
* Python itself
One can make a strong argument for writing a lot of the spkg-install's
in Python, which provides a powerful well-documented cross-platform
abstraction for all standard OS stuff (copying files, joining PATHs,
making tarballs), which is also easier to refactor. And this
abstraction is certainly more cross platform than POSIX. As an
example, the build system for the Windows port is written in Python
(by Blair Sutton) and it is nicely cross-platform in flavor.
For the Sage notebook code, during the last two weeks I've spent a lot
of time replacing things like "/" and explicit calls to "tar", etc.,
with OS-independent Python code (e.g., os.path.join; import tarfile,
etc.).
-- William
I think we are talking about both.
> I like the idea of moving towards using Python as the scripting/build
> coordinating language, but that might make using non-standard
> compliers and/or cross compiling even more difficult.
Why? I can only imagine it making things easier since we can structure
are code more cleanly and factor out common things. Anyways, one can
always do "os.system(...)" so shell capabilities are a subset of
Python.
This isn't a purely theoretical discussion, since the native Windows
porting work of Sage has a Python-based build system already.
I'm not arguing for changing anything in the Sage build system right
now. I'm just suggesting we should keep an open mind, so when some
incredible person shows up at a SAge days (say) who is willing to dive
in and do some amazing 1-month coding sprint to improve the build
system substantially -- say for a major Sage release like 5.0 -- we
are ready.
William