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