To be fair, I also see this behaviour in j901,j807 and j805, but I first 
noticed it in j902 (probably because it is incredibly obscure!)

        s:<(9 u:  128512 128512)  NB. expected behaviour
`😀😀
       s:<(9 u:  55357 56832 55357 56832) NB. expected behaviour
`😀😀
       s:<(9 u:  128512 55357 56832) NB. does not like mixing surrogate pairs 
with code point
`😀������
       s:<(9 u:  55357 56832 128512) NB. likes the reversal even less
`=
       s:<(9 u:  55357 56832 3101) NB. lower code points do not create a 
problem when mixed with surrogate pairs
`😀ఝ
       s:<(9 u:  3101 55357 56832) NB. in either order
`ఝ😀

Also noticed that even when forced to unicode4, 5 s: returns a boxed unicode 
value instead of unicode4 when using surrogate pairs

       5 s: s:< 9 u: 128512
┌──┐
│😀│
└──┘
      datatype > 5 s: s:< 9 u: 128512
unicode4
      5 s: s:< 9 u: 55357 56832
┌──┐
│😀│
└──┘
      datatype > 5 s: s:< 9 u: 55357 56832
unicode
   

    JVERSION
Engine: j902/j64avx2/darwin
Beta-n: commercial/2020-11-21T11:37:53
Library: 9.02.08
Qt IDE: 1.8.7/5.12.7(5.12.7)
Platform: Darwin 64
Installer: J902 install
InstallPath: /users/bobtherriault/j902
Contact: www.jsoftware.com
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to