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

Assembler should catch double-pass to a parameter slot #144

Closed marekjm closed 8 years ago

marekjm commented 8 years ago

Double-passing is a serious error. Not only it leads to unreadable code, but may also create frames with gaps (#143).

Example:

frame 1

param 1 (istore 1 42)

; parameter slot 1 is being assigned to twice
; this should be considered an error
pamv 1 (strstore 1 "Hello World!")

call foo/1

Assembler should catch double-passing and refuse to compile such code.