[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
Re: gnustep-using game available as public beta, Riccardo Mottola, 2011/11/16
Re: gnustep-using game available as public beta, Fred Kiefer, 2011/11/16
Re: gnustep-using game available as public beta, Germán Arias, 2011/11/20