From: john skaller <skaller@us...> - 2012-05-17 12:49:11
Im still struggling with the install layout.
This makes sense:
felix/share/felix-version/lib/std/*.flx ... etc etc
Each version has a new standard library, tool sources, etc.
This would also cover C++ sources.
Now, the platform dependent stuff is in two parts:
(a) configuration data: *.fpc files, specs for calling C++,
C++ config headers.
(b) compiled binaries: executables, static libs, shared libs
There will be a standard one of these: host, an abstract name
for the current desktop config. Sharable between users.
Other configs could be installed for cross compiling.
Each user currently has $HOME/felix with personal data.
Presently this is just cache data PLUS if the user is a felix
developer, initialisation data for the host config.
In principle, the config data depends on the platform
not on the Felix version. It may change with compiler
upgrades (independently of the Felix version).
So one problem here is whether to version the config data.
It will surely change with Felix version. On the other hand,
if we do that each new install will lose the local tailoring
(where various third partly libraries are kept, for example).
At present persistence come from the builders HOME/felix.
Better than nothing, but still not really right.
Now, at present we have
and that only works because there's a single install point.
If we split shared stuff from the config, it won't work.
We'd need TWO variables: one to version the shared
library code and one for the config.
The idea would be
which defaults to host. --test defaults to /usr/local/lib/felix/
share/version. But where is host? Do we need to repeat
the version in the config?
Maybe the way forward is to include the share/version IN
the config? But then an upgrade would require duplicating
I'm confused :) Need help thinking on this.