marekjm / viuavm

Parallel virtual machine designed to reliably run massively concurrent programs
https://viuavm.org/
GNU General Public License v3.0
71 stars 11 forks source link

Revamp bytecode emission process #165

Closed marekjm closed 7 years ago

marekjm commented 8 years ago

Current method of emitting bytecode proved to be unwieldy and a show-stopper for more advanced features in the VM; for example, it prevents the introduction of immediate values, and using multiple register sets in a single instruction.

After a program is tokenised, parsed, linearised to simple opcode stream, statically analysed, and passes compile-time sanity checking it is safe to assume that the resulting token stream can be directly converted to bytecode.

marekjm commented 7 years ago

In progress pretty much all of the time. There is no need for a separate umbrella issue.