discuss-gnustep
[Top][All Lists]
Advanced

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

Re: gnustep-using game available as public beta


From: David Chisnall
Subject: Re: gnustep-using game available as public beta
Date: Wed, 16 Nov 2011 14:22:03 +0000

On 16 Nov 2011, at 13:49, Julian Mayer wrote:

> hey david
> 
>> Yes, in theory, but this then needs the user to install Linux versions of 
>> all of the dependencies (glibc, libicu, Cairo, xlib, GNUstep, and so on), 
>> which ends up being a huge amount of code.
> 
> well gnustep is bundled, and cairo is not needed, but xlib, sdl, etc are 
> still needed. but is occupying a few hundred MB of disk space really a 
> problem in this day and age? or is installing these dependencies a manual 
> process?

The dependencies may be automatic, but generally the packaged versions of Linux 
binaries take a while to appear.  BSD's typically use an upstream Linux 
distribution to provide the packages to install in Linux-compatibility mode, 
and these take a while to appear.

You also may need to configure some stuff.  I haven't run anything in 
Linux-compat mode for years (if there isn't a FreeBSD version, it goes on my 
don't-care list), but it typically involves installing a big chunk of a Linux 
distribution to work.  Downloading and installing a few hundred MBs of binaries 
just to run one app isn't a great idea.

> speaking of profiling i made a bad experience there. 
> valgrind was too slow to be usable, oprofile didn't like my kernel, googles 
> performance tools seem not to play nice with gnustep (app crashing at startup 
> with some exception), and i couldn't get gprof to work even with profile=yes  
> - could be llvm's fault though. basically i failed doing profiling on my 
> gnustep app ;-(

On FreeBSD, I'd recommend DTrace for instrumentation / profiling.  Apparently 
pin is a low-budget remake of it for Linux.  

> btw it seems you made some nice clang objective-c optimization passes for 
> etoile. how would one go about using them outside of etoile?

They're not specific to Étoilé at all, they're part of libobjc2.  You can use 
-Xclang -load -Xclang path/to/libGNURuntime.so to enable them - if the library 
containing the optimisations is loaded then they will automatically insert 
themselves into the optimisation chain.  I need to test them with llvm 3.0 
before the 1.6 release.  

If you are using clang trunk from just after the 3.0 branch and libobjc2 trunk 
/ 1.6, you can also add -fno-legacy-dispatch.  This currently only works for 
x86[-64] and ARM, but makes message sending quite a bit cheaper.  I tested 
-base with this option - all of the tests passed and the resulting binary was 
10% smaller.  Unfortunately, I wasn't in time to get it into the 3.0 release, 
but I'll probably sneak the patch into the version that we ship as the system 
compiler with FreeBSD 9.1 while no one is looking.  

David

-- Sent from my Difference Engine






reply via email to

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