Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

[REBOL] Re: On mutability and sameness

From: agem:crosswinds at: 7-Jun-2001 18:57

Hello Joel
>>>>>>>>>>>>>>>>>> Ursprüngliche Nachricht <<<<<<<<<<<<<<<<<<
Am 07.06.01, 14:23:11, schrieb Joel Neely <[joel--neely--fedex--com]> zum Thema [REBOL] Re: On mutability and sameness:
> Hello, Volker, > Volker Nitsch wrote: > > > > Am 07.06.01, 00:07:53, schrieb "Larry Palmiter" > > <[larry--ecotope--com]> zum > > Thema [REBOL] Re: On mutability and sameness: > > > > > Hi Joel > > > > > > But it is equally inaccurate to assume that they are > > > > fixed-size > > > > scalar values, isn't it? > > > > > > > > >> foo: 9.8.7.6.5.4.3.2.1.0 > > > > == 9.8.7.6.5.4.3.2.1.0 > > > > >> repeat i 10 [print foo/:i] > > > > > >> foo: 1.2.3.4.5.6.7.8.9.10.11 > > > ** Syntax Error: Invalid tuple -- 1.2.3.4.5.6.7.8.9.10.11 > > > You're right. Experiments confirm that ten is the maximum > number of elements in a tuple. > > > The "scalar" types could be tagged pointers (references) > > > as suggested by Volker. A few bits in the pointer could > > > designate the type and whether the value is contained > > > within the pointer. As you probably know this is a common > > > way of implementing "scalar" types in Scheme. > ... > > > > Ok, correction: max slot size 10 byte. Not much different > > to ~8 (around 8). ;-) > > i was speculationg a usual floating point number needs 8 byte, > > a pair! 2* 4-byte integer, so 8 sounded good. > > > > Well, with 16 bytes there is space for > > 1 native pointer/handle(4 bytes) > > + 10 bytes data > > + 2 byte something. > > some kind of type-description + tuple-length? > > i think this would be most simple to implement > > > Yes. This was what I referred to earlier as a "self-relative > descriptor". That technique has been around since the late > 60's. A data value is represented by a descriptor, which > contains type information and a "pointer" to the data. > To save space and time, however, data which can fit into the > "pointer" portion of the descriptor are placed there. There > are some variations on this theme. The decision as to where > to allocate the data storage may be determined solely by the > data type (e.g., integer). In this case, such data values > are not "sharable". OTOH, the decision may be deferred, in > which case there is a need for a separate bit in the > descriptor -- the "self-relative" bit -- that indicates whether > the data is inside the descriptor or simply referenced by the > descriptor. In this case, even "small" data values may be > shared. > The behavior we've been exploring is consistent with the idea > that REBOL uses a type-dependent descriptor, and implements > the refinements on DATE! values as special-purpose mutations > on the self-relative value.
ah! thanks for another part for my lexicon :-) it's nice to have a more »sound« definition than my »hm, this piece is here and that's there« which makes my talking somtimes hard ;-) Thanks.
> -jn-
Volker