Sorry I'm having a really hard time getting the dependency checking to work properly. It's almost done. This includes both checking if the cache is valid for the compiler and grammar, the cached standard library is valid, the Felix source is unchanged, and now also the checking is done for C and C++ compiles.
The latter will not have much significance yet for ordinary users, since it mainly impacts pure C/C++ builds of the RTL, because Felix can only be used for pure C/C++ building with a stub Felix program. One thing I'm considering is changing the cache structure, so there is a separate cache for each target. Suppose you have both clang and gcc and targets for both established, and you're building for both. The Felix compiles are invariant. The same C++ would normally be built from the same shared sources. This is a bit problematic in itself: if you were also cross compiling for Windows, the standard library "plat" module differs, and, there condition switches for platform adaption would differ, so the C++ would differ. However the C++ dependency checking would not differ in the former case, unless an RTL library header file was involved. In that case there is only one generic header which is shared but it has "callouts" into the target directory. Most of these callouts are stubs, but some do have real differences between platforms, and some between compilers (eg __GNUC__ macros). At present switching compilers would be ignored since I'm using cc -MM not cc -MM. If the cache is entirely "per target" this would avoid some errors in the dependency checking, as well as rerunning some things that didn't need to be re-run. However the cost would be extra building that wasn't necessary. Static compiles would be more impacted than dynamic. This is because in principle static linking means an executable is dependent on the toolchain since it's dependent on library details of the toolchain library used to compile the object files. OTOH for shared libraries, the headers might be independent of the libraries, so a clang built program could still link at load time to a gcc built shared library. It's not clear how right this is, if the targets were, for example, both gcc but one was 32 bit and the other 64 bit. -- john skaller skal...@users.sourceforge.net http://felix-lang.org ------------------------------------------------------------------------------ Shape the Mobile Experience: Free Subscription Software experts and developers: Be at the forefront of tech innovation. Intel(R) Software Adrenaline delivers strategic insight and game-changing conversations that shape the rapidly evolving mobile landscape. Sign up now. http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk _______________________________________________ Felix-language mailing list Felix-language@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/felix-language