On 28 Feb 2011, at 22:12, Mathieu Suen wrote:
> Hi David
>
>
> On Feb 28, 2011, at 4:41 PM, David Chisnall wrote:
>
>> Hi Mattieu,
>>
>> Damien Pollet and I wrote a quick-and-dirty binding for GST a few years back
>> in an afternoon. I'm not sure if he tidied it up - I got bored with it
>> because we now have a native Smalltalk implementation for Étoilé so
>> interfacing with a slower Smalltalk was less interesting to me, but I'd be
>> happy to help anyone wanting to work on the bridge.
>>
>
>
> Cool I'd love to take a look at it any chance that you have it somewhere?
We did it on Damien's laptop (and, when I saw 'we', I mostly mean 'Damien'),
but you could try dropping him an email.
>> To open frameworks, the best thing to do is use the NSBundle functionality -
>> this works on both GNUstep and OS X. In LanguageKit, there is code for
>> loading a list of frameworks that is specified in a .plist file accompanying
>> a set of Smalltalk files - it's MIT licensed, so feel free to steal it. If
>> copyright assignment is an issue, then I'd be happy for my GNUstep FSF
>> copyright assignment to cover this code, so I can commit anything that you
>> want to steal to GNUstep svn somewhere and you can then import it into other
>> GNU projects.
>>
>> More comments inline...
>>
>>
>> On 28 Feb 2011, at 15:16, Mathieu Suen wrote:
>>
>>> Hi,
>>>
>>> I am trying to write a gnustep/Etoile binding for gnu-smalltalk.
>>> I don't know if this ML is the right one so just let me know.
>>>
>>> Here is the thing:
>>>
>>> When writing the binding for Cocoa on OSX I can dynamically load framework
>>> with
>>> libtool:
>>>
>>> lt_dlopenext ("Foundation.framework/Foundation");
>>
>> You can just use dlopen() directly if you want to open the library, although
>> this may not register things with Foundation correctly. The best way of
>> doing it is to provide the .framework path to [NSBundle bundleWithPath:].
>>
>> You can find a wrapper around this here:
>>
>> http://svn.gna.org/viewcvs/etoile/trunk/Etoile/Languages/LanguageKit/LKCompiler.m?revision=6793&view=markup
>>
>> Look for the loadFramework() function - this loads a framework by name, and
>> works on OS X and GNUstep, searching for the framework in the standard
>> locations.
>
>
> Thanks a lot for the infos I will take a look at it as soon as I can get
> gnustep runtime loaded.
> ...
>
>>
>>> ...
>>>
>>> I also need the Objective-C runtime for method like objc_getClass.
>>> Currently when I load the objc library it load /usr/lib/libobjc.so.2, I
>>> guess
>>> this is not the right one.
>>> Using gdb it shows that the symbol does not exist.
>>
>> This function is provided by the GNUstep Objective-C runtime, by the
>> ObjectiveC2 compatibility framework in GNUstep Base, and by the GCC
>> Objective-C runtime shipped with 4.6.
>>
>> libobjc.so.2 looks like you are using a very old version of the GCC
>> Objective-C runtime, so this function should be being provided by GNUstep
>> base, unless you are using a version more than a year old.
>>
>
>
> It what I suspected using objdump I can't recognize the Objective-C API so I
> guess that was the one from gcc.
> Now I am wondering how to load the gnustep library. At least what is the
> minimum that I need in other to have NSBundle and friends to work.
>
> I have a quick look at my gnustep install dir. From what I see the gnustep
> base is somewhere in /usr/GNUstep/Local/.../libgnustep-base.so
>
> I am using the build tool from gst. So what should I add to my Makefile.am
> and configure.ac.
> Adding:
>
> include ${GNUSTEP_MAKEFILES}/common.make
>
> Is a bit too mush since I already have all make and install rules.
> I might only need -L/... and -lgnustep-base switch I guess.
That's enough on most *NIX systems. GNUstep Make is a massively
over-engineered thing that I have given up trying to understand, but most of
the complexity comes from supporting weird configurations that no one cares
about, so you can probably skip it.
David
-- Sent from my IBM 1620
_______________________________________________
Etoile-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/etoile-discuss