Dear all,

I would like to give ZeroMQ a try in Smalltalk, but am unable to
load it on a new image successfully. In Pharo 5, I loaded the package
ConfigurationOfZeroMQ from therepository in smalltalkhub
<http://smalltalkhub.com/#%21/%7Epanuw/zeromq> and
evaluated the following to load the code:

ConfigurationOfZeroMQ loadBleedingEdge

It seems to load everything well, but when I try to look at the source
code of the methods that call the C routines from libzmq using the
system browser, the system exhibits the following error message:

UndefinedObject(Object)>>doesNotUnderstand: #keywords
RBFFICallPragma(RBPragmaNode)>>selectorParts
RubSHTextStylerST80(SHRBTextStyler)>>visitPragmaNode:
RBFFICallPragma(RBPragmaNode)>>acceptVisitor:
RubSHTextStylerST80(SHRBTextStyler)>>visitNode:
[ :each | self visitNode: each ] in
RubSHTextStylerST80>>visitMethodNode: in Block: [ :each | self
visitNode: each ]
OrderedCollection>>do:

(its a long stack, cutting here)

When loading ZeroMQ on Pharo 6, a window pops-up with the title
'Syntax Error: Literal constant expected' showing the source code
of a method defining a call to a routine from a C library:

apiDeleteDC: aHDC
    <apicall: Literal constant expected -> bool 'DeleteDC' (Win32HDC)
module:'gdi32.dll'>
    ^self externalCallFailed

If I update the syntax, re-writing the code above as

apiDeleteDC: aHDC
    ^self ffiCall: #( bool DeleteDC (Win32HDC aHDC) ) module:'gdi32.dll'

the compiler accepts it and the process can go on, but eventually
the system will become unstable...

Any ideas on how to solve this problems? Is this syntax still supported
in Pharo5 & 6?

Cheers,

Paulo

On 10/25/2017 03:47 PM, Sebastian Heidbrink via Pharo-users wrote:
> ForwardedMessage.eml
>
> Subject:
> Re: [Pharo-users] Exchanging information between 2 pharo applications
> (2 images running on two different computers)
> From:
> Sebastian Heidbrink <shei...@yahoo.de>
> Date:
> 10/25/2017 03:47 PM
>
> To:
> pharo-users@lists.pharo.org
>
>
> Hi Cederik,
>
> you should have a look at http://smalltalkhub.com/#!/~panuw/zeromq
> ZeroMQ is a networking library. Nice thing about it is that all the
> networking related workload is dealt with in a second process. That
> can save you some resources within Smalltalk.

Reply via email to