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