The first commit of the reorganised system is now done. I have NOT tested if the install process works (in fact I'm pretty sure it doesn't).
The new install concept will not put libraries into /usr/local/lib or executables into /usr/local/bin. I hate polluting those directories. So you should do this instead: LD_LIBRARY_PATH=/usr/local/lib/felix/felix-latest/host/lib/rtl:$LD_LIBRARY_PATH PATH=/usr/local/lib/felix/felix-latest/host/bin:$PATH if you want to use Felix provided tools directly from the command line, **including** flx. As an alternative, you can copy flx where you want it, make a symbolic link to it, or write a bash script called flx that invokes the binary, and then do all your work using commands like flx webserver .. flx scoop .. flx flx_cp .... "flx" should set the required paths. For developers C++ compilation now requires TWO include directories: -I/usr/local/lib/felix/felix-latest/host/lib/rtl -I/usr/local/lib/felix/felix-latest/share/lib/rtl There is no C++ in config/target anymore, the directory /usr/local/lib/felix/felix-latest/host/config is exclusively for *.fpc files applicable to the current host. [The subdirectories unix, win32, macosx are gone too] Down the track the whole source will be shared, i.e. put in share, so you can build multiple configs, using host felix, without needing the Git repository. =========================================================== Now: the impact on litterbox package tool I see as follows: First, there's no place at the moment for "add on packages". We need to discuss this. When Felix is upgraded or a new config is built, we do NOT want to have to reinstall all the packages (unless it is necessary). Bindings to libraries like gmp aren't likely to need changing. On the other hand there are now TWO kinds of location to install Felix code: (1) If you install in share directory, everyone using it gets the package. In an enterprise environment, a single source code update will automatically propagate to all users (because "flx" will auto-rebuild programs that are modified, and autorebuild if the core is changed as well). So that's an administrator upgrade. (2) If you install in a configuration such as "host" only people with access to that particular config get the upgrade. If the config is in $HOME only YOU get it. If the config is in /usr/local everyone with an account on that machine gets it. So scoop will need switches or whatever to tell it where to install a new package. Similarly, "flx" will need a switch to allow it to switch to a non-default config. Basically --target=host is the default (and currently hard coded which needs to be fixed). Switching the host is NOT the same as switching the felix install like: --test=build/release or using FLX_INSTALL_DIR environment variable. At present the target is just the name of a subdirectory of FLX_INSTALL_DIR containing a config. This isn't so good because it means the build directory must contain both the target and the share code: you cannot make a $HOME/felix/mytarget configuration without also copying the whole of the shared code (or at least using a link). Really the target config should contain a "pointer" to the share directory from which it was derived. -- john skaller skal...@users.sourceforge.net http://felix-lang.org ------------------------------------------------------------------------------ Try New Relic Now & We'll Send You this Cool Shirt New Relic is the only SaaS-based application performance monitoring service that delivers powerful full stack analytics. Optimize and monitor your browser, app, & servers with just a few lines of code. Try New Relic and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_apr _______________________________________________ Felix-language mailing list Felix-language@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/felix-language