Binary Objects
A core.asm.Binary object represents a core.asm.Listing that has been
transformed into machine code. The Binary itself contains the generated machine code and associated
metadata needed for exception handling.
A Binary object is created from a Listing that contains the code that should be compiled into
machine code, and an core.asm.Arena that describes which platform to compile for. As such, it is
possible to compile code for other platforms than the current one. Such code is, however, not
possible to execute. An Arena suitable for the current platform can be retrieved by calling the
function core.asm.Arena core.asm.arena().
Compiling a listing into machine code thus looks as follows in Basic Storm:
Binary compile(Listing l) { return Binary(core:asm:arena(), l); }
As mentioned previously, a Binary object inherits from the Content class, and
it is thus possible to specify the Binary as the content of a RefSource object, and thus call it
from other functions in the system.
To execute compiled code from Basic Storm, it is necessary to attach it to a Function object. The
example in the next page illustrates how this is done.
