[squeak-dev] The Trunk: Morphic-mt.1769.mcz

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Tue May 18 19:51:00 UTC 2021


Hi Marcel,
yes, maybe with some ellipsis ahead "..." to denote the fact that it's
infinite...

Le mar. 18 mai 2021 à 16:13, Marcel Taeumel <marcel.taeumel at hpi.de> a
écrit :

>
> Am 18.05.2021 15:55:23 schrieb Marcel Taeumel <marcel.taeumel at hpi.de>:
> Hi Nicolas,
>
> >  We could express this in inspectors with a bits field and a leading
> ... 00000000 or ... 11111111 digit (yes digits are 1 byte long currently).
>
> You mean like this?
>
> DEC -2
> HEX -02
> OCT -002
> BIN -0010
> BIT 1111 1111 1111 1110
> ?
>
> Best,
> Marcel
>
> Am 17.05.2021 18:53:42 schrieb Nicolas Cellier <
> nicolas.cellier.aka.nice at gmail.com>:
> Hi all,
> Virtual Machine implementation is a detail. SmallInteger are two
> complement, while LargeNegativeInteger are sign magnitude (with sign
> encoded in the class). From bit perspective (bitAnd: bitOr: bitAt: etc...),
> all Integer behave as two complement with an infinite sequence of 1 for
> negative, and infinite sequence of 0 for positive. We could express this in
> inspectors with a bits field and a leading ... 00000000 or ... 11111111
> digit (yes digits are 1 byte long currently).
>
> Le lun. 17 mai 2021 à 15:35, Marcel Taeumel <marcel.taeumel at hpi.de> a
> écrit :
>
>> > The decimal representation is just one of many equivalent
>> representations.
>>
>> The problem being that the basic (machine) representation is not clear. I
>> think its 2's complement. HEX and OCT -- I suppose -- are very close to the
>> machine representation.
>>
>> That's not an issue for positive numbers. :-)
>>
>> Best,
>> Marcel
>>
>> Am 17.05.2021 14:00:36 schrieb Thiede, Christoph <
>> christoph.thiede at student.hpi.uni-potsdam.de>:
>>
>> > > But this would not really match the actual object layout of integers
>> in Squeak which can have arbitrary sizes ...
>> >
>> > So, the binary representation does not make sense, right? And neither
>> does the HEX or OCT. :-)
>>
>> Why do you think so? The object layout of Squeak Integer is not something
>> like "list of decimal digits". The decimal representation is just one of
>> many equivalent representations. On the other hand, any complement semantic
>> adds a completely new concept because it neglects the infinite size of
>> integers.
>>
>> Best,
>> Christoph
>>
>> ------------------------------
>> *Von:* Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im
>> Auftrag von Taeumel, Marcel
>> *Gesendet:* Montag, 17. Mai 2021 13:08:47
>> *An:* squeak-dev
>> *Betreff:* Re: [squeak-dev] The Trunk: Morphic-mt.1769.mcz
>>
>> > But this would not really match the actual object layout of integers
>> in Squeak which can have arbitrary sizes ...
>>
>> So, the binary representation does not make sense, right? And neither
>> does the HEX or OCT. :-)
>>
>> Best,
>> Marcel
>>
>> Am 17.05.2021 13:07:28 schrieb Thiede, Christoph <
>> christoph.thiede at student.hpi.uni-potsdam.de>:
>>
>> > And I would have expected a 2's complement, right?
>>
>>
>> Ah, now I see. :-) But this would not really match the actual object
>> layout of integers in Squeak which can have arbitrary sizes ...
>>
>>
>> In my opinion, we should just leave it as is (just maybe without the
>> space), I don't really like such artificial limitations. :-)
>>
>>
>> Best,
>>
>> Christoph
>> ------------------------------
>> *Von:* Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im
>> Auftrag von Taeumel, Marcel
>> *Gesendet:* Montag, 17. Mai 2021 12:52:23
>> *An:* squeak-dev
>> *Betreff:* Re: [squeak-dev] The Trunk: Morphic-mt.1769.mcz
>>
>> > Apart from that, I would have expected '-02' instead of '- 02'. :-)
>>
>> And I would have expected a 2's complement, right? Or even drop this
>> representation for negative numbers altogether?
>>
>> Best,
>> Marcel
>>
>> Am 17.05.2021 12:49:51 schrieb Thiede, Christoph <
>> christoph.thiede at student.hpi.uni-potsdam.de>:
>>
>> Nice catch! :-)
>>
>>
>> For anyone else wondering about this glitch:
>>
>> Before:
>>
>>
>> After:
>>
>>
>> IMO our printing protocol on Number should have a padded argument similar
>> to the (post-comma) decimal places.
>> Apart from that, I would have expected '-02' instead of '- 02'. :-)
>>
>> Best,
>> Christoph
>> ------------------------------
>> *Von:* Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im
>> Auftrag von commits at source.squeak.org <commits at source.squeak.org>
>> *Gesendet:* Donnerstag, 6. Mai 2021 19:05:29
>> *An:* squeak-dev at lists.squeakfoundation.org;
>> packages at lists.squeakfoundation.org
>> *Betreff:* [squeak-dev] The Trunk: Morphic-mt.1769.mcz
>>
>> Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
>> http://source.squeak.org/trunk/Morphic-mt.1769.mcz
>>
>> ==================== Summary ====================
>>
>> Name: Morphic-mt.1769
>> Author: mt
>> Time: 6 May 2021, 7:05:24.828981 pm
>> UUID: 8109f744-f1f3-7048-8646-fed21a8e23d4
>> Ancestors: Morphic-ct.1768
>>
>> Fixes minor glitch in objext explorers on integers.
>>
>> This makes me wonder ... what are the expectations for negative integers
>> here?
>>
>> =============== Diff against Morphic-ct.1768 ===============
>>
>> Item was changed:
>>   ----- Method: Integer>>explorerContents (in category
>> '*Morphic-Explorer') -----
>>   explorerContents
>>
>>          ^#(
>>                  ('hexadecimal' 16 2)
>>                  ('octal' 8 3)
>>                  ('binary' 2 4)) collect: [ :each | | label group |
>>                          group := each third.
>> +                        label := self abs printStringBase: each second.
>> -                        label := self printStringBase: each second.
>>                          label := label padded: #left to: (label size
>> roundUpTo: group) with: $0.
>>                                  label := String streamContents: [:s |
>> +                                self negative ifTrue: [s nextPutAll: '-
>> '].
>>                                  (1 to: label size by: group)
>>                                          do: [:index |
>>                                                  1 to: group do: [:gIndex
>> |
>>                                                          s nextPut:
>> (label at: index + gIndex - 1)]]
>>                                          separatedBy: [s space]].
>>
>>                          ObjectExplorerWrapper
>>                                  with: label
>>                                  name: each first translated
>>                                  model: self ]!
>>
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20210518/83134937/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 31614 bytes
Desc: not available
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20210518/83134937/attachment-0001.png>


More information about the Squeak-dev mailing list