develooper Front page | perl.perl6.internals | Postings from February 2002

Re: .NET CLR and Parrot

Thread Previous | Thread Next
From:
brian wheeler
Date:
February 23, 2002 17:31
Subject:
Re: .NET CLR and Parrot
Message ID:
1014514073.5595.12.camel@thor.kitty.cx
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



Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About