Ok, so I guess advogato is not going to return anytime soon. So I figured I would continue blogging about code here. whirl2il is progressing, somewhere this week I decided to preprocess and compile this into WHIRL:
#include <gtk/gtk.h> int main (int argc, char **argv) { GtkWidget *window; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_set_usize (window, 320, 240); gtk_widget_show_all (window); gtk_main (); return 0; }
Then I ran it through whirl2il, and did some manual tweaks (the main change was replacing “libc” with “libgtk-win32-2.0-0.dll” where appropriate); which resulted into this. If you assemble it, it will actually run without any problems. (Try it, if you don't believe it). Things which I need to fix up next:
- Type conversion. I didn't really implement this yet.
- Clean up the code. It is sort of a mess right now.
- Implement ability to reference assemblies (so we can get the P/Invokes right).
- Support programs existing of multiple source files.
- Try to get bigger programs working ;)
That will keep me busy for now; will probably have time to continue hacking somewhere after Tuesday's exam.