Oh dude. What a heritage tree. Makes it hard to apply a version number. One repo with all versions in it should be least one could do about it. Could just happen in a minute (minutes v1.0).
The BBC thing seems to have very, very useful additions that are dearly missing in the VIC version.
* Separate preprocessor: that's what any 8-bit version of Small-C requires due to memory constraints. (I am separating the back end on the other side). Taken.
* Parametrized macros: Macros with arguments. The classic tool to improve readability without sacrificing performance (as the come with "inlining" by definition).
* Hash tables for symbol look-up: A classic. And one of those things that should not be there more than once but it is. The VIC version will use "database" files. I was thinking more of b-trees (requiring no stack to iterate) as they are more all-purpose. Won't work with a drive that DOS not support random r/w access.
* Forward declarations and typed return values. That's huge.
Doabouts:
* Using the BBC preprocessor instead *should* be no problem.
![Very Happy :D](./images/smilies/icon_biggrin.gif)
Will lead to another grand clean-up, thanks to the more powerful macros that allow removing tons of dupe expressions.
* I'll go for b-trees just in case the VIC needs a file-based database :p... wanted a lib for that a couple of times already.
* Type-checking: Yo. Nerd to see what things look like when cleaned up with macros. There's spaghetti to be expected until then.
Thanks for pointing out that there's that version, groepaz. I'll just celebrate that by putting all versions I have in a single repo for preservation.