Re: features wishes for FOX (1.7.87 or newer) on Linux
JVZ <[email protected]> Wed, 2 Jul 2025 00:27:58 -0500
| Newsgroups | gmane.comp.lib.fox-toolkit.user |
|---|---|
| Organization | FOX-Toolkit |
| Message-ID | <20250702002758.6763c05a@resurgam> |
On Tue, 01 Jul 2025 12:42:08 +0200 Basile Starynkevitch <[email protected]> wrote: >Hello all > >On my Debian/Trixie/x86-64 desktop I did configure FOX 1.7.87 (ie theĀ >fox-snapshot.tar.gz2 fetched today near Jul 1 12:00 PM CEST 2025, whose md5sum >is e250a287d6902ef21b39513a8da3f833) with > > './configure' '--with-x' '--enable-release' \ > 'CFLAGS=-Dmoncflagsici -O2 -g2' \ > 'CXXFLAGS=-Dmoncxxflagsla -O2 -g2' 'CXX=/usr/local/bin/g++-15' > >The G++-15 compiler has been compiled by myself. > I suggest: export CXX="c++ -Dmoncxxflagsla" because configure blasts over CXXFLAGS >The -Dmoncflagsici and -Dmoncxxflagsla preprocessor flags are totally useless, >but I am adding them to ensure that they are passed. > >Surprisingly make output don't show them. > > >My suggestions (or wishes) are: > >1) have the FOX build infrastructure generate some _fox-configure_.h file >containing all the -DHAVE_* preprocessor flags. This ensure that the compilation >commands remain short and human readable. > >2) provide some API (or generated preprocessor string) containing the >configuration options. As far as I know GNU autoconf knows how to do that. > >3) provide some API to query the (many) optional features (wayland support, >opengl support, X11 support) and the build time. That would be useful; we have it in the "About" panel of the FOX projects like Adie and Pathfinder, but no reason we wouldn't have a published compiled in string or version number of some kind in the library. One thing we should check is if shared library and header files "belong to- gether", i.e. if you're linking to the same library as what you're compiling to. It can get confusing if you're working both on applications and on the library itself. >4) I have no idea if FOX can be compiled and linked with link-time-optimization >options. If that is the case please document so. So, we don't. I've tried -O3 and obviously, this is faster. But I feel its overkill for most code, and highly bloated binary is often generated, where compiler goes all-out on things which won't matter in terms of user-experience. Don't forget, we're more influenced by the quality of e.g. device driver libraries and hardware graphics cards than by our own methods of generating the drawing commands. There's new macros for performance counting [in FOX but also useful for user generated source code]. It exercises CPU tick counter to measure time spent in a scope, its great for micro-benchmarking things. You can also look at google perf [not to be confused with gperf] which makes nice call graphs letting you know where the time goes. This is not 100% useful since your typical GUI sits there waiting for a user to do something, but if you have a few large activities to measure it can be handy. The design of the public-facing header files in FOX is such that most of the time, user programs don't need to know the gory platform details [except that they *are* on Windows vs Linux, for example. Other special #define's are set by your compiler automatically, e.g. architecture, o.s. types, etc. >Regards from near Paris in France (it is terribly hot here). Hot here too, but that's expected for the Heart of Dixie; I (barely) survived a heat-stroke last saterday... -- JVZ -- +----------------------------------------------------------------------------+ | Copyright (C) 18:50 07/ 1/2025 Jeroen van der Zijp. All Rights Reserved. | +----------------------------------------------------------------------------+ _______________________________________________ Foxgui-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/foxgui-users