guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Difficulty integrating with Swift/Objective-C


From: paul
Subject: Re: Difficulty integrating with Swift/Objective-C
Date: Sun, 05 Sep 2021 19:35:51 +1000
User-agent: mu4e 1.4.15; emacs 27.2

Hey Taylan,

Thank you for your reply!

On 2021-09-05 at 18:26 AEST, quoth Taylan Kammer <taylan.kammer@gmail.com>:
To narrow down the issue, I'd attempt a few things, in order:

1. Compile only the C code, adding a main() function, just to make sure the OS and the chosen Guile version and such are working fine with each other.

2. Compile pure Objective-C code, calling that run_guile() function firstly directly from the main() function in main.m of the Objective-C program, and commenting out the NSApplicationMain() call that would initialize Apple's
   application framework.

3. See if reactivating the NSApplicationMain() call causes problems. (It should
   be called *after* the Guile initialization.)

4. See if you can use Guile's C functions from -applicationDidFinishLaunching: e.g. by doing: scm_c_eval_string("(begin (display 'HelloWorld) (newline))")

If that works, we now have an Objective-C + Guile application, and want to move to using Swift instead. This is where my Apple knowledge hits its limits because
I never used Swift. :-)

But I guess Swift should have something equivalent to the main() function of C and Objective-C, and calling Guile initialization from there might do the trick.

If you hit a problem in step 3 or 4, then it could mean that Guile and Cocoa are somehow incompatible as they both want to apply some magic to the C program while initializing themselves. I wouldn't know how to approach that issue.

Actually, in my case there is no Objective-C code, only Swift, but these suggestions definitely give me some inspiration for things to try. I'll see if i can figure out how the NSApplication is bootstrapped so that i can hook in before that, because indeed, the way i tried, i was attempting to initialise Guile from deep within Application Kit code, which could be doomed to fail :).

Anyway i am heading away from my computer now, but will definitely give this angle a try — thanks for taking the time to reply!

Kind regards,
p.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]