On 11/12/2013, at 9:44 AM, GitHub wrote: > Log Message: > ----------- > Add --toolchain= option to flx.
With this new option, you can use different C++ compilers for the same target. For example on OSX you can use gcc-4.2 or clang 3.3. Or you can use the same compiler with different switches. At present Felix allows command line options to compilers, such as -Ox optimisation switches, --debug to put debug symbols in the object files, or others (anything with -f or -W is considered a compiler switch). In principle, ISO standards for compilers consider a tool run with distinct switches distinct language translators. So for example: gcc -O1 gcc -O2 gcc -fPIC are all distinct C compilers. Felix toolchain concept is basically intended to enforce the idea that EVERYTHING must be compiled by a single compiler. You cannot compile some things with one set of switches and other things with different switches. This enforces standards in warnings issued, that is, QOI (quality of implementation) standards. It also ensures you don't get into a muddle with incompatible switches or platform dependent stuff determined by "feature tests" (which is a seriously bad idea). Instead, Felix provides you with a limited set of parameters, and if you need options which aren't available you have to make a plugin for it. Specially, in theory, you should NOT use --toolchain or any other switches. If you want different compilation options you are supposed to create a complete new target.*** It's basically a "one parameter compiler choice". In practice, there are some more choices such as optimisation level, debug symbols, etc that we need, but we must be very careful that these options are options of the flx command line so flx commands "work the same on all platforms". Including Windows. *** Felix has some tools to help making new targets. However you still need to manually edit files with a text editor to gain full control, and you need a fair degree of knowledge to do this. In addition, since targets hang off the Felix version, when you install a new version, you have to do all this work over again. Indeed, even within the standard "host" target configuration data in the fpc database used to find libraries can easily be lost (the make install process completely scrubs the old installation). There is a weak mechanism to save fpc files in $HOME/.felix/config which the initial build should copy into the config database so you can find, for example, libSDL2, libgmp, or other third party libraries. However it isn't so simple to even maintain your own Felix source code libraries outside the Felix system installation. All these things will be addressed eventually, but to do so without sufficient use cases -- that is, actual users with real problems -- would be premature. -- john skaller skal...@users.sourceforge.net http://felix-lang.org ------------------------------------------------------------------------------ Rapidly troubleshoot problems before they affect your business. Most IT organizations don't have a clear picture of how application performance affects their revenue. With AppDynamics, you get 100% visibility into your Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro! http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk _______________________________________________ Felix-language mailing list Felix-language@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/felix-language