The Perl bindings that I mentioned last week have been uploaded to CPAN. I have also written and uploaded the first version of Alien::TinyCC.
In case you're not familiar with CPAN, it's like an App Store for Perl modules, except it was started in 1996, before having an App Store was cool. An important aspect of CPAN is that one module can list other modules as dependencies, and command-line CPAN clients will build, test, and (if the tests pass) install those dependencies when a "user" tries to install a desired module. Thus, for example, "cpan C::TinyCompiler" will install both Alien::TinyCC and C::TinyCompiler, because the latter depends on the former.
Alien modules are a bit unique in the CPAN world. Their job is not so much to provide a Perl module, as to ensure that a piece of software is available on the target machine. In this case, Alien::TinyCC guarantees that the Tiny C Compiler is available on the target machine in a non-invasive location. (A savvy user could appropriate modify their path and, if applicable, ld_library_path, but that's not baked in to the system.) This project was made particularly easy because the build system is small and well done. To all who have worked on the configure system and the Windows installer batch file, you have my deepest thanks.
This Alien module is of particular interest to the tinycc community in
light of the recent relicensing efforts. The tarball for Alien::TinyCC includes the full source for the current mob branch. It also includes the licensing statement in the module's documentation and the README.pod file. If this is insufficient or somehow inappropriate, please let me know and I can revise the module to use different means. For example, I could modify the distribution to pull the most recent tinycc tarball from savannah and use that, rather than distribute the source code directly.
Another important aspect of interest for the tinycc community is that a number of people or companies run and report automated smoke systems on all Perl modules that get uploaded to CPAN. This means I will get automated reports on how tcc builds on systems that may not normally be tested by users on this list. For example, we might get Solaris build reports. These will not be deep-dive tests, of course, but if this module gets any traction, derivative modules could provide some very interesting and useful real-world tests. I would also be happy to include a wider test suite for Alien::TinyCC itself, in which case we could test tinycc on as many platforms and as deeply as we like.
"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it." -- Brian Kernighan