|
From: | Mark Bratcher |
Subject: | RE: How does GNU Smalltalk build primitive selectors? |
Date: | Sat, 20 Feb 2021 17:26:59 -0500 |
Thank you, Paolo. I’ll paw through some of that stuff and see what I can figure out. I think there may be an issue with the small integer multiplication in particular. It doesn’t seem to promote results to LargeInteger properly if at all when the product of two SmallInteger types overflows. I don’t know if “auto-promotion” is expected in Smalltalk arithmetic in general, but it does seem that certain other methods, such as conversion of floats to strings, counts on it. Sent from Mail for Windows 10 From: Paolo Bonzini Hi, some primitives are special cased and implemented directly in the byte code interpreter. You can find the implementation in vm.def. The primitives in prims.def will still be used with #perform:, for example "2 perform: #* with: 3" will invoke the VMpr_SmallInteger_times primitive in accord with the source code of the * method of SmallInteger. Paolo Il sab 20 feb 2021, 00:42 Mark Bratcher <mdbratch@gmail.com> ha scritto:
|
[Prev in Thread] | Current Thread | [Next in Thread] |