[gambit-list] Are flonums passed around within Gambit by value or reference? What's their bit width on 32 & 64bir archs?
Mikael
mikael.rcv at gmail.com
Tue Nov 13 11:38:50 EST 2012
Ok so this means for every flonum op there's a *new* object allocation on
the heap right?
And, does Gambit do any fast reclaims? (I.e. effectively GC:ing some
objects that are provenly not in use anymore right on the spot instead of
at the next ___GC(); )
Mikael
2012/11/13 Bradley Lucier <lucier at math.purdue.edu>
> On 11/13/2012 11:01 AM, Mikael wrote:
> > Dear Marc,
> >
> > Something I was curious about for long:
> >
> > So fixnums are passed around in Gambit by value and all objects like
> > closures, pairs, vectors and bignums are passed around by reference.
>
> The objects that are boxed are listed in gambit.h:
>
> * ___sVECTOR = tag for vectors
> * ___sPAIR = tag for pairs
> * ___sRATNUM = tag for ratnums
> * ___sCPXNUM = tag for cpxnums
> * ___sSTRUCTURE = tag for structures
> * ___sBOXVALUES = tag for box and multiple-values objects
> * ___sMEROON = tag for Meroon objects
> * ___sJAZZ = tag for Jazz objects
> * ___sSYMBOL = tag for symbols
> * ___sKEYWORD = tag for keywords
> * ___sFRAME = tag for continuation frames
> * ___sCONTINUATION = tag for continuations
> * ___sPROMISE = tag for promises
> * ___sWEAK = tag for weak objects (wills and GC hash tables)
> * ___sPROCEDURE = tag for procedures
> * ___sRETURN = tag for returns
> * ___sFOREIGN = tag for foreign data
> * ___sSTRING = tag for strings
> * ___sS8VECTOR = tag for 8-bit signed integer vectors
> * ___sU8VECTOR = tag for 8-bit unsigned integer vectors
> * ___sS16VECTOR = tag for 16-bit signed integer vectors
> * ___sU16VECTOR = tag for 16-bit unsigned integer vectors
> * ___sS32VECTOR = tag for 32-bit signed integer vectors
> * ___sU32VECTOR = tag for 32-bit unsigned integer vectors
> * ___sF32VECTOR = tag for 32-bit floating point number vectors
> * ___sS64VECTOR = tag for 64-bit signed integer vectors
> * ___sU64VECTOR = tag for 64-bit unsigned integer vectors
> * ___sF64VECTOR = tag for 64-bit floating point number vectors
> * ___sFLONUM = tag for flonums
> * ___sBIGNUM = tag for bignums
>
>
> >
> > What about flonums?
> >
> >
> > Also, what's the flonum bit width (exponent & fraction respectively)
> > on 32 and 64bit architecture
>
> 32-bit and 64-bit architectures both use 64-bit IEEE arithmetic. (At
> least, on an architecture where this doesn't happen, some things will be
> computed incorrectly.) That's binary64 in the following table:
>
> https://en.wikipedia.org/wiki/IEEE_floating_point#Basic_formats
>
> >
> > Thanks,
> > Mikael
> >
> >
> >
> > _______________________________________________
> > Gambit-list mailing list
> > Gambit-list at iro.umontreal.ca
> > https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
>
> _______________________________________________
> Gambit-list mailing list
> Gambit-list at iro.umontreal.ca
> https://webmail.iro.umontreal.ca/mailman/listinfo/gambit-list
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.iro.umontreal.ca/pipermail/gambit-list/attachments/20121113/2b52616e/attachment.htm>
More information about the Gambit-list
mailing list