A Self Language Build System
After some though and deliberation, I decided that the most natural thing to focus on, after building a basic web server in Self, was a new build system. Right now there are two build systems, one for a typical unix toolchain and a parallel XCode based build for Mac OS X. Used by both are a set of scripts and a custom dependency generator that precompiles numerous headers in a platform specific manner. The thing about this system is that while very sensible, fails utterly at being "new comer friendly". Even relatively seasoned programmers take a long time to come to terms with the tooling. This can in large part be explained by the development history of the language.
My thinking on how to wrangle this into something the average hacker with a github account and a C compiler can contribute to runs along these lines:
- remove dependencies on everything other than GCC and Self (be self hosting)
- script the build in Self so we eat our own dogfood on all platforms (be consistent)
- build shared libraries when ever possible (be dynamic)
- download everything from URLs (be distributed)
The basic ideas are all thing easily done once you have a running Self system, and so the goal is to build a bootstrap system that can be downloaded via a simple shell script