[Vm-dev] [Pharo-dev] [ANN] PharoNOS

Eliot Miranda eliot.miranda at gmail.com
Mon Mar 20 21:48:57 UTC 2017


Hi Jan,

On Sun, Mar 19, 2017 at 1:46 PM, jan.struz <public+pharo at struz.cz> wrote:

> Hi Stef,
> what I want, is NativeBoost for Pharo 5+. Because we could do this:
>
> primInPortByte: portNumber
> 	<primitive: 'primitiveNativeCall' module: 'NativeBoostPlugin' error: errorCode>
>
> 	^ self nbCallout function: #(uint8 ( uint16 portNumber )) emit: [:gen |
> 			| asm result proxy |
> 			asm := gen asm.
> 			proxy := gen proxy.
> 			result := gen reserveTemp.
> 			asm
> 				pop: asm EDX;	"EDX = portNumber"
> 				push: asm EDI;	"save EDI"
> 				mov: result to: asm EDI; "EDI = temp address for result"
> 				db: 16rEC;		"IN AL, DX"
> 				pop: asm EDI.  "restore EDI"
> 			gen releaseTemps: 1.
> 		].
>
>
> This is a rewrite of one method from C source(calling asm) in internal
> SqueakNOSPlugin into NativeBoost Smalltalk code. It calls privileged
> (kernel mode only) instruction to directly access HW I/O - disk access.
> I have tried to run it, and it worked fine. However there is one little
> problem. NativeBoost needs method source, which is stored where? On the
> disk it wants to access... Solution - the source code can be embedded into
> compiled method trailer - this is only way to make it work. The first run
> will generate native code, and replaces the embedded source, so you can't
> touch the method anymore (at runtime)... so it is not perfect.
> This is how SqueakNOSPlugin can be removed entirelly. But I'm afraid
> nobody can play with it in Pharo7 images...
>

Can you not use the new UnifiedFFI which uses the ThreadedFFIPlugin at the
bottom level?


> Save The World!
>
> ------------------------------
> View this message in context: Re: [ANN] PharoNOS
> <http://forum.world.st/ANN-PharoNOS-tp4939247p4939313.html>
>
> Sent from the Pharo Smalltalk Developers mailing list archive
> <http://forum.world.st/Pharo-Smalltalk-Developers-f1294837.html> at
> Nabble.com.
>



-- 
_,,,^..^,,,_
best, Eliot
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/vm-dev/attachments/20170320/cc0b9961/attachment-0001.html>


More information about the Vm-dev mailing list