On 18/01/2013, at 9:16 AM, Michael Maul wrote: [And Dobes also]
> Course I expect it is not quite as simple as just capturing the gen'd C > code... The task then is to make it that simple. There are two distinct issues here. The easy one is the impact on the repository. The build can be changed so the standard build uses the C++ code, and I add a make target make bootstrap which translates flx, flx_pkgconfig, etc to C++. I am still concerned that the repository now contains an "unstructured mix" of generated and original sources. [Felix code is original, C++ is generated] The second issue is harder I think: platform configuration. This is an issue of cross-cross compilation. Let me remind of the model: build platform : machine Felix is built on host platform : machine you edit Felix code on target platform : machine you run C++ compiler on run platform : machine you run executables on In a "personal" model, all these machines are your PC. Most build systems can only cope with this model. When you are a packager, build != host. The binaries are built on the packaging platform but run on the client platform. That means the configuration cannot be determined correctly. For example, if the install target is set to some directory X, but installed in /usr/lib or /usr/local/lib, Felix gets the wrong hard coded install location compiled in. Normally Felix generates portable ISO C++ code. Any special dependencies come from config/target/*.hpp however any code doing, say, file handling where the platform dependencies are in the Felix code instead of C++ support libraries, will lead to platform dependent C++. So this means we may need a bootstrap version of a tool for every OS variant ;( Actually, most file handling is platform independent except for the opening filename (ISO C FILE* stuff works on Windows too). Now it gets tricker, since the developer (me) has to be able to generate code for a set of targets. Which means flx --target=WIN32 .. has to be implemented. (The default is --target=host which uses the default configuration etc). Note that everyone should get Windows config data. Just because you're running Linux doesn't mean you don't want to cross compile. So to make all this work (a) we have to get cross-cross compilation working (b) the install structure has to support multiple configurations (c) even the repo has to support multiple configs for bootstrapping [AAaaaa F*** its hot. 40+C in the shade today. More fires coming to Australia. Jump over side of boat every hour day. Bring welcome mat for friendly bull sharks. Turn overclocking off on bio-CPU. Ice-cubes in fridge, Check! Dont expect much sense out of me today, hard to type with sweat stinging eyes and dripping on keyboard. Close eyes. Think about Shayne in New York or Koz in Tokyo building snowmen.] -- john skaller skal...@users.sourceforge.net http://felix-lang.org ------------------------------------------------------------------------------ Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. ON SALE this month only -- learn more at: http://p.sf.net/sfu/learnmore_122712 _______________________________________________ Felix-language mailing list Felix-language@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/felix-language