ref: 5d294d8c81cb95765fc96ad7c9ad681db18d3d76 duskos/NEXTSTEPS.md -rw-r--r-- 1.3 KiB
5d294d8cVirgil Dupras posix/vm: fix compilation under cygwin 3 months ago

#Next steps

Right now, my focus is on the C compiler, but here's some ideas of things to improve in periphery of that main effort.

#Word annotations

I'd like documentation about words to be in-system and this could be done with an annotation system. The annotation system is already there, we would need to populate those annotations.

Then, it's a matter of developing a nice interactive application to navigate words and see their associated documentation.


Right now, only one type of annotation is there, the docstring. However, another type of annotation would be useful, argspecs. To have comments like ( a b -- n ) be in a separate structure is not only for better doc formatting, it's also that it will eventually be essential for C code to call Forth words. Because the C compiler has to know the signature of a word to properly call it, we'll need that argpec annotation to have a "machine-readable" structure.


It would be fun if assemblers were leveraged early in the boot process to accelerate some core words. For example, it could override the "+" word into an immediate that emits eax [ebp] mov, ebp 4 i32 add, [ebp] eax add,, or even better, that detects if the last compiled word was a literal and replace that literal with [ebp] (replaced literal) i32 add,.