On Wed, May 6, 2015 at 9:58 AM, Nicolai Hess <nicolaih...@web.de> wrote:

>
>
> 2015-05-06 9:53 GMT+02:00 Usman Bhatti <usman.bha...@gmail.com>:
>
>>
>>
>> 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).
>>
>
> I can have a look.
>
> btw. for what do you need the mac address?
>

hardware lock.



>
>
>
>>
>>
>>
>> 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