Here's the scoop:
Metadata for classes is simple. In PIR/assembly, they're noted with .things:
.class Foo .is bar .is baz .does some_thing .member x .member y .member z .ssalc
Unless someone tells me that ssalc is horribly obscene in some relatively common language, and we may still if the translation amuses me sufficiently.
I'm sure ssalc must mean something bad somewhere. Technically nothing is stopping us from using .end for everything since we are using a LALR parser and don't need fancy error reporting,
Classes, when instantiated, have a backing namespace that's identical to the class name.
Good.
So do we support :: or . for scope resolution? Or both?
It's OK for the code that handles PIR and assembly to ignore this for the moment, at least until the metadata segment is better defined. Which will be soon, though I'd rather someone else do the bytecode modification as it's been a long time since I've had my hand in there.
Well we can hide this under PIR. Once PIR is set, we can start by implementing on the fly class creation, then change IMCC to emit metadata when the rest is in. That way HL languages don't have to change later. For now we just have IMCC emit newclass, etc. and manually construct the classes.
-Melvin