It sort of started 1987-1988...
I worked for a consultant company that also sold several
products written in BASIC (for a then popular Swedish micro-computer).
When IBM PC started to catch on, it was decided it would be cheaper
to port the BASIC programs to IBM PC, rather than writing new programs.
Several different solutions were tried, and used, but there were
many problems and bugs with that. Finally I thought: "I really
can't do worse myself".
I started writing an interpreter in assembler (this
was DOS with 640 kB, remember?) as a hobby project. When finished,
I presented it to my boss. He eventually said OK. Over time this
evolved into a compiler for DOS, a compiler for 16-bit Windows,
and finally a complete build system for 32-bit Windows (not only
a compiler, but also a linker, a library manager, a make utility,
and so on). After many years working on this, around 1999, it was
finally decided that more main-stream development tools should be
I then thought it would be a waste to just throw away
a perfectly good linker, library manager and so on - why not add
a compiler for the language they were all written in: C. Writing
a C compiler from scratch seemed like a huge task, so starting from
an existing project made more sense.
I looked around on the Internet, found several projects,
and finally decided that LCC (from Princeton) was the best for me.
It didn't produce very good code for X86, lacked inline assembly,
structured exception handling, and many other things I was used
to from the Microsoft compiler, but it had potential. It's source
code tree wasn't huge, and it seemed to be well written.
I started adding the missing features, improving the
code quality, while also trying to learn LCC. This took several
years - including detours into Pocket PC and the C99 standard. The
C runtime and IDE wasn't done in a coffee-break either. Finally
I had something working.
After using it for a while, I thought "if I find
this useful, maybe someone else will...?" so I created this
web page, and here we are...