On 01/05/2013, at 10:15 PM, Michael Maul wrote:

> So now scoop should work with new install tree except ...
>    Scoop installs pkgconfig 
>     files to INSTALL_ROOT/share/config while flx_pkg_config expects
>     files in INSTALL_ROOT_HOST. Should flx_pkgconfig also look in
>     INSTALL_ROOT/share/config?
> I think flx_pkgconfig should also look in INSTALL_ROOT/share/config as 
> INSTALL_ROOT/host 
> IMHO should only contain base felix.

The core
=======


The way it works **for the core** is:

The files in share/src/config are just read only data,
they're not an actual platform configuration.

flx etc will take an option --target=platform
which means (at present) the files in

        INSTALL_ROOT/platform

are processed, in particular

        INSTALL_ROOT/platform/config # fpc
        INSTALL_ROOT/platform/lib # felix
        INSTALL_ROOT/platform/lib/rtl #C++

The default value is

        --target=host

i.e. "host" is the name of the default platform.

No actual configuration should ever be in

        INSTALL_ROOT/share

anywhere, that's for universally read-only sharable data.
It's basically a copy of the repository reorganised.

Note that the config only contains *.fpc files, C++ headers
which are configured (generated) go in

        INSTALL_ROOT/platform/lib/rtl

at the moment. (Not sure I like that but anyhow).

These files are #included from the shared C++ headers
to configure them.  I'm not sure I like that either. 
Maybe it should go the other way.

The option --target is not implemented in "flx" at the moment,
but it will replace "host" which is hard coded.

Perhaps there's also an environment variable.

scoop
=====

For scoop its confusing. If scoop is installing a core package,
it has to put the pure sources in share, and the generated
stuff and chosen configuration in platform.

However, if we rebuild Felix it deletes everything in INSTALL_ROOT
to make sure everything is fresh.

We do NOT want to delete non-core installed packages like "gmp",
these are maintained independently. In theory upgrades to "core"
should not break "gmp". If they would, the core should have a version
bump.

But then, we have a new install of Felix with a new version, how
do we get all the stuff we had installed re-installed?

So its possible scoop should also be able to install stuff outside
all versions of Felix.

Solution
======

I think the solution is like this: initially, I envisage scoop installing
not only some convenient extras, but also most of what is now
the core.

So initially, it should just slavishly follow the way the build system
installs things. That way moving parts of Felix out into scoop will
not have any layout impacts.

So for example a Felix library which implements 

        fancydatastructure.flx

would be installed in

        INSTALL_ROOT/share/lib/std/datatype/

[Note that the _init__.flx file there won't be changed so you'd have
to actually include "std/datatype/fancydatastructre" to use it.

And we'd have

        INSTALL_ROOT/host/config/fancydatastructure.fpc

if it's a binding.

Such packages will be LOST when Felix is reinstalled which
is a real pain because I do that on a daily basis. But lets get
the core level installs working first, we can fix that later.

Probably we should keep track of the packages installed,
and then, at the end of a normal install, re-install any packages.


--
john skaller
skal...@users.sourceforge.net
http://felix-lang.org




------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to