Change the semantics of evaluating non-local returns for blocks not on stack

Do evaluate the expression unconditionally, think, this is the standard stack-machine semantics. And only on the actual return, check whether the block is on the stack.

This should be tested in the TestSuite... [TODO!]

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Use direct return in all code paths, to simplify

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Simplify loop condition

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Whitespace

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Whitespace

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Remove optimization for avoiding side-effect-tree execution

It is not worth the code duplication, and while it seems to be correct there, it was most likely broken in TruffleSOM until recently.

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Added translate.sh

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Add PyCharm and attic to .gitignore

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Allow additional primitives for system classes

Don't show warnings for primitives that are defined in the VM but not the language.
Gives us a bit more freedom to reimplement the standard library at the VM level.

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Add primitives for <=, <>, >

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Added more primitive implementations on array and boolean

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Ignore all variants of generated binaries

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Added direct caching for truely constant globals: nil, true, false

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Remove #if* and loop specializations that are not essential for semantics

Signed-off-by: Stefan Marr <git@stefan-marr.de>