Mike: we need to agree on a schedule and process for moving
pkgtool into the core. I can do this, but it may disrupt your work
so its better if you do it. I would move pkgtool.flx first and leave
scoop in demos to start.

However before doing this there's a discussion to be had:
should we??

The current model has a big advantage. Its entirely separate
from the core Felix build and install process. The two
components: pkgtool library and scoop executable can be
bootstrapped into the system by running setup on the initial
manually downloaded package. The download is currently
effected by Git.

Once bootstrapped, scoop and pkgtool can self-upgrade,
as well as installing other packages.

That means the bootstrap version in Felix repo can be 
behind the most up to date version: as long as the API
is consistent enough for the bootstrap to load its own
upgrade, you don't have to post the upgrade to Felix.

Now, if you put pkgtool or scoop, or indeed anything
else such as for example "re2" (Google regexps) into
the litterbox, and it was originally part of the core,
we have a conflict: upgrading from the litterbox
clobbers the core, but reinstalling Felix clobbers
the package version.

==================

Now, in general, I think there is a right way to handle this.

What we do is we install

        $INSTALL_ROOT/boot-felix

so the core build is installed in a special directory for a boot
version of Felix. No versioning!

The boot version of Felix is used exactly once.
It is used to allow the boot versions of flx, scoop, etc to
build and install the REAL felix. 

ALL of it. Not just add on packages.

The REAL Felix has to be versioned to the extent that,
you can use the current install to upgrade to a new version.

the old version must remain intact, and it is used instead
of the BOOT version (which is now deleted).

My vague organisational thoughts are:

1. The original BOOT version you build is installed in $HOME.

2. The current REAL Felix is then built using that and installed
in /usr/local

3. Once the /usr/local version is judged OK it is upgraded
to /usr

4. you can continue to build the head in your work space
and install in $HOME if you want to play with development.

5. When you are happy you upgrade /usr/local, possibly
with a distinct version install ie. /usr/local/lib/felix/felix-1-1-9dev.

6. You can upgrade your /usr/local system with scoop.
The scoop you use comes from /usr!

7. So the basic rule is: the /usr install of Felix is the system
Felix. Its reliable. Its not upgraded often. Its primary use
is to run the package manager to upgrade versions in /usr/local.

So vaguely:

BUILD: The $HOME version of Felix is for Felix developers.

HOST: The /usr/local version of Felix is for programmers using Felix.
[Or C++].

TARGET: The /usr version of Felix is for running Felix.

RUN: the run version of Felix doesn't exist, it consists
of ordinary binary stand-alone executable and DLLs.
For example /usr/bin/flx_cp.

These would normally go in /usr/bin or /usr/lib on
a Debian distro (as opposed to /usr/lib/felix/).

============

The overall model is vital to properly staging Felix
digestive process. The install model conveniently
agrees with the cross-compilation model.


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




------------------------------------------------------------------------------
Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester  
Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the  
endpoint security space. For insight on selecting the right partner to 
tackle endpoint security challenges, access the full report. 
http://p.sf.net/sfu/symantec-dev2dev
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to