As reported by Marcel on Squeak-dev, this snippet:

Compiler evaluate: (String with: $$ with: (Character value: 16r8000)).

will return a Character with a negative value (-32768).

This is because character literal in the range 16r100-16rFFFF are encoded with an extended B bytecode, and the extended B is interpreted as signed value.

I suggested

See https://source.squeak.org/VMMakerInbox/VMMaker.oscog-nice.3174.diff for the former solution.

The later solution require more changes and a careful recompilation of CompiledMethods at image side.


Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.
You are receiving this because you are subscribed to this thread.Message ID: <OpenSmalltalk/opensmalltalk-vm/issues/618@github.com>