by timpart » Mon Mar 18, 2013 1:33 pm
I think this should be entirely feasible. The Forth compiler words don't occupy much space so providing you have the runtime in each core, it's not much extra. The Forth I'm working on as a casual project will do that, though it will keep the dictionary in external RAM. That will slow things down somewhat in compilation but saves some kilobytes of the precious 32K. I'm still budgeting for 4-6K of code for my kernel mostly in assembler, plus some K for user areas, stacks, buffers. A lot depends on what space speed tradeoffs you want to make. I'm using 32 bit addresses for threaded code, but these could be cut down to 16 bit with a speed penalty
As you say cross-compiling is possible too if you only want to execute a finished program in the cores. You could even do pure machine code rather than threaded code.
The only question that comes to mind is do you really want to have an interactive compiling environment in every core? If you want a different program in each then yes. (16, 64 or more consoles running at once???) If it is the same program a compile in one place and a replication mechanism would be handy.
Tim