semck
directory) from the runtime. I would like to get in a state where the runtime only gets bytecode as input. Right now the VM
structure still stores the AST node for classes and functions and the language front-end uses the VM
structure which should be private to the runtime. So runtime and language are quite entangled. My first goal is to use SemAnalysis
instead of VM
in the language front-end (right now SemAnalysis
in the front-end is still a type alias for VM
). If I reach that goal, I would like to eventually move that language
directory into a separate crate.
float_srt
to invoke the assembler directly instead of the more coarse-grained macro assembler methods (like you did for arm64). IIRC macro assembler methods might clobber registers in general (see e.g. int_add
for x64 which clobbers lhs
). This might work for the methods you used there at this moment but that might change.
float_src
. Depending on whether this registers need to be alive across masm method invocations or not, this could be problematic. In general this seems quite fragile and as I mentioned already, it would be better to use assembler methods directly.
globaldef
and then right afterwards resolve builtin annotations. Let's pick Class::is_pub as an example. Right now we set that field during globaldef
, IIRC what I meant was that we always set it to false in GlobalDef
and then during clsdefck
iterate the annotations on the class and if we find @pub
set it to true
here.
Class::is_pub
from globaldef
to clsdefck
.
Field
:-/
We already create the "empty" annotation (like class/function/etc.) in
globaldef
and then right afterwards resolve builtin annotations. Let's pick Class::is_pub as an example. Right now we set that field duringglobaldef
, IIRC what I meant was that we always set it to false inGlobalDef
and then duringclsdefck
iterate the annotations on the class and if we find@pub
set it totrue
here.
@dinfuehr I hit an issue with that: access checks – see dinfuehr/dora#285