[squeak-dev] Float hierarchy for 64-bit Spur

Tobias Pape Das.Linux at gmx.de
Fri Nov 21 16:01:33 UTC 2014


On 21.11.2014, at 15:30, Bert Freudenberg <bert at freudenbergs.de> wrote:

> 
> On 21.11.2014, at 13:53, Tobias Pape <Das.Linux at gmx.de> wrote:
> 
>> On 21.11.2014, at 13:44, Bert Freudenberg <bert at freudenbergs.de> wrote:
>>> Also, with the 64 bit format we get many more immediate objects. There already are immediate integers and characters, floats will be the third, there could be more, like immediate points. For those, the small/large distinction does not make sense. 
>>> 
>>> Maybe Eliot's idea of keeping "Float" in the name was best, but instead of "small" use "immediate":
>>> 
>>> 	Float - BoxedFloat - ImmediateFloat
>>> 
>>> 	A Float is either a BoxedFloat or an ImmediateFloat, depending on the magnitude of its exponent. 
>> 
>> I don't like the idea of putting a VM/Storage detail into the Class name.
>> The running system itself does not care about whether Floats or Integers are
>> boxed or immediate. 
> 
> Good point. Do you have a suggestion for names reflecting that?


First: I think it is possible to have both SmallInteger/Large*Integer as well
as all Float stuff combined such that we only have 
	- Integer
	- Float
and the VM has to deal with internal stuff, ie representing small enough numbers
tagged and larger ones as boxed (which could, for example, mean to not be able
to access the boxed values from the image side…).
  However, this is “Zukunftsmusik” or “ungelegte Eier” (Things to come or not even
considered).

Second: I think the small/large stuff is semantically correct, because that is what
it is, whether immediate or not:
	- Integer: SmallInteger, LargeInteger
	- Float: SmallFloat, LargeFloat
I don't think there's confusion about the single=float thing when you don't have
the name double somewhere.
  Rationale against immediate in the name: Immediate/Non-Immediate is a means to
an end, which is, speed for small or “few” things: ints, floats, chars. When you 
make something different immediate — just for fun: very short ascii strings like 
"hello" stored as 0x000068656C6C6F04 and 04 being the tag — you shouldn't name it
ImmediateString but TinyString, because thats why it is there, an optimization 
for very tiny things.

HTH

Best
	-Tobias
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 1625 bytes
Desc: Message signed with OpenPGP using GPGMail
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20141121/181a1d5d/signature.pgp


More information about the Squeak-dev mailing list