[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: How does GNU Smalltalk build primitive selectors?
From: |
Paolo Bonzini |
Subject: |
Re: How does GNU Smalltalk build primitive selectors? |
Date: |
Sat, 20 Feb 2021 22:54:30 +0100 |
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:
> 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
>
>
>