Fixed references to removed SInteger class

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Remove SArray and use plain Object[] instead

Signed-off-by: Stefan Marr <git@stefan-marr.de>
executePreEvaluated should be final otherwise TruffleDSL generates funky nonsense for Object[]

- TruffleDSL thinks it is just the first parameter, and will evaluate the other parameter

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Removing asAbstractObject because it is not used anymore.

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Minor simplification, rely on implicit coersion

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Use long instead of int everywhere

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Annotation processor does not like it...

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Change method names from doInteger to doLong

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Removed BigInteger from SOM language, and  fixed left shift semantics

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Remove BigInteger from tests

- was forgotten in the relevant commit

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Fixed incorrect assertion in left shift primitive

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Added specialization for SSymbol and long in #= primitive

Signed-off-by: Stefan Marr <git@stefan-marr.de>
First shot at primitive support in Object layout

This design is heavily inspired by JRuby's truffle-based implementation.
However, there are a couple of significant differences here.

First of all, the design here is simpler by directly using an array that maps the logical fields to their profiled types as internal representation.
Second, we do not support ints, and therefore, we have only an extension array for long primitives (which should also contain double values).
We have extension arrays for object fields as well as primitive fields (this is not yet completely implemented, only what was needed for the benchmarks..., so some cases are just not covered by code, for instance double fields can not be stored yet in the extension array).

[TODO: the design and implementation should be cleaned up, and simplified if possible, ideally some things can be simplified by using the TruffleDSL.]

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Make field access nodes use a polymorphic cache, initialize object fields explicitly

- still do in-place respecialization if the layout of the same class has changed
- explicitly initialize the object fields to nil
- clean up compiler assertions and transfer to interpreter correctly

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Update to latest Graal version

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

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Make all classes of the Object model consistently final

- to help the optimizer
- and to be consistent

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Updated to latest version of Graal

Signed-off-by: Stefan Marr <git@stefan-marr.de>
Updated to latest version of core-lib

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