Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] Does Caml have slow arithmetics ?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Brian Hurt <bhurt@s...>
Subject: Re: [Caml-list] Does Caml have slow arithmetics ?
On Wed, 7 Jul 2004, Diego Olivier Fernandez Pons wrote:

> Subsidiary question : why LSB instead of MSB ? I thought it would be
> simpler to let the computations silently overflow and correct when
> necessary the tag bit.

Because everything is a word and word aligned, so pointers always point to
a word aligned address- which means that the low 2 (on 32-bit machines) or
3 (on 64-bit machines) bits are always zero for pointers.  So if we set 
the low bit of unboxed values, the garbage collector can simply walk 
through memory, looking at every word.  If the low bit is set, then it's 
an unboxed integer type and not a point.  If the low bit is clear, it's a 
pointer.  This speeds up the garbage collector, making the overall program 
faster.

-- 
"Usenet is like a herd of performing elephants with diarrhea -- massive,
difficult to redirect, awe-inspiring, entertaining, and a source of
mind-boggling amounts of excrement when you least expect it."
                                - Gene Spafford 
Brian

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners