The Trunk: Multilingual-nice.248.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Multilingual-nice.248.mcz

commits-2
Nicolas Cellier uploaded a new version of Multilingual to project The Trunk:
http://source.squeak.org/trunk/Multilingual-nice.248.mcz

==================== Summary ====================

Name: Multilingual-nice.248
Author: nice
Time: 9 December 2019, 3:07:24.38758 pm
UUID: e5023db8-378f-4141-bfb2-ae3f377da27c
Ancestors: Multilingual-mt.247

Fix input interpreter on Windows VM which was incorrectly set to MacRomanInputInterpreter in Latin1Environment...

It should be UTF32InputInterpreter which is what Open Smalltalk VM did always used since birth.

While at it, nuke unused Current class var.

You can check current keyborad interpreter with:

        ActiveHand keyboardInterpreter.

You can reset it with:

        LanguageEnvironment clearDefault.
        HandMorph clearInterpreters.
        ActiveHand keyboardInterpreter.

If you don't do it manually, it should be reset at next image startup.

Note:
Since modern images only run on Open Smalltalk VM and since Open Smalltalk VM always use utf-32, we might better nuke win32VMUsesUnicode alltogether - it will always be true.
But since it is feature freeze, and since I cannot test the other environments, I leave this change for post-release.

=============== Diff against Multilingual-mt.247 ===============

Item was changed:
  Object subclass: #LanguageEnvironment
  instanceVariableNames: 'id'
+ classVariableNames: 'ClipboardInterpreterClass FileNameConverterClass InputInterpreterClass KnownEnvironments SystemConverterClass'
- classVariableNames: 'ClipboardInterpreterClass Current FileNameConverterClass InputInterpreterClass KnownEnvironments SystemConverterClass'
  poolDictionaries: ''
  category: 'Multilingual-Languages'!
 
  !LanguageEnvironment commentStamp: 'bf 8/16/2009 16:52' prior: 0!
  The name multilingualized Squeak suggests that you can use multiple language at one time.  This is true, of course, but the system still how to manage the primary language; that provides the interpretation of data going out or coming in from outside world. It also provides how to render strings, as there rendering rule could be different in one language to another, even if the code points in a string is the same.
 
    Originally, LanguageEnvironment and its subclasses only has class side methods.  After merged with Diego's Babel work, it now has instance side methods.  Since this historical reason, the class side and instance side are not related well.
 
    When we talk about the interface with the outside of the Squeak world, there are three different "channels"; the keyboard input, clipboard output and input, and filename. On a not-to-uncommon system such as a Unix system localized to Japan, all of these three can have (and does h
 ave) different encodings. So we need to manage them separately. Note that the encoding in a file can be anything. While it is nice to provide a suggested guess for this 'default system file content encoding', it is not critical.
 
  Rendering support is limited basic L-to-R rendering so far. But you can provide different line-wrap rule, at least.
  !

Item was changed:
  ----- Method: LanguageEnvironment class>>win32VMUsesUnicode (in category 'private') -----
  win32VMUsesUnicode
  | buildDate ind date vmHead |
  vmHead := Smalltalk vmVersion.
  vmHead ifNil: [^ false].
+ (vmHead beginsWith: 'Open Smalltalk')
+ ifTrue: [ ^ true ].
  buildDate := Smalltalk buildDate.
  buildDate ifNil: [^ false].
  ind := buildDate indexOfSubCollection: 'on'.
  date := Date readFromString: (buildDate copyFrom: ind+3 to: buildDate size).
  (vmHead beginsWith: 'Croquet') ifTrue: [
  ^ date >= (Date readFromString: '1 Feb 2007')
  ].
  (vmHead beginsWith: 'Squeak') ifTrue: [
  ^ date >= (Date readFromString: '5 June 2007')
  ].
  ^ false.
 
  "LanguageEnvironment win32VMUsesUnicode"!


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Multilingual-nice.248.mcz

Nicolas Cellier


Le lun. 9 déc. 2019 à 15:07, <[hidden email]> a écrit :
Nicolas Cellier uploaded a new version of Multilingual to project The Trunk:
http://source.squeak.org/trunk/Multilingual-nice.248.mcz

==================== Summary ====================

Name: Multilingual-nice.248
Author: nice
Time: 9 December 2019, 3:07:24.38758 pm
UUID: e5023db8-378f-4141-bfb2-ae3f377da27c
Ancestors: Multilingual-mt.247

Fix input interpreter on Windows VM which was incorrectly set to MacRomanInputInterpreter in Latin1Environment...

It should be UTF32InputInterpreter which is what Open Smalltalk VM did always used since birth.

While at it, nuke unused Current class var.

You can check current keyborad interpreter with:

        ActiveHand keyboardInterpreter.

You can reset it with:

        LanguageEnvironment clearDefault.
        HandMorph clearInterpreters.
        ActiveHand keyboardInterpreter.

If you don't do it manually, it should be reset at next image startup.

Note:
Since modern images only run on Open Smalltalk VM and since Open Smalltalk VM always use utf-32, we might better nuke win32VMUsesUnicode alltogether - it will always be true.
But since it is feature freeze, and since I cannot test the other environments, I leave this change for post-release.

=============== Diff against Multilingual-mt.247 ===============

Item was changed:
  Object subclass: #LanguageEnvironment
        instanceVariableNames: 'id'
+       classVariableNames: 'ClipboardInterpreterClass FileNameConverterClass InputInterpreterClass KnownEnvironments SystemConverterClass'
-       classVariableNames: 'ClipboardInterpreterClass Current FileNameConverterClass InputInterpreterClass KnownEnvironments SystemConverterClass'
        poolDictionaries: ''
        category: 'Multilingual-Languages'!

  !LanguageEnvironment commentStamp: 'bf 8/16/2009 16:52' prior: 0!
  The name multilingualized Squeak suggests that you can use multiple language at one time.  This is true, of course, but the system still how to manage the primary language; that provides the interpretation of data going out or coming in from outside world. It also provides how to render strings, as there rendering rule could be different in one language to another, even if the code points in a string is the same.

    Originally, LanguageEnvironment and its subclasses only has class side methods.  After merged with Diego's Babel work, it now has instance side methods.  Since this historical reason, the class side and instance side are not related well.

    When we talk about the interface with the ou   t   s   i   d   e       o   f       t   h   e       S   q   u   e   a   k       w   o   r   l   d   ,       t   h   e   r   e       a   r   e       t   h   r   e   e       d   i   f   f   e   r   e   n   t       "   c   h   a   n   n   e   l   s   "   ;       t   h   e       k   e   y   b   o   a   r   d       i   n   p   u   t   ,       c   l   i   p   b   o   a   r   d       o   u   t   p   u   t       a   n   d       i   n   p   u   t   ,       a   n   d       f   i   l   e   n   a   m   e   .           O   n       a       n   o   t   -   t   o   -   u   n   c   o   m   m   o   n       s   y   s   t   e   m       s   u   c   h       a   s       a       U   n   i   x       s   y   s   t   e   m       l   o   c   a   l   i   z   e   d       t   o       J   a   p   a   n   ,       a   l   l       o   f       t   h   e   s   e       t   h   r   e   e       c   a   n       h   a   v   e       (   a   n   d       d   o   e   s       h 
  a   v   e   )       d   i   f   f   e   r   e   n   t       e   n   c   o   d   i   n   g   s   .           S   o       w   e       n   e   e   d       t   o       m   a   n   a   g   e       t   h   e   m       s   e   p   a   r   a   t   e   l   y   .           N   o   t   e       t   h   a   t       t   h   e       e   n   c   o   d   i   n   g       i   n       a       f   i   l   e       c   a   n       b   e       a   n   y   t   h   i   n   g   .           W   h   i   l   e       i   t       i   s       n   i   c   e       t   o       p   r   o   v   i   d   e       a       s   u   g   g   e   s   t   e   d       g   u   e   s   s       f   o   r       t   h   i   s       '   d   e   f   a   u   l   t       s   y   s   t   e   m       f   i   l   e       c   o   n   t   e   n   t       e   n   c   o   d   i   n   g   '   ,       i   t       i   s       n   o   t       c   r   i   t   i   c   a   l   .   

             R   e   n   d   e   r   i   n   g       s   u   p   p   o   r   t       i   s       l   i   m   i   t   e   d       b   a   s   i   c       L   -   t   o   -   R       r   e   n   d   e   r   i   n   g       s   o       f   a   r   .           B   u   t       y   o   u       c   a   n       p   r   o   v   i   d   e       d   i   f   f   e   r   e   n   t       l   i   n   e   -   w   r   a   p       r   u   l   e   ,       a   t       l   e   a   s   t   .   
     !

I never noticed before how broken was the comment... It is a mixture of ASCII and UTF32 re-interpreted as ByteString.
We will have to fix that too.

Item was changed:
  ----- Method: LanguageEnvironment class>>win32VMUsesUnicode (in category 'private') -----
  win32VMUsesUnicode
        | buildDate ind date vmHead |
        vmHead := Smalltalk vmVersion.
        vmHead ifNil: [^ false].
+       (vmHead beginsWith: 'Open Smalltalk')
+               ifTrue: [ ^ true ].
        buildDate := Smalltalk buildDate.
        buildDate ifNil: [^ false].
        ind := buildDate indexOfSubCollection: 'on'.
        date := Date readFromString: (buildDate copyFrom: ind+3 to: buildDate size).
        (vmHead beginsWith: 'Croquet') ifTrue: [
                ^ date >= (Date readFromString: '1 Feb 2007')
        ].
        (vmHead beginsWith: 'Squeak') ifTrue: [
                ^ date >= (Date readFromString: '5 June 2007')
        ].
        ^ false.

  "LanguageEnvironment win32VMUsesUnicode"!




Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Multilingual-nice.248.mcz

Tobias Pape
Hi,

On 09.12.2019, at 15:14, Nicolas Cellier <[hidden email]> wrote:



Le lun. 9 déc. 2019 à 15:07, <[hidden email]> a écrit :
Nicolas Cellier uploaded a new version of Multilingual to project The Trunk:
http://source.squeak.org/trunk/Multilingual-nice.248.mcz

==================== Summary ====================

Name: Multilingual-nice.248
Author: nice
Time: 9 December 2019, 3:07:24.38758 pm
UUID: e5023db8-378f-4141-bfb2-ae3f377da27c
Ancestors: Multilingual-mt.247

Fix input interpreter on Windows VM which was incorrectly set to MacRomanInputInterpreter in Latin1Environment...

It should be UTF32InputInterpreter which is what Open Smalltalk VM did always used since birth.

While at it, nuke unused Current class var.

You can check current keyborad interpreter with:

        ActiveHand keyboardInterpreter.

You can reset it with:

        LanguageEnvironment clearDefault.
        HandMorph clearInterpreters.
        ActiveHand keyboardInterpreter.

If you don't do it manually, it should be reset at next image startup.

Note:
Since modern images only run on Open Smalltalk VM and since Open Smalltalk VM always use utf-32, we might better nuke win32VMUsesUnicode alltogether - it will always be true.
But since it is feature freeze, and since I cannot test the other environments, I leave this change for post-release.

=============== Diff against Multilingual-mt.247 ===============

Item was changed:
  Object subclass: #LanguageEnvironment
        instanceVariableNames: 'id'
+       classVariableNames: 'ClipboardInterpreterClass FileNameConverterClass InputInterpreterClass KnownEnvironments SystemConverterClass'
-       classVariableNames: 'ClipboardInterpreterClass Current FileNameConverterClass InputInterpreterClass KnownEnvironments SystemConverterClass'
        poolDictionaries: ''
        category: 'Multilingual-Languages'!

  !LanguageEnvironment commentStamp: 'bf 8/16/2009 16:52' prior: 0!
  The name multilingualized Squeak suggests that you can use multiple language at one time.  This is true, of course, but the system still how to manage the primary language; that provides the interpretation of data going out or coming in from outside world. It also provides how to render strings, as there rendering rule could be different in one language to another, even if the code points in a string is the same.

    Originally, LanguageEnvironment and its subclasses only has class side methods.  After merged with Diego's Babel work, it now has instance side methods.  Since this historical reason, the class side and instance side are not related well.

    When we talk about the interface with the ou   t   s   i   d   e       o   f       t   h   e       S   q   u   e   a   k       w   o   r   l   d   ,       t   h   e   r   e       a   r   e       t   h   r   e   e       d   i   f   f   e   r   e   n   t       "   c   h   a   n   n   e   l   s   "   ;       t   h   e       k   e   y   b   o   a   r   d       i   n   p   u   t   ,       c   l   i   p   b   o   a   r   d       o   u   t   p   u   t       a   n   d       i   n   p   u   t   ,       a   n   d       f   i   l   e   n   a   m   e   .           O   n       a       n   o   t   -   t   o   -   u   n   c   o   m   m   o   n       s   y   s   t   e   m       s   u   c   h       a   s       a       U   n   i   x       s   y   s   t   e   m       l   o   c   a   l   i   z   e   d       t   o       J   a   p   a   n   ,       a   l   l       o   f       t   h   e   s   e       t   h   r   e   e       c   a   n       h   a   v   e       (   a   n   d       d   o   e   s       h  
  a   v   e   )       d   i   f   f   e   r   e   n   t       e   n   c   o   d   i   n   g   s   .           S   o       w   e       n   e   e   d       t   o       m   a   n   a   g   e       t   h   e   m       s   e   p   a   r   a   t   e   l   y   .           N   o   t   e       t   h   a   t       t   h   e       e   n   c   o   d   i   n   g       i   n       a       f   i   l   e       c   a   n       b   e       a   n   y   t   h   i   n   g   .           W   h   i   l   e       i   t       i   s       n   i   c   e       t   o       p   r   o   v   i   d   e       a       s   u   g   g   e   s   t   e   d       g   u   e   s   s       f   o   r       t   h   i   s       '   d   e   f   a   u   l   t       s   y   s   t   e   m       f   i   l   e       c   o   n   t   e   n   t       e   n   c   o   d   i   n   g   '   ,       i   t       i   s       n   o   t       c   r   i   t   i   c   a   l   .   

             R   e   n   d   e   r   i   n   g       s   u   p   p   o   r   t       i   s       l   i   m   i   t   e   d       b   a   s   i   c       L   -   t   o   -   R       r   e   n   d   e   r   i   n   g       s   o       f   a   r   .           B   u   t       y   o   u       c   a   n       p   r   o   v   i   d   e       d   i   f   f   e   r   e   n   t       l   i   n   e   -   w   r   a   p       r   u   l   e   ,       a   t       l   e   a   s   t   .   
     !

I never noticed before how broken was the comment... It is a mixture of ASCII and UTF32 re-interpreted as ByteString.
We will have to fix that too.


This is funny, because I only noticed that in your reply. In the initial email, everything looks fine for me:





Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Multilingual-nice.248.mcz

Christoph Thiede

My mail client seems to be very lazy:



¯\_(ツ)_/¯


Von: Squeak-dev <[hidden email]> im Auftrag von Tobias Pape <[hidden email]>
Gesendet: Montag, 9. Dezember 2019 15:22:08
An: The general-purpose Squeak developers list
Betreff: Re: [squeak-dev] The Trunk: Multilingual-nice.248.mcz
 
Hi,

On 09.12.2019, at 15:14, Nicolas Cellier <[hidden email]> wrote:



Le lun. 9 déc. 2019 à 15:07, <[hidden email]> a écrit :
Nicolas Cellier uploaded a new version of Multilingual to project The Trunk:
http://source.squeak.org/trunk/Multilingual-nice.248.mcz

==================== Summary ====================

Name: Multilingual-nice.248
Author: nice
Time: 9 December 2019, 3:07:24.38758 pm
UUID: e5023db8-378f-4141-bfb2-ae3f377da27c
Ancestors: Multilingual-mt.247

Fix input interpreter on Windows VM which was incorrectly set to MacRomanInputInterpreter in Latin1Environment...

It should be UTF32InputInterpreter which is what Open Smalltalk VM did always used since birth.

While at it, nuke unused Current class var.

You can check current keyborad interpreter with:

        ActiveHand keyboardInterpreter.

You can reset it with:

        LanguageEnvironment clearDefault.
        HandMorph clearInterpreters.
        ActiveHand keyboardInterpreter.

If you don't do it manually, it should be reset at next image startup.

Note:
Since modern images only run on Open Smalltalk VM and since Open Smalltalk VM always use utf-32, we might better nuke win32VMUsesUnicode alltogether - it will always be true.
But since it is feature freeze, and since I cannot test the other environments, I leave this change for post-release.

=============== Diff against Multilingual-mt.247 ===============

Item was changed:
  Object subclass: #LanguageEnvironment
        instanceVariableNames: 'id'
