[M3devel] [M3commit] CVS Update: cm3

Daniel Alejandro Benavides D. dabenavidesd at yahoo.es
Fri Jun 8 20:50:23 CEST 2012


Hi all:
Olivetti M3 had one AST-based interpreter, Vulcan was AST-based environment I don't know which was better. Vulcan was heavily parallelized could be nice to make a Multi-Threaded Execution Engine. Olivetti M3 AST tk could be mostly like a good AST for doing extensible kind of meta-environment (and you could retarget C) so for instance use it to generate a portable  environment  in that sense and then execute it to on fast Vulcan  parallel make fast JIT builder
Thanks in advance


--- El vie, 8/6/12, Dirk Muysers <dmuysers at hotmail.com> escribió:

De: Dirk Muysers <dmuysers at hotmail.com>
Asunto: Re: [M3devel] [M3commit] CVS Update: cm3
Para: "Hendrik Boom" <hendrik at topoi.pooq.com>, "m3devel" <m3devel at elegosoft.com>
Fecha: viernes, 8 de junio, 2012 10:37



 

That would be relatively easy. libjit 
offers an excellent infrastructure
for building just in time compilers. On the down-side: 
Slow program
start and a considerable waste of memory resources. Their 
code
generator is as good as non-optimised C. An 
example:
A JIT translator 
for 
Oberon.

--------------------------------------------------
From: 
"Hendrik Boom" <hendrik at topoi.pooq.com>
Sent: Friday, June 08, 2012 
4:55 PM
To: "m3devel" <m3devel at elegosoft.com>
Subject: Re: [M3devel] 
[M3commit] CVS Update: cm3

> On Fri, Jun 08, 2012 at 02:13:02AM +0000, 
Jay K wrote:
>> 
>>  > I'd like to, if I only knew 
how.  I'd be really interested in having the
>>  > 
low-level infrastructure for JIT code generators
>>  Would you be 
satisfied with a Modula-3 interpreter that interpreted a 
>> 
mostly-compiled form?It shouldn't be difficult.
> 
> That would be 
lovely, for all the reasons and opportunitied you 
> mentioned, but it's 
mostly orthogonal to what I want.
> 
> I want to write JIT 
implementations for other languages, languages that 
> have their own 
methods for defining data structures, but I want them to 
> be 
interoperable with the Modula 3 I know and like.
> 
> I don't mind 
writing a code generator or two, if necessary.  But an 
> interpreter 
would provide poratbility instead of efficiency.  Having 
> both 
could be useful.
> 
> For example, I'd like to implement a formalism 
that enables me to 
> download code from the net, formally verify its 
safety and then be able 
> to execute it really fast.  Yes, I might 
be comiling it all at once 
> instead of a line at at time, but I do want 
to be able to add it to an 
> existing running program, and saying "JIT" 
is about the easiest brief 
> summary.
> 
> I'm quite aware 
that doing more than a half-assed version of this would 
> be a big 
project, and that's probably an understatement.
>  
>> I 
don't know if our intermediate code was designed with interpretation 

>> in mind, but it seems like it wouldn't be particularly difficult. 

>> You'd want a "linker" that just zips all the files and puts it "in" 
or 
>> "next to" the stub executable.  This would solve the 
distribution 
>> format problem, partly.The existing intermediate code 
is 
>> platform-specific, but not by much (again: jumpbuf size, word 
size, 
>> endian,win32 vs. posix).
> 
>> But I have to 
admit, I'm keener on generating C than a JIT or an 
>> interpreter, and 
interpreter is not JIT.
>>  Um. What do you hope to gain from 
JIT?
> 
> The ability to dynamically add code to an existing program 
and have it 
> run fast.  Possibly to have the program generate 
additional code to add 
> to itself.
> 
>> A big reason I 
ask..is 
>> because..well, do you want to ship some portable-executable 
that 
>> relieson JIT being already installed/available? Or do you want 
to 
>> carry the JITer and its code together?Or do you want to target 
an 
>> existing widely deployed JITer such as CLR or Java?  In my 
opinion, 
>> the biggest advantage of JIT is portable-executable, 
depending on 
>> widely deployed JITer.But targeting CLR or Java isn't 
as easy as 
>> targeting your own custom thing.  I understand 
there are other 
>> advantages -- faster compilation, optimization very 
specific to 
>> runtime environment.But I think portable-executable is 
most important. 
>> That's why I like "script". :)There are 
disadvantages to JIT: slower 
>> execution/startup, maybe harder to 
debug, easy to reverse engineer (if 
>> you care).  Heck, at some 
point you just ship the compiler and 
>> portable-executable is source 
code.There are pluses and minuses all 
>> around.
> 
> JIT 
is for speed.  Otherwise, interpretation would suffice, and could 
> 
even be portbale.  But even an interpreter would like to be able to add 

> new garbage-collectible types, which is what I'm asking for at the 

> moment.
> 
>    - 
Jay      
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20120608/eafb1a8e/attachment-0002.html>


More information about the M3devel mailing list