Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- 7 participants
- 144631 messages
Re: [Pharo-project] Issue 10219: Completion: enter on accept awkwardness
by stephane ducasse
I agree. :)
On Apr 7, 2013, at 8:30 PM, Johan Brichau <johan(a)inceptive.be> wrote:
> I'm fine with the fact that Pharo decides to put that as a default (because I can change it).
>
> But the preferences are fundamentally flawed: if I disable useEnterToAccept then I cannot even use <tab> instead.
> I should also disable the <tab> as the completion of common prefixes.
> The change I attached to my email demonstrates that this should not be the case.
>
> On 07 Apr 2013, at 12:27, Esteban Lorenzano <estebanlm(a)gmail.com> wrote:
>
>> I still think useEnterToAccept has to be true
>> I sustain the idea of lower the entry level for the newcomers, instead supporting as default the use-workflow of power users (they have a settings browser there).
>> We took this decision last year and I think it was a good one... not that we cannot change, but I would stick with it for now.
>>
>> I think the current completion functionality has some other problems that makes it sometimes uncomfortable to use...
>>
>> On Apr 7, 2013, at 12:16 PM, stephane ducasse <stephane.ducasse(a)free.fr> wrote:
>>
>>>
>>> On Apr 6, 2013, at 11:44 PM, Benjamin <benjamin.vanryseghem.pharo(a)gmail.com> wrote:
>>>
>>>> If everybody likes it, maybe we should consider putting this configuration as default, no ?
>>>
>>> yes but first I would like to see the difference because I do not like it :)
>>>
>>>
>>>> Ben
>>>>
>>>> On Apr 6, 2013, at 8:59 PM, "Sean P. DeNigris" <sean(a)clipperadams.com> wrote:
>>>>
>>>>> stephane ducasse wrote
>>>>>> would it be possible to get a couple of settings that you use?
>>>>>
>>>>> NECPreferences
>>>>> enabled: true;
>>>>> caseSensitive: true;
>>>>> expandPrefixes: true;
>>>>> useEnterToAccept: false;
>>>>> smartCharacters: true;
>>>>> smartCharactersWithDoubleSpace: '[]{}';
>>>>> spaceAfterCompletion: false;
>>>>> popupAutomaticDelay: 100.
>>>>>
>>>>>
>>>>>
>>>>> -----
>>>>> Cheers,
>>>>> Sean
>>>>> --
>>>>> View this message in context: http://forum.world.st/Issue-10219-Completion-enter-on-accept-awkwardness-tp…
>>>>> Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
>>>>>
>>>>
>>>
>>
>
>
April 7, 2013
Re: [Pharo-project] Screencast: Creating C library bindings with TalkFFI for libgit2
by Ciprian Teodorov
On Sun, Apr 7, 2013 at 9:17 PM, Max Leske <maxleske(a)gmail.com> wrote:
> The replacement video is up now (vimeo.com/maxleske/talkffibindings)
>
>
> On 07.04.2013, at 20:48, Ciprian Teodorov <ciprian.teodorov(a)gmail.com>
> wrote:
>
>
>
>
> On Sun, Apr 7, 2013 at 8:08 PM, Ciprian Teodorov <
> ciprian.teodorov(a)gmail.com> wrote:
>
>>
>>
>>
>> On Sun, Apr 7, 2013 at 7:53 PM, Max Leske <maxleske(a)gmail.com> wrote:
>>
>>>
>>> On 07.04.2013, at 18:28, Ciprian Teodorov <ciprian.teodorov(a)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.
>
>
That's strange because that step relies exclusively on the pharo change set
installation.
In my linux test i don't see any problems...
>
>>> 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 <maxleske(a)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 <maxleske(a)gmail.com> wrote:
>>>>
>>>>
>>>> On 06.04.2013, at 23:09, Ciprian Teodorov <ciprian.teodorov(a)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 <maxleske(a)gmail.com> wrote:
>>>>
>>>>>
>>>>> On 06.04.2013, at 20:21, Stefan Marr <smalltalk(a)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.teodorov(a)gmail.com
>>>> www.teodorov.ro
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Dr. Ciprian TEODOROV
>>> Ingénieur Développement CAO
>>>
>>> tél : 06 08 54 73 48
>>> mail : ciprian.teodorov(a)gmail.com
>>> www.teodorov.ro
>>>
>>>
>>>
>>
>>
>> --
>> Dr. Ciprian TEODOROV
>> Ingénieur Développement CAO
>>
>> tél : 06 08 54 73 48
>> mail : ciprian.teodorov(a)gmail.com
>> www.teodorov.ro
>>
>
>
>
> --
> Dr. Ciprian TEODOROV
> Ingénieur Développement CAO
>
> tél : 06 08 54 73 48
> mail : ciprian.teodorov(a)gmail.com
> www.teodorov.ro
>
>
>
--
Dr. Ciprian TEODOROV
Ingénieur Développement CAO
tél : 06 08 54 73 48
mail : ciprian.teodorov(a)gmail.com
www.teodorov.ro
April 7, 2013
Re: [Pharo-project] [Pharo-users] [ANN] Pharo VM packages and PPA for Ubuntu
by Norbert Hartl
That's great! I think providing packages for LTS versions of ubuntu would be good.
Norbert
Am 07.04.2013 um 21:12 schrieb Damien Cassou <damien.cassou(a)gmail.com>:
> Dear Pharo and Ubuntu users,
>
> Nicolas Petton and I are proud to announce Ubuntu packages for the
> Pharo VM. Installing the pharo vm is now just a matter of:
>
> sudo add-apt-repository ppa:cassou/pharo
> sudo apt-get update
> sudo apt-get install pharo-vm
>
> With this package, you get:
>
> - the latest pharo vm as a 'pharo' binary in the PATH
> - all plugins and libraries (native boost, freetype, ssl, ...)
> - file association so you can just double-click on pharo images
> - pharo icons visible everywhere (on image files, on ALT+TAB...)
> - PharoV10.sources and PharoV20.sources
>
> Please fill bug reports on https://pharo.fogbugz.com.
>
> This package is currently only available for Ubuntu 12.10 Quantal.
> Fill a bug report if you want me to package it for another version of
> Ubuntu.
>
> --
> Damien Cassou
> http://damiencassou.seasidehosting.st
>
> "Success is the ability to go from one failure to another without
> losing enthusiasm."
> Winston Churchill
>
April 7, 2013
Re: [Pharo-project] Screencast: Creating C library bindings with TalkFFI for libgit2
by Max Leske
The replacement video is up now (vimeo.com/maxleske/talkffibindings)
On 07.04.2013, at 20:48, Ciprian Teodorov <ciprian.teodorov(a)gmail.com> wrote:
>
>
>
> On Sun, Apr 7, 2013 at 8:08 PM, Ciprian Teodorov <ciprian.teodorov(a)gmail.com> wrote:
>
>
>
> On Sun, Apr 7, 2013 at 7:53 PM, Max Leske <maxleske(a)gmail.com> wrote:
>
> On 07.04.2013, at 18:28, Ciprian Teodorov <ciprian.teodorov(a)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 <maxleske(a)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 <maxleske(a)gmail.com> wrote:
>>
>>>
>>> On 06.04.2013, at 23:09, Ciprian Teodorov <ciprian.teodorov(a)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 <maxleske(a)gmail.com> wrote:
>>>>
>>>> On 06.04.2013, at 20:21, Stefan Marr <smalltalk(a)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.teodorov(a)gmail.com
>>>> www.teodorov.ro
>>>
>>
>>
>>
>>
>> --
>> Dr. Ciprian TEODOROV
>> Ingénieur Développement CAO
>>
>> tél : 06 08 54 73 48
>> mail : ciprian.teodorov(a)gmail.com
>> www.teodorov.ro
>
>
>
>
> --
> Dr. Ciprian TEODOROV
> Ingénieur Développement CAO
>
> tél : 06 08 54 73 48
> mail : ciprian.teodorov(a)gmail.com
> www.teodorov.ro
>
>
>
> --
> Dr. Ciprian TEODOROV
> Ingénieur Développement CAO
>
> tél : 06 08 54 73 48
> mail : ciprian.teodorov(a)gmail.com
> www.teodorov.ro
April 7, 2013
Re: [Pharo-project] get.pharo.org is unreachable
by Tudor Girba
Thanks.
Doru
On Apr 7, 2013, at 3:59 PM, Marcus Denker <marcus.denker(a)inria.fr> wrote:
>
> On Apr 7, 2013, at 1:18 PM, Tudor Girba <tudor(a)tudorgirba.com> wrote:
>
>> Hi,
>>
>> Just in case you did not see it, it seems that http://get.pharo.org is unreachable at the moment. Is anyone looking into this?
>>
> Seems to work again⦠strange, but the good thing is that starting next week it will point directly to a server (no forwarding anymore).
>
> Marcus
>
>
--
www.tudorgirba.com
"Every thing has its own flow."
April 7, 2013
[Pharo-project] [ANN] Pharo VM packages and PPA for Ubuntu
by Damien Cassou
Dear Pharo and Ubuntu users,
Nicolas Petton and I are proud to announce Ubuntu packages for the
Pharo VM. Installing the pharo vm is now just a matter of:
sudo add-apt-repository ppa:cassou/pharo
sudo apt-get update
sudo apt-get install pharo-vm
With this package, you get:
- the latest pharo vm as a 'pharo' binary in the PATH
- all plugins and libraries (native boost, freetype, ssl, ...)
- file association so you can just double-click on pharo images
- pharo icons visible everywhere (on image files, on ALT+TAB...)
- PharoV10.sources and PharoV20.sources
Please fill bug reports on https://pharo.fogbugz.com.
This package is currently only available for Ubuntu 12.10 Quantal.
Fill a bug report if you want me to package it for another version of
Ubuntu.
--
Damien Cassou
http://damiencassou.seasidehosting.st
"Success is the ability to go from one failure to another without
losing enthusiasm."
Winston Churchill
April 7, 2013
Re: [Pharo-project] Screencast: Creating C library bindings with TalkFFI for libgit2
by Ciprian Teodorov
On Sun, Apr 7, 2013 at 8:08 PM, Ciprian Teodorov <ciprian.teodorov(a)gmail.com
> wrote:
>
>
>
> On Sun, Apr 7, 2013 at 7:53 PM, Max Leske <maxleske(a)gmail.com> wrote:
>
>>
>> On 07.04.2013, at 18:28, Ciprian Teodorov <ciprian.teodorov(a)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...
>
>> 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 <maxleske(a)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 <maxleske(a)gmail.com> wrote:
>>>
>>>
>>> On 06.04.2013, at 23:09, Ciprian Teodorov <ciprian.teodorov(a)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 <maxleske(a)gmail.com> wrote:
>>>
>>>>
>>>> On 06.04.2013, at 20:21, Stefan Marr <smalltalk(a)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.teodorov(a)gmail.com
>>> www.teodorov.ro
>>>
>>>
>>>
>>>
>>
>>
>> --
>> Dr. Ciprian TEODOROV
>> Ingénieur Développement CAO
>>
>> tél : 06 08 54 73 48
>> mail : ciprian.teodorov(a)gmail.com
>> www.teodorov.ro
>>
>>
>>
>
>
> --
> Dr. Ciprian TEODOROV
> Ingénieur Développement CAO
>
> tél : 06 08 54 73 48
> mail : ciprian.teodorov(a)gmail.com
> www.teodorov.ro
>
--
Dr. Ciprian TEODOROV
Ingénieur Développement CAO
tél : 06 08 54 73 48
mail : ciprian.teodorov(a)gmail.com
www.teodorov.ro
April 7, 2013
Re: [Pharo-project] Issue 10219: Completion: enter on accept awkwardness
by Johan Brichau
I'm fine with the fact that Pharo decides to put that as a default (because I can change it).
But the preferences are fundamentally flawed: if I disable useEnterToAccept then I cannot even use <tab> instead.
I should also disable the <tab> as the completion of common prefixes.
The change I attached to my email demonstrates that this should not be the case.
On 07 Apr 2013, at 12:27, Esteban Lorenzano <estebanlm(a)gmail.com> wrote:
> I still think useEnterToAccept has to be true
> I sustain the idea of lower the entry level for the newcomers, instead supporting as default the use-workflow of power users (they have a settings browser there).
> We took this decision last year and I think it was a good one... not that we cannot change, but I would stick with it for now.
>
> I think the current completion functionality has some other problems that makes it sometimes uncomfortable to use...
>
> On Apr 7, 2013, at 12:16 PM, stephane ducasse <stephane.ducasse(a)free.fr> wrote:
>
>>
>> On Apr 6, 2013, at 11:44 PM, Benjamin <benjamin.vanryseghem.pharo(a)gmail.com> wrote:
>>
>>> If everybody likes it, maybe we should consider putting this configuration as default, no ?
>>
>> yes but first I would like to see the difference because I do not like it :)
>>
>>
>>> Ben
>>>
>>> On Apr 6, 2013, at 8:59 PM, "Sean P. DeNigris" <sean(a)clipperadams.com> wrote:
>>>
>>>> stephane ducasse wrote
>>>>> would it be possible to get a couple of settings that you use?
>>>>
>>>> NECPreferences
>>>> enabled: true;
>>>> caseSensitive: true;
>>>> expandPrefixes: true;
>>>> useEnterToAccept: false;
>>>> smartCharacters: true;
>>>> smartCharactersWithDoubleSpace: '[]{}';
>>>> spaceAfterCompletion: false;
>>>> popupAutomaticDelay: 100.
>>>>
>>>>
>>>>
>>>> -----
>>>> Cheers,
>>>> Sean
>>>> --
>>>> View this message in context: http://forum.world.st/Issue-10219-Completion-enter-on-accept-awkwardness-tp…
>>>> Sent from the Pharo Smalltalk mailing list archive at Nabble.com.
>>>>
>>>
>>
>
April 7, 2013
Re: [Pharo-project] Screencast: Creating C library bindings with TalkFFI for libgit2
by Ciprian Teodorov
On Sun, Apr 7, 2013 at 7:53 PM, Max Leske <maxleske(a)gmail.com> wrote:
>
> On 07.04.2013, at 18:28, Ciprian Teodorov <ciprian.teodorov(a)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
>
> 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 <maxleske(a)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 <maxleske(a)gmail.com> wrote:
>>
>>
>> On 06.04.2013, at 23:09, Ciprian Teodorov <ciprian.teodorov(a)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 <maxleske(a)gmail.com> wrote:
>>
>>>
>>> On 06.04.2013, at 20:21, Stefan Marr <smalltalk(a)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.teodorov(a)gmail.com
>> www.teodorov.ro
>>
>>
>>
>>
>
>
> --
> Dr. Ciprian TEODOROV
> Ingénieur Développement CAO
>
> tél : 06 08 54 73 48
> mail : ciprian.teodorov(a)gmail.com
> www.teodorov.ro
>
>
>
--
Dr. Ciprian TEODOROV
Ingénieur Développement CAO
tél : 06 08 54 73 48
mail : ciprian.teodorov(a)gmail.com
www.teodorov.ro
April 7, 2013
Re: [Pharo-project] Screencast: Creating C library bindings with TalkFFI for libgit2
by Max Leske
On 07.04.2013, at 18:28, Ciprian Teodorov <ciprian.teodorov(a)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.
>
> 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 <maxleske(a)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 <maxleske(a)gmail.com> wrote:
>
>>
>> On 06.04.2013, at 23:09, Ciprian Teodorov <ciprian.teodorov(a)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 <maxleske(a)gmail.com> wrote:
>>>
>>> On 06.04.2013, at 20:21, Stefan Marr <smalltalk(a)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.teodorov(a)gmail.com
>>> www.teodorov.ro
>>
>
>
>
>
> --
> Dr. Ciprian TEODOROV
> Ingénieur Développement CAO
>
> tél : 06 08 54 73 48
> mail : ciprian.teodorov(a)gmail.com
> www.teodorov.ro
April 7, 2013