+       classVariableNames: 'ClipboardInterpreterClass FileNameConverterClass InputInterpreterClass KnownEnvironments SystemConverterClass'
-       classVariableNames: 'ClipboardInterpreterClass Current FileNameConverterClass InputInterpreterClass KnownEnvironments SystemConverterClass'
        poolDictionaries: ''
        category: 'Multilingual-Languages'!

  !LanguageEnvironment commentStamp: 'bf 8/16/2009 16:52' prior: 0!
  The name multilingualized Squeak suggests that you can use multiple language at one time.  This is true, of course, but the system still how to manage the primary language; that provides the interpretation of data going out or coming in from outside world. It also provides how to render strings, as there rendering rule could be different in one language to another, even if the code points in a string is the same.

    Originally, LanguageEnvironment and its subclasses only has class side methods.  After merged with Diego's Babel work, it now has instance side methods.  Since this historical reason, the class side and instance side are not related well.

    When we talk about the interface with the ou   t   s   i   d   e       o   f       t   h   e       S   q   u   e   a   k       w   o   r   l   d   ,       t   h   e   r   e       a   r   e       t   h   r   e   e       d   i   f   f   e   r   e   n   t       "   c   h   a   n   n   e   l   s   "   ;       t   h   e       k   e   y   b   o   a   r   d       i   n   p   u   t   ,       c   l   i   p   b   o   a   r   d       o   u   t   p   u   t       a   n   d       i   n   p   u   t   ,       a   n   d       f   i   l   e   n   a   m   e   .           O   n       a       n   o   t   -   t   o   -   u   n   c   o   m   m   o   n       s   y   s   t   e   m       s   u   c   h       a   s       a       U   n   i   x       s   y   s   t   e   m       l   o   c   a   l   i   z   e   d       t   o       J   a   p   a   n   ,       a   l   l       o   f       t   h   e   s   e       t   h   r   e   e       c   a   n       h   a   v   e       (   a   n   d       d   o   e   s       h  
  a   v   e   )       d   i   f   f   e   r   e   n   t       e   n   c   o   d   i   n   g   s   .           S   o       w   e       n   e   e   d       t   o       m   a   n   a   g   e       t   h   e   m       s   e   p   a   r   a   t   e   l   y   .           N   o   t   e       t   h   a   t       t   h   e       e   n   c   o   d   i   n   g       i   n       a       f   i   l   e       c   a   n       b   e       a   n   y   t   h   i   n   g   .           W   h   i   l   e       i   t       i   s       n   i   c   e       t   o       p   r   o   v   i   d   e       a       s   u   g   g   e   s   t   e   d       g   u   e   s   s       f   o   r       t   h   i   s       '   d   e   f   a   u   l   t       s   y   s   t   e   m       f   i   l   e       c   o   n   t   e   n   t       e   n   c   o   d   i   n   g   '   ,       i   t       i   s       n   o   t       c   r   i   t   i   c   a   l   .   

             R   e   n   d   e   r   i   n   g       s   u   p   p   o   r   t       i   s       l   i   m   i   t   e   d       b   a   s   i   c       L   -   t   o   -   R       r   e   n   d   e   r   i   n   g       s   o       f   a   r   .           B   u   t       y   o   u       c   a   n       p   r   o   v   i   d   e       d   i   f   f   e   r   e   n   t       l   i   n   e   -   w   r   a   p       r   u   l   e   ,       a   t       l   e   a   s   t   .   
     !

I never noticed before how broken was the comment... It is a mixture of ASCII and UTF32 re-interpreted as ByteString.
We will have to fix that too.


This is funny, because I only noticed that in your reply. In the initial email, everything looks fine for me:





Carpe Squeak!
Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Multilingual-nice.248.mcz

Nicolas Cellier
Oh, case of luck that gmail render those NULL as blank (spaces) rather than invisible or terminating the message string!

Le lun. 9 déc. 2019 à 15:51, Thiede, Christoph <[hidden email]> a écrit :

My mail client seems to be very lazy:



¯\_(ツ)_/¯


Von: Squeak-dev <[hidden email]> im Auftrag von Tobias Pape <[hidden email]>
Gesendet: Montag, 9. Dezember 2019 15:22:08
An: The general-purpose Squeak developers list
Betreff: Re: [squeak-dev] The Trunk: Multilingual-nice.248.mcz
 
Hi,

On 09.12.2019, at 15:14, Nicolas Cellier <[hidden email]> wrote:



Le lun. 9 déc. 2019 à 15:07, <[hidden email]> a écrit :
Nicolas Cellier uploaded a new version of Multilingual to project The Trunk:
http://source.squeak.org/trunk/Multilingual-nice.248.mcz

==================== Summary ====================

Name: Multilingual-nice.248
Author: nice
Time: 9 December 2019, 3:07:24.38758 pm
UUID: e5023db8-378f-4141-bfb2-ae3f377da27c
Ancestors: Multilingual-mt.247

Fix input interpreter on Windows VM which was incorrectly set to MacRomanInputInterpreter in Latin1Environment...

