[squeak-dev] valid pragma syntax

Levente Uzonyi leves at caesar.elte.hu
Sun Jan 10 12:14:04 UTC 2016

On Sun, 10 Jan 2016, Nicolai Hess wrote:

> pharo fogbugz issue: 17359 MessageNotUnderstood: receiver of "keywords" is nil
> is this valid pragma syntax:
>     <apicall: bool 'SetCursorPos' (long long) module: 'user32.dll'>

This is not a pragma, but the special syntax used by FFI. AFAIK it 
predates pragmas.

> our (pharo) parser can not parse this (does not recognizes the
> "selector parts" (apicall:module:) right)
> Any recommendations how to fix this
> - fix RBParser or
> - change this pragma, for example, like this
>   <apicall: #(bool SetCursorPos (long long)) module: 'user32.dll'>

There's nothing to fix here. Either you change your parser, compiler and 
decompiler to support this syntax, but knowing how things work in Pharo, 
this is not an option, or change the methods with these callouts, 
introducing another incompatibility between Pharo and the rest, to use 
pragmas and create a custom parser, compiler and decompiler to be able to 
compile FFI callouts into methods when such pragmas are present.


> nicolai

More information about the Squeak-dev mailing list