Changes
It’s been a while since my last post, sorry for that, I’ve been quite busy at university. Read on for some news about me as a Linux-based developer, stack machines, consoles and more.
Linux
After my long journey during which I tried Debian, Gentoo, OpenSUSE and Archlinux I eventually installed Ubuntu Linux (Dapper Drake 6.06) on my notebook which is also the first Linux that worked nearly right out of the box (except it didn’t recognize my notebook monitor). There are still some minor things left to fix, notably:
- WLAN is not working because my WLAN button is software only and
acer_acpi
refuses to compile (args!) - tetex is broken (Link)
Hopefully both things will be sorted out during time. All in all, I’m quite pleased with Linux for my development work. Some things could be of course better (GCC’s error messages … I like Microsoft’s VC++ more with its Cxxxx error for which you can usually find an example case on the MSDN) but all in all I’m already quite productive under Linux. I’ve written three university homeworks during the last two weeks, and didn’t hit any larger problem during that time. What I really like is callgrind/valgrind, I’d love to see something like that bundled with the Visual Studio Professional. Currently, I’m forced to use make
for building, but I plan to start using SCons
soon. Although make
is a powerful tool, I like the concepts behind SCons
more.
The latest university homework was (actually, it still is) a simple Linux shell. It’s quite similar to what I want to use in niven, so I decided to implement a bit more stuff than required. Anyway, implementing stuff like a shell in plain, C89 C is really a pain. I’m really looking forward to porting it to C++ which should also give me an extra bit of flexibility. The shell comes also with a complete stack/register-machine similar to what I plan for niven’s script VM. It turned out to be rather simple to write the stack/register-machine backend. During the next few weeks, I’ll try to write a front-end compiler for it that takes some kind of high-level code and generates stack/register-machine opcodes. As I don’t know yet how this is supposed to work, I think it’ll be quite interesting :).