It should be UTF32InputInterpreter which is what Open Smalltalk VM did always used since birth.

While at it, nuke unused Current class var.

You can check current keyborad interpreter with:

        ActiveHand keyboardInterpreter.

You can reset it with:

        LanguageEnvironment clearDefault.
        HandMorph clearInterpreters.
        ActiveHand keyboardInterpreter.

If you don't do it manually, it should be reset at next image startup.

Note:
Since modern images only run on Open Smalltalk VM and since Open Smalltalk VM always use utf-32, we might better nuke win32VMUsesUnicode alltogether - it will always be true.
But since it is feature freeze, and since I cannot test the other environments, I leave this change for post-release.

=============== Diff against Multilingual-mt.247 ===============

Item was changed:
  Object subclass: #LanguageEnvironment
        instanceVariableNames: 'id'
+       classVariableNames: 'ClipboardInterpreterClass FileNameConverterClass InputInterpreterClass KnownEnvironments SystemConverterClass'
-       classVariableNames: 'ClipboardInterpreterClass Current FileNameConverterClass InputInterpreterClass KnownEnvironments SystemConverterClass'
        poolDictionaries: ''
        category: 'Multilingual-Languages'!

  !LanguageEnvironment commentStamp: 'bf 8/16/2009 16:52' prior: 0!
  The name multilingualized Squeak suggests that you can use multiple language at one time.  This is true, of course, but the system still how to manage the primary language; that provides the interpretation of data going out or coming in from outside world. It also provides how to render strings, as there rendering rule could be different in one language to another, even if the code points in a string is the same.

    Originally, LanguageEnvironment and its subclasses only has class side methods.  After merged with Diego's Babel work, it now has instance side methods.  Since this historical reason, the class side and instance side are not related well.

    When we talk about the interface with the ou   t   s   i   d   e       o   f       t   h   e       S   q   u   e   a   k       w   o   r   l   d   ,       t   h   e   r   e       a   r   e       t   h   r   e   e       d   i   f   f   e   r   e   n   t       "   c   h   a   n   n   e   l   s   "   ;       t   h   e       k   e   y   b   o   a   r   d       i   n   p   u   t   ,       c   l   i   p   b   o   a   r   d       o   u   t   p   u   t       a   n   d       i   n   p   u   t   ,       a   n   d       f   i   l   e   n   a   m   e   .           O   n       a       n   o   t   -   t   o   -   u   n   c   o   m   m   o   n       s   y   s   t   e   m       s   u   c   h       a   s       a       U   n   i   x       s   y   s   t   e   m       l   o   c   a   l   i   z   e   d       t   o       J   a   p   a   n   ,       a   l   l       o   f       t   h   e   s   e       t   h   r   e   e       c   a   n       h   a   v   e       (   a   n   d       d   o   e   s       h  
  a   v   e   )       d   i   f   f   e   r   e   n   t       e   n   c   o   d   i   n   g   s   .           S   o       w   e       n   e   e   d       t   o       m   a   n   a   g   e       t   h   e   m       s   e   p   a   r   a   t   e   l   y   .           N   o   t   e       t   h   a   t       t   h   e       e   n   c   o   d   i   n   g       i   n       a       f   i   l   e       c   a   n       b   e       a   n   y   t   h   i   n   g   .           W   h   i   l   e       i   t       i   s       n   i   c   e       t   o       p   r   o   v   i   d   e       a       s   u   g   g   e   s   t   e   d       g   u   e   s   s       f   o   r       t   h   i   s       '   d   e   f   a   u   l   t       s   y   s   t   e   m       f   i   l   e       c   o   n   t   e   n   t       e   n   c   o   d   i   n   g   '   ,       i   t       i   s       n   o   t       c   r   i   t   i   c   a   l   .   

             R   e   n   d   e   r   i   n   g       s   u   p   p   o   r   t       i   s       l   i   m   i   t   e   d       b   a   s   i   c       L   -   t   o   -   R       r   e   n   d   e   r   i   n   g       s   o       f   a   r   .           B   u   t       y   o   u       c   a   n       p   r   o   v   i   d   e       d   i   f   f   e   r   e   n   t       l   i   n   e   -   w   r   a   p       r   u   l   e   ,       a   t       l   e   a   s   t   .   
     !

I never noticed before how broken was the comment... It is a mixture of ASCII and UTF32 re-interpreted as ByteString.
We will have to fix that too.


