3 ms·
A snapshot contains everything needed to fully initialize a new Isolate, including language constants (e.g., the undefined value), internal bytecode handlers us
by stcredzero 9y ago
A snapshot contains everything needed to fully initialize a new Isolate, including language constants (e.g., the undefined value), internal bytecode handlers used by the interpreter, built-in objects (e.g., String), and the functions installed on built-in objects (e.g., String.prototype.replace) together with their executable Code objects.
This sounds suspiciously like the Smalltalk image. The Smalltalk undefined value was involved in some paradoxes, therefore it couldn't be completely defined/instantiated declaratively.
I wonder if the (de)serialization mechanism used here could be re-targeted in a manner resembling the Parcel technology developed for VisualWorks Smalltalk? Basically, the runtime state of an application could be serialized into a "parcel," which could then be rapidly deserialized and more or less directly injected into the runtime image.
- Promarged 9y ago> The Smalltalk undefined value was involved in some paradoxes Could you elaborate on this? Or provide some references? This sounds interesteing but when I tried DDG and Google for "smalltalk undefined paradoxes" the results were not exactly satisfactory.
- stcredzero 9y agonil was the sole instance of the class UndefinedObject, which was a subclass of Object, whose superclass evaluated to nil. Another paradox: Every instance has a Class. A Class is also an instance of a Class. That object also has a Class, and that instance of a Class also has a Class, and so on. It was turtles all the way down.
- carterschonwald 9y agohrmmm... sounds like a coinductive description https://en.wikipedia.org/wiki/Coinduction https://en.wikipedia.org/wiki/Coinduction (i've done a bit of modelling using coinduction, and it has a very funky but precise relationship with immutable object oriented program descriptions)
- KMag 9y ago> This sounds suspiciously like the Smalltalk image. Lars Bak was a major contributor to both V8 and StrongTalk.