discuss-gnustep
[Top][All Lists]
Advanced

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

Re: Cocotron used for a real-world app


From: David Chisnall
Subject: Re: Cocotron used for a real-world app
Date: Thu, 30 Oct 2008 11:45:53 +0000

On 30 Oct 2008, at 07:44, Markus Hitter wrote:


Am 29.10.2008 um 19:30 schrieb Krishna:

While Xcode integration can be a big plus, having to cross-compile
everytime can be painful, no?

No. :-) You'll only notice by the doubled compile time, i.e. 2 seconds instead of 1 for typical small changes. Mac developers do this all day already, as it's currently standard to build for Intel 32-bit and PPC, or 32-bit and 64-bit, or all three (resulting in a single "universal" binary). There's a switch to build native-only, of course.

Cocotron has a big advantage over GNUstep - it only aims to support Windows. Windows has a stable, static ABI and is a very easy target due to its homogeneity.

GNUstep, in contrast, supports various flavours of *NIX on various architectures. I use GNUstep on OpenBSD/PowerPC, Solaris/SPARC64 and FreeBSD/x86. Setting up a cross-compile system for these would be very difficult. I'd need a version of GCC with SPARC, PowerPC and x86 back ends built, and I'd need all of the headers for OpenBSD, Solaris and FreeBSD. Apparently some people use my code on Ubuntu/x86 and Ubuntu/x86-64 as well, so I'd probably need to add these targets too.

When we get clang / LLVM support then this will be slightly easier since, unlike GCC, LLVM is built with cross-compiling in mind, but this still won't eliminate the need for copies of all of the headers and libraries for each potential target platform. Cross-compiling any C-family language is painful at the best of times, because the compiler is highly context-dependent.

If you're only wanting to support OS X and Windows, then cross- compiling might be a good option. Otherwise, it's likely to be a lot more pain than it's worth.

Yes. Your cross-compiling buddy will be done by the time your virtual machine asks for the installation disk.


And then he'll have to wait to install his VM before he can test it. The Cocoa and Cocotron APIs may be the same, but shipping some code using two completely independent implementations of the same API without testing it on both is something I can't imagine anyone actually doing if they expected real users.

Maybe you could test your Cocotron version using WINE on OS X, but that doesn't sound like a good way of working.

How is debugging done?

You rarely have to run a debugger natively. Most errors are in the logic of an app, which is (should be) the same on both sides.

Spoken like someone who has only ever had to support one CPU architecture. Or someone who has never come across bugs related to minor implementation differences between Cocoa and GNUstep.

David




reply via email to

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