On Sat, 2002-02-23 at 13:12, Dan Sugalski wrote:
> At 12:22 PM -0500 2/23/02, Melvin Smith wrote:
> >At 11:53 AM 2/23/2002 +0000, Simon Cozens wrote:
> >>I was very lucky recently to attend a talk by Ganesh Sittampalam
> >>introducing Microsoft .NET and the Common Language Runtime. A lot of
> >>what CLR is trying to do is quite similar to what we're doing with
> >>Parrot, so I thought it would be a good idea to briefly recap what's
> >>going on with CLR.
> >
> >I've read several specs on CLR and ILAsm; there are some good ideas.
> >
> ><rant>
> >I wouldn't want Parrot to look like ILA but I wish we would at least
> >have more dialogue on things like pbc format, adding directives to
> >the language, etc.
> 
> Then lets start. I've not been giving the assembler much attention 
> mainly because I've been assuming that it'll be marginalized quickly, 
> but I think that assumption's a bad one.
> 
> We also need a PDD for the bytecode file format.
> 
> >We need notation for globals, notation for metadata about objects and
> >types, etc. etc. but frankly the last time I looked at the assembler I sort
> >of got lost.
> 
> You're not alone here. The assembler gives me headaches, and I think 
> it's stymied Simon recently as well.
> 

;) me too  [uh oh, I wrote bits of it!]

I've been playing around with a new assembler that might be a bit better
laid out.  

Here's what I've got done so far:
        * object oriented:
                * you can load more than one assembler at once
                * assembly can be done in parts, i.e.
                        $a=new Assembler;
                        $a->assemble("set I0,3");
                        $a->assemble("set I1,4");
                  is the same as:
                        $a=new Assembler;
                        $a->assemble("set I0,3\nset I1,4");
        * the preprocessor is a separate routine
                * directives must be in upper case (per PDD)

        * local labels, plus the ability to use local labels from outside the
scope:  global_label.local_label from anywhere will find the right one.
        * argument types are fully determined prior to looking up signatures


I've not got these things finished
        * label arithmetic [is this really needed?]
        * macros
        * actual bytecode output 


I just kind of set it aside because I wasn't sure if it was really
needed.  I can dig it back up if there is interest...



Brian


Reply via email to