This is funny, because I only noticed that in your reply. In the initial email, everything looks fine for me:






Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Multilingual-nice.248.mcz

Eliot Miranda-2
In reply to this post by commits-2
Hi Nicolas, Marcel,

    does this fix Marcel’s issue with ümlauts or is that a real vm issue?

_,,,^..^,,,_ (phone)

> On Dec 9, 2019, at 6:07 AM, [hidden email] wrote:
>
> Nicolas Cellier uploaded a new version of Multilingual to project The Trunk:
> http://source.squeak.org/trunk/Multilingual-nice.248.mcz
>
> ==================== Summary ====================
>
> Name: Multilingual-nice.248
> Author: nice
> Time: 9 December 2019, 3:07:24.38758 pm
> UUID: e5023db8-378f-4141-bfb2-ae3f377da27c
> Ancestors: Multilingual-mt.247
>
> Fix input interpreter on Windows VM which was incorrectly set to MacRomanInputInterpreter in Latin1Environment...
>
> It should be UTF32InputInterpreter which is what Open Smalltalk VM did always used since birth.
>
> While at it, nuke unused Current class var.
>
> You can check current keyborad interpreter with:
>
>    ActiveHand keyboardInterpreter.
>
> You can reset it with:
>
>    LanguageEnvironment clearDefault.
>    HandMorph clearInterpreters.
>    ActiveHand keyboardInterpreter.
>
> If you don't do it manually, it should be reset at next image startup.
>
> Note:
> Since modern images only run on Open Smalltalk VM and since Open Smalltalk VM always use utf-32, we might better nuke win32VMUsesUnicode alltogether - it will always be true.
> But since it is feature freeze, and since I cannot test the other environments, I leave this change for post-release.
>
> =============== Diff against Multilingual-mt.247 ===============
>
> Item was changed:
>  Object subclass: #LanguageEnvironment
>      instanceVariableNames: 'id'
> +    classVariableNames: 'ClipboardInterpreterClass FileNameConverterClass InputInterpreterClass KnownEnvironments SystemConverterClass'
> -    classVariableNames: 'ClipboardInterpreterClass Current FileNameConverterClass InputInterpreterClass KnownEnvironments SystemConverterClass'
>      poolDictionaries: ''
>      category: 'Multilingual-Languages'!
>
>  !LanguageEnvironment commentStamp: 'bf 8/16/2009 16:52' prior: 0!
>  The name multilingualized Squeak suggests that you can use multiple language at one time.  This is true, of course, but the system still how to manage the primary language; that provides the interpretation of data going out or coming in from outside world. It also provides how to render strings, as there rendering rule could be different in one language to another, even if the code points in a string is the same.
>
>    Originally, LanguageEnvironment and its subclasses only has class side methods.  After merged with Diego's Babel work, it now has instance side methods.  Since this historical reason, the class side and instance side are not related well.
>
>    When we talk about the interface with the outside of the Squeak world, there are three different "channels"; the keyboard input, clipboard output and input, and filename. On a not-to-uncommon system such as a Unix system localized to Japan, all of these three can have (and does h
> ave) different encodings. So we need to manage them separately. Note that the encoding in a file can be anything. While it is nice to provide a suggested guess for this 'default system file content encoding', it is not critical.
>  
>   Rendering support is limited basic L-to-R rendering so far. But you can provide different line-wrap rule, at least.
>  !
>
> Item was changed:
>  ----- Method: LanguageEnvironment class>>win32VMUsesUnicode (in category 'private') -----
>  win32VMUsesUnicode
>      | buildDate ind date vmHead |
>      vmHead := Smalltalk vmVersion.
>      vmHead ifNil: [^ false].
> +    (vmHead beginsWith: 'Open Smalltalk')
> +        ifTrue: [ ^ true ].
>      buildDate := Smalltalk buildDate.
>      buildDate ifNil: [^ false].
>      ind := buildDate indexOfSubCollection: 'on'.
>      date := Date readFromString: (buildDate copyFrom: ind+3 to: buildDate size).
>      (vmHead beginsWith: 'Croquet') ifTrue: [
>          ^ date >= (Date readFromString: '1 Feb 2007')
>      ].
>      (vmHead beginsWith: 'Squeak') ifTrue: [
>          ^ date >= (Date readFromString: '5 June 2007')
>      ].
>      ^ false.
>
>  "LanguageEnvironment win32VMUsesUnicode"!
>
>

Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: Multilingual-nice.248.mcz

