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

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Mon May 17 16:53:20 UTC 2021


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/20210517/655e37e3/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pastedImage.png
Type: image/png
Size: 8037 bytes
Desc: not available
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20210517/655e37e3/attachment-0003.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pastedImage.png
Type: image/png
Size: 7983 bytes
Desc: not available
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20210517/655e37e3/attachment-0004.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pastedImage.png
Type: image/png
Size: 7983 bytes
Desc: not available
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20210517/655e37e3/attachment-0005.png>


More information about the Squeak-dev mailing list