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 _______________________________________________ Discuss-gnustep mailing list [email protected] https://lists.gnu.org/mailman/listinfo/discuss-gnustep
