The replacement video is up now (vimeo.com/maxleske/talkffibindings).
On 07.04.2013, at 20:48, Ciprian Teodorov <ciprian.teodo...@gmail.com> wrote: > > > > On Sun, Apr 7, 2013 at 8:08 PM, Ciprian Teodorov <ciprian.teodo...@gmail.com> > wrote: > > > > On Sun, Apr 7, 2013 at 7:53 PM, Max Leske <maxle...@gmail.com> wrote: > > On 07.04.2013, at 18:28, Ciprian Teodorov <ciprian.teodo...@gmail.com> wrote: > >> Hi Max, >> >> I've just integrated some of my latest changes into a new version 1.4 of >> TalkFFI. Amongst others it prints clang erros in the transcript. >> On my libgit2 checkout there are some compilation errors. > > I accidentally loaded your new version and ran it on libgit2. I haven't done > any analysis yet but I had to force quit the image since the extraction was > taking forever. With 1.3 it took only a few seconds (1 to 2 minutes tops for > everything including compilation). I'm doing another run now to see what > happens. > > That's strange, on my side (macos 10.6.8, latest pharo2.0+vm) I get 7 seconds > with 1.3 and between 7-9 seconds with 1.4 (but that should be ok, printing in > transcript is expected to take some time). > > you're still on linux I guess? i'll try to check that > > on linux I get between 3 and 7 seconds for both 1.3 and 1.4... Yeah and these > results do not include the compilation of the generated smalltalk... but that > shouldn't have changed much… ubuntu 32 bit vm. Latest Pharo20. Generation works pretty much as expected, but I've been letting the compilation (after hitting "accept" in the changes browser) running for about 45 minutes and it's still not finished. Looks like some kind of infinite loop but I can't interrupt. I checked vmstat to see if memory / swapping might be an issue but there's more than enough memory available. I'll keep checking. >> >> I've moved the development version to this one, so if you want to try it >> just do the typical: >> Gofer it >> smalltalkhubUser: 'CipT' project: 'TalkFFI'; >> package: 'ConfigurationOfTalkFFI'; >> load. >> (Smalltalk at: #ConfigurationOfTalkFFI) loadDevelopment. >> >> TalkFFIExamples libgit2Mapping >> >> version 1.4 >> >> clang diagnostic messages on header loading >> added the possibility to filter the functions in a headerFile using a user >> defined block >> added option to check the function availability in a dynamic library >> specified during conversion. >> added simple generator that pulls functions into type classes. Instance >> side, if the first function argument matches the type class. Class side of >> the return type, if the function's first argument does not match any known >> type class, but if the return type match a type class. >> changed the NativeBoost generator so that instead of NBCharacterType * it >> generates NBExternalString, to facilitate string passing >> fixed uniqueInstance issue >> >> >> On Sun, Apr 7, 2013 at 6:18 PM, Max Leske <maxle...@gmail.com> wrote: >> Wow! This is embarrassing! I just noticed that the video on Vimeo is the >> wrong one (no wonder you kept talking about a premature ending…)! I'm >> replacing it right now. >> >> Sorry for that. >> >> Can't wait to see it ;) > > Uploading… ;) > >> >> Max >> >> >> On 06.04.2013, at 23:38, Max Leske <maxle...@gmail.com> wrote: >> >>> >>> On 06.04.2013, at 23:09, Ciprian Teodorov <ciprian.teodo...@gmail.com> >>> wrote: >>> >>>> Hi Max, >>>> >>>> your video is good, too bad that it stops prematurely. >>>> >>>> It helped me to spot a tiny issue with the libgit2 generation script. The >>>> C compile options ( '-D__STDC_CONSTANT_MACROS' '-D__STDC_LIMIT_MACROS') >>>> that are present there are just a copy paste error, since when created >>>> that method I've modified the one I've used for generating llvm bindings >>>> (which really needs them). >>>> >>>> For libgit2 i don't now, I think they aren't needed. I've just tried on my >>>> machine with options := {('-I' , includeDir fullName)}. >>>> and it seems to work >>> >>> I also think they're not necessary. >>> >>>> >>>> Now libclang is the reason that in some cases we need such options. Since >>>> we use libclang to parse the header files we should make sure that we pass >>>> it everything it needs to successfully process the header. >>>> So if anyone has a hard time generating bindings with talkffi for a >>>> library X, then a starting point might be to try understanding what are >>>> the options needed by clang to compile the headers. >>>> >>>> In the future I plan to add some kind of script editor for writing the >>>> bindings, which will show the messages from libclang. so that in case of >>>> compilation error (due to missing options, or c syntax errors) we can see >>>> them in the image. >>>> >>>> About generating the bindings directly on a mac, I've done it using a hand >>>> compiled version of libclang configured with (../configure >>>> --enable-optimized --enable-jit --target=i686-apple-darwin10). So if you >>>> are willing to download libclang and compile it, maybe you don't need a >>>> linux vm. >>> >>> Thanks for the explanations. >>> >>>> >>>> Ok, that's it for now. Thanks again for the great video >>> >>> My pleasure :) >>> >>>> Ciprian >>>> >>>> >>>> >>>> >>>> On Sat, Apr 6, 2013 at 10:02 PM, Max Leske <maxle...@gmail.com> wrote: >>>> >>>> On 06.04.2013, at 20:21, Stefan Marr <smallt...@stefan-marr.de> wrote: >>>> >>>> > Hi: >>>> > >>>> > On 06 Apr 2013, at 19:30, Max Leske wrote: >>>> > >>>> >> I recorded a new screencast with a short tutorial on how bindings for >>>> >> libgit2 (or any other library for that matter) can be created using >>>> >> TalkFFI. >>>> >> >>>> >> http://vimeo.com/maxleske/talkffibindings >>>> > >>>> > I skimmed through it. Looks good. >>>> > But, I noticed that the video actually stops before generating the >>>> > bindings :) >>>> > That makes it feel like there is something missing. >>>> >>>> Damn! Got me :) I realized that straight after I had hit stop. >>>> Still, for me the hard part was the compilation and setup. I figured out >>>> the bindings pritty quickly. >>>> >>>> Maybe I'll add short bit at the end tomorrow. >>>> >>>> Max >>>> >>>> > >>>> > Best regards >>>> > Stefan >>>> > >>>> > >>>> > >>>> > -- >>>> > Stefan Marr >>>> > Software Languages Lab >>>> > Vrije Universiteit Brussel >>>> > Pleinlaan 2 / B-1050 Brussels / Belgium >>>> > http://soft.vub.ac.be/~smarr >>>> > Phone: +32 2 629 2974 >>>> > Fax: +32 2 629 3525 >>>> > >>>> > >>>> >>>> >>>> >>>> >>>> >>>> -- >>>> Dr. Ciprian TEODOROV >>>> Ingénieur Développement CAO >>>> >>>> tél : 06 08 54 73 48 >>>> mail : ciprian.teodo...@gmail.com >>>> www.teodorov.ro >>> >> >> >> >> >> -- >> Dr. Ciprian TEODOROV >> Ingénieur Développement CAO >> >> tél : 06 08 54 73 48 >> mail : ciprian.teodo...@gmail.com >> www.teodorov.ro > > > > > -- > Dr. Ciprian TEODOROV > Ingénieur Développement CAO > > tél : 06 08 54 73 48 > mail : ciprian.teodo...@gmail.com > www.teodorov.ro > > > > -- > Dr. Ciprian TEODOROV > Ingénieur Développement CAO > > tél : 06 08 54 73 48 > mail : ciprian.teodo...@gmail.com > www.teodorov.ro