Dmitry
Dmitry
If I'm not mistaken, it's possible to unmangle borrow identifiers using https://lib.rs/crates/symbolic-demangle.
This PR is my first rather independent (or naïve?) attempt to realize how type inference may be used to aid JIT VM. Underlying concept is not based on any well-known...
Smalltalk being a fully dynamic language is still very structured in terms of memory organization. All objects share the same format and operate in a very simple and straightforward way....
JIT VM boosts up performance by eliminating value stack in context objects. Instead of using Smalltalk stack, we maintain values on the system level. Each `PushX` instruction generates an `llvm::Value`...
Current implementation works only if JIT method returns control in a usual way. If block return is emitted or exception is thrown, native method function is not disposed properly. Need...
Binary operators such as `+` or `*` may be endoded in two ways. Consider the following method: ``` Smalltalk increment: arg ^arg + 1 ``` One way is to encode...
In order to send a message VM need to find the method which will dispatch the message. Lookup is performed by traversing method dictionaries of receiver class, it's parent and...
### Overview Execution context of a Smalltalk method is represented by an instance of `Context` class. It holds all information required to execute a method: - Pointer to a method...
Current implementation uses primitives to provide native implementation of a code that may be invoked from managed code. One should register a primitive and then invoke it from the Smalltalk...