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 <mdbra...@gmail.com> ha scritto:

> Hello
>
>
>
> I started chasing down the issue with the display (`printOn`) for floats
> which led me to a few different issues. One in particular leads to a
> potential issue with the SmallInteger >> * operator primitive. However, I’m
> having trouble understanding how this is actually implemented and built, or
> how GNU Smalltalk in general handles primitives.
>
>
>
> The SmallInteger >> * selector in kernel/SmallInt.st seems to get
> bypassed. I found VMpr_SmallInteger_times in libgst/prims.inl, but this
> doesn’t seem to get called, either (at least not as evidenced by trying to
> trace execution).
>
>
>
> So I’m looking for a little guidance on the structure of this part of the
> code structure.
>
>
>
> Thank you!
>
>
>
> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for
> Windows 10
>
>
>

Reply via email to