marcel.taeumel
Hi Eliot,

yes, it does fix this issue. Trunk version #19258 works fine on Windows VM 201911282316 :-)

Thank you!

Marcel

Am 09.12.2019 16:45:37 schrieb Eliot Miranda <[hidden email]>:

Hi Nicolas, Marcel,

does this fix Marcel’s issue with ümlauts or is that a real vm issue?

_,,,^..^,,,_ (phone)

> On Dec 9, 2019, at 6:07 AM, [hidden email] wrote:
>
> Nicolas Cellier uploaded a new version of Multilingual to project The Trunk:
> http://source.squeak.org/trunk/Multilingual-nice.248.mcz
>
> ==================== Summary ====================
>
> Name: Multilingual-nice.248
> Author: nice
> Time: 9 December 2019, 3:07:24.38758 pm
> UUID: e5023db8-378f-4141-bfb2-ae3f377da27c
> Ancestors: Multilingual-mt.247
>
> Fix input interpreter on Windows VM which was incorrectly set to MacRomanInputInterpreter in Latin1Environment...
>
> It should be UTF32InputInterpreter which is what Open Smalltalk VM did always used since birth.
>
> While at it, nuke unused Current class var.
>
> You can check current keyborad interpreter with:
>
> ActiveHand keyboardInterpreter.
>
> You can reset it with:
>
> LanguageEnvironment clearDefault.
> HandMorph clearInterpreters.
> ActiveHand keyboardInterpreter.
>
> If you don't do it manually, it should be reset at next image startup.
>
> Note:
> Since modern images only run on Open Smalltalk VM and since Open Smalltalk VM always use utf-32, we might better nuke win32VMUsesUnicode alltogether - it will always be true.
> But since it is feature freeze, and since I cannot test the other environments, I leave this change for post-release.
>
> =============== Diff against Multilingual-mt.247 ===============
>
> Item was changed:
> Object subclass: #LanguageEnvironment
> instanceVariableNames: 'id'
> + classVariableNames: 'ClipboardInterpreterClass FileNameConverterClass InputInterpreterClass KnownEnvironments SystemConverterClass'
> - classVariableNames: 'ClipboardInterpreterClass Current FileNameConverterClass InputInterpreterClass KnownEnvironments SystemConverterClass'
> poolDictionaries: ''
> category: 'Multilingual-Languages'!
>
> !LanguageEnvironment commentStamp: 'bf 8/16/2009 16:52' prior: 0!
> The name multilingualized Squeak suggests that you can use multiple language at one time. This is true, of course, but the system still how to manage the primary language; that provides the interpretation of data going out or coming in from outside world. It also provides how to render strings, as there rendering rule could be different in one language to another, even if the code points in a string is the same.
>
> Originally, LanguageEnvironment and its subclasses only has class side methods. After merged with Diego's Babel work, it now has instance side methods. Since this historical reason, the class side and instance side are not related well.
>
> When we talk about the interface with the outside of the Squeak world, there are three different "channels"; the keyboard input, clipboard output and input, and filename. On a not-to-uncommon system such as a Unix system localized to Japan, all of these three can have (and does h
> ave) different encodings. So we need to manage them separately. Note that the encoding in a file can be anything. While it is nice to provide a suggested guess for this 'default system file content encoding', it is not critical.
>
> Rendering support is limited basic L-to-R rendering so far. But you can provide different line-wrap rule, at least.
> !
>
> Item was changed:
> ----- Method: LanguageEnvironment class>>win32VMUsesUnicode (in category 'private') -----
> win32VMUsesUnicode
> | buildDate ind date vmHead |
> vmHead := Smalltalk vmVersion.
> vmHead ifNil: [^ false].
> + (vmHead beginsWith: 'Open Smalltalk')
> + ifTrue: [ ^ true ].
> buildDate := Smalltalk buildDate.
> buildDate ifNil: [^ false].
> ind := buildDate indexOfSubCollection: 'on'.
> date := Date readFromString: (buildDate copyFrom: ind+3 to: buildDate size).
> (vmHead beginsWith: 'Croquet') ifTrue: [
> ^ date >= (Date readFromString: '1 Feb 2007')
> ].
> (vmHead beginsWith: 'Squeak') ifTrue: [
> ^ date >= (Date readFromString: '5 June 2007')
> ].
> ^ false.
>
> "LanguageEnvironment win32VMUsesUnicode"!
>
>