On Sat, 2003-05-31 at 11:15, Gopal V wrote:
> If memory serves me right, Bryan C. Warnock wrote:
> > Not to mention all the *other* problems we'll have if we've got more
> > than 2^31 different opcodes.  (Although that's why there's UUIDs now,
> > isn't there?)
> 
> I think parrot has already crossed the limit of 1024 ...
> (I can't even keep 256 opcodes in my head , let alone 1024 :-)
> 
> > And for what?  To be able to add large numbers?
> 
> No .. to add large numbers very quickly ... ie split registers and
> enemies ;-) 

Understood.  My point was that - to parallel virtual machines with
physical ones - the big drive for 64-bit has never been about squeezing
out another point-n percent when doing ultra-high precision math, but
more about the ability to represent a range of numbers, such as those 
needed to address memory or storage.  (Which Parrot is completely
dependent on the hardware to do.)  

> 
> No sense in keeping an Int64 in 2 32 bit regs if you have a 64 bit
> CPU & shift-mask-add .. But how can you be sure where the .pbc will
> run.

I'm not saying keep Parrot 32-bit.  I'm saying there's no reason to run
the Parrot core at a width wider than the hardware.  (So core Parrot on
a 64 bit machine will do 64 bit math.  That doesn't prevent languages
running atop from using wider types, as long as Parrot is aware.)

> 
> > to borrow a page from the physical hardware and simply join two smaller
> > registers together?  (The advantage of contiguous memory regions.)
> 
> Well that's only if those two regs are in memory ... the Parrot JIT
> does use a register allocation scheme , IIRC .

That's why the big punt on whether it'd be doable in the JIT.  I'll let
those more clever than me address how to do that.

Of course, I completely forgot that splitting Parrot registers (which is
basically casting a register as being wider, and obliterating the
register behind it) might introduce alignment problems, so you might
only be able to do that for registers mod 2.

> 
> > Can we simplify interpreter types this much, while still providing
> > extended numerics to hosted languages?
> 
> I *had* to hack out a couple of types of parrot to have fixed size
> types irrespective of implementation size ... (@see dotgnu.ops)

Which, I think, is okay.

Perl 6, Lisp, DotGNU - they should be free within their own framework 
to define their own types.  

> 
> But of course it's a sad situation that Parrot is missing 
> Objects still . Until then those opcodes are there to occupy numbers.
> 
> Gopal
-- 
Bryan C. Warnock
bwarnock@(gtemail.net|raba.com)

Reply via email to