> On 06 May 2015, at 17:03, Nicolai Hess <nicolaih...@web.de> wrote:
> 
> 
> 
> 2015-05-06 16:40 GMT+02:00 Esteban Lorenzano <esteba...@gmail.com 
> <mailto:esteba...@gmail.com>>:
> 
>> On 06 May 2015, at 12:10, p...@highoctane.be <mailto:p...@highoctane.be> 
>> wrote:
>> 
>> I've loaded your package.
>> 
>> A prerequisite is to load OS-Window to make it work.
> 
> why?
> in any case, oswindow is already included in pharo4
> 
> OS-Windows (by TorstenBergmann)
> not
> OSWindow  :)

ahhh. Name clash :)

> 
> It is needed for the shared pool WinTypes, 
> but without OS-Window, he can use NBWinTypes instead.
> 
>  
> 
> Esteban
> 
>> 
>> I've got the DLL call working nicely and the nativeboost with the structure 
>> freezing.
>> 
>> Now, we should all have a look at:
>> 
>> https://github.com/ronsaldo/bullet-pharo 
>> <https://github.com/ronsaldo/bullet-pharo>
>> 
>> and
>> 
>> https://github.com/ronsaldo/swig <https://github.com/ronsaldo/swig>
>> 
>> because it looks like the way to go to wrap libraries...
>> 
>> Ronie, I know you modified swig for generating Pharo code;
>> 
>> Is cloning your swig repo the way to go ?
>> 
>> 
>> Phil
>> 
>> 
>> 
>> 
>> On Wed, May 6, 2015 at 10:39 AM, Usman Bhatti <usman.bha...@gmail.com 
>> <mailto:usman.bha...@gmail.com>> wrote:
>> Hi Nicolai,
>> 
>> Here is my package that defines the nativeboost call and associated C 
>> structs.
>> The external C struct is self referencing and hence sometimes I get infinite 
>> recursion when trying to change field descriptions. That is the reason why 
>> the automatically generated accessors are absent (although I had them in an 
>> earlier version).
>> 
>> Attached also the DLL referenced in the code.
>> 
>> 
>> 
>> On Wed, May 6, 2015 at 9:58 AM, Nicolai Hess <nicolaih...@web.de 
>> <mailto:nicolaih...@web.de>> wrote:
>> 
>> 
>> 2015-05-06 9:53 GMT+02:00 Usman Bhatti <usman.bha...@gmail.com 
>> <mailto:usman.bha...@gmail.com>>:
>> 
>> 
>> On Tue, May 5, 2015 at 7:34 PM, p...@highoctane.be 
>> <mailto:p...@highoctane.be> <p...@highoctane.be <mailto:p...@highoctane.be>> 
>> wrote:
>> 
>> On Tue, May 5, 2015 at 6:28 PM, Usman Bhatti <usman.bha...@gmail.com 
>> <mailto: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?
>> 
>>  
>> 
>> 
>> 
>> 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 
>> <mailto: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 
>> <https://github.com/pharo-project/pharo-vm>
>> cheers -ben
>> 
>> On Mon, May 4, 2015 at 5:28 PM, Usman Bhatti <usman.bha...@gmail.com 
>> <mailto:usman.bha...@gmail.com>> wrote:
>> 
>> 
>> On Sun, May 3, 2015 at 4:22 PM, Pierce Ng <pie...@samadhiweb.com 
>> <mailto: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 
>> <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 
>> <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/ 
>> <http://pharo.gemtalksystems.com/book/Virtual-Machine/Building/VMMakerTool/>
>> 
>> 
>> 
>>  
>> 
>> Pierce
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>>  
>> 
>> 
>> 
>> 
>> 
>> 
> 
> 

Reply via email to