On Tue, May 5, 2015 at 7:34 PM, p...@highoctane.be <p...@highoctane.be>
wrote:

>
> On Tue, May 5, 2015 at 6:28 PM, Usman Bhatti <usman.bha...@gmail.com>
> wrote:
>
>> I succeeded to do it by encapsulating the C routine as a DLL and doing an
>> FFI call from my image (as suggested by Guille).
>>
>
> At least there was a way!
>

Exactly :)


>
> Looks like this is the most controlled|debuggable way:
>   - get it working with C code out of Pharo
>   - make a bridge that can be used easily with FFI in a dll
>   - use that from Pharo with proven FFI
>
> Would NativeBoost work with your dll? Should.
>

I have read a few resources about Nativeboost but I am still naive to know
the difference between FFI and nativeboost. The FFI call I made to invoke
the DLL function looked similar to the nativeboost calls.


>
>
> I also tried to perform the nativeboost call by creating my structures in
>> Pharo. The function in Windows that can be used to retrieve mac address in
>> Windows: GetAdaptersInfo
>> <https://msdn.microsoft.com/en-us/library/windows/desktop/aa365917%28v=vs.85%29.aspx>
>>  that
>> accepts a PIP_ADAPTER_INFO
>> <https://msdn.microsoft.com/en-us/library/windows/desktop/aa366062(v=vs.85).aspx>
>>  structure.
>> I subclassed NBExternalStructure to define this struct and the other used
>> by it in the image but my NB call returned with 87 code (Invalid parameter)
>> and it was impossible to debug. However, I would like to make this thing
>> work to understand what went wrong.
>>
>
> Has this something to do with 32|64 bit library complications?
>

Not exactly. For me, it was more related to the fact that I had to map a
complex C struct in Pharo. Here is an excerpt of the definition from MSDN:

typedef struct _IP_ADAPTER_INFO {
  struct _IP_ADAPTER_INFO  *Next;
 ...
  PIP_ADDR_STRING         CurrentIpAddress;
          IP_ADDR_STRING          GatewayList;
...
}

So, I had to define three external structures (all names in capitals) and I
did the effort but in the end I got an error code that I could not debug in
the image. Hence, I gave up and opted to go in the native environment. But
I would like someone knowledgable to have a look at my nativeboost code
 because the nativeboost approach is more simple (everything's in the
image).



usman


>
> Phil
>
>>
>> With ProcessWrapper, I could not load the classes essential for making
>> the plugin work.
>>
>> HTH,
>>
>> Usman
>>
>>
>>
>>
>> On Mon, May 4, 2015 at 2:54 PM, Ben Coman <b...@openinworld.com> wrote:
>>
>>> As a complete newb to VM building I found this fairly straight forward
>>> (on a Mac btw).
>>> https://github.com/pharo-project/pharo-vm
>>> cheers -ben
>>>
>>> On Mon, May 4, 2015 at 5:28 PM, Usman Bhatti <usman.bha...@gmail.com>
>>> wrote:
>>>
>>>>
>>>>
>>>> On Sun, May 3, 2015 at 4:22 PM, Pierce Ng <pie...@samadhiweb.com>
>>>> wrote:
>>>>
>>>>> On Sat, May 02, 2015 at 03:55:47PM +0200, Usman Bhatti wrote:
>>>>> > 1/ OSProcess: I tried  (PipeableOSProcess command: 'ipconfig /all')
>>>>> output.
>>>>>
>>>>> I have used http://www.smalltalkhub.com/#!/~hernan/ProcessWrapper
>>>>> successfully
>>>>> back when I was on Windows using some now-ancient version of Pharo.
>>>>>
>>>>
>>>> I had initially discarded the idea of using this project because it
>>>> required a plugin and the information of the plugin was outdated on
>>>> squeaksource. However, having evaluated superficially the complexity of
>>>> doing it with nativeboost (because too many external c struct involved in
>>>> the call), I would like to see if I am better off using this wrapper.
>>>>
>>>> I loaded it with:
>>>>
>>>> Gofer it
>>>>   url: 'http://www.smalltalkhub.com/mc/hernan/ProcessWrapper/main';
>>>>   package: 'ProcessWrapper-Core';
>>>>   package: 'ProcessWrapper-Plugin';
>>>>   package: 'ProcessWrapper-Tests';
>>>>   load.
>>>>
>>>> But the plugins wont load because it requires the
>>>> class SmartSyntaxInterpreterPlugin and apparently this file is a part of
>>>> the VMMaker. Is there any recent config for VMMaker in Pharo because this
>>>> one looks outdated:
>>>>
>>>> http://pharo.gemtalksystems.com/book/Virtual-Machine/Building/VMMakerTool/
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>>
>>>>> Pierce
>>>>>
>>>>>
>>>>
>>>
>>
>
>
>
>
>
>

Reply via email to