Google Groupes

Re: [felix] Re: [Felix-language] layout


skaller 2 sept. 2014 21:17
Envoyé au groupe : Felix Language

On 03/09/2014, at 10:19 AM, Martin DeMello wrote:

> gtk is purely optional, and just used for the gui.

I know .. I actually do have 0install.
(the older Python version).

Note: nothing stops anyone using 0install with Felix
or anything else.

> where i'm coming from is this:
>
> 1. if you have packages, you ideally want a package manager
> 2. the package manager will need to do a bunch of things that aren't really felix-related

Dowloading and maintaining packages, yes.

> 3. so why not use the existing work that the 0install guys are doing, especially since one of their stated goals is to be used for language packages

There are several reasons. Similar to ReadTheDocs. Third party dependence
is one of the reasons. Felix bundles Judy, Google RE2,  Sqlite3, OCS Scheme,
and Dypgen for good reason.

The Felix build programs are replacing fbuild, which is bundled and written
in Python (and very good), for a good reason too. The author isn't on
the project any more and I can't maintain it.

> also, the longer i work in software, the more suspicious i am of not-invented-here syndrome :)

The more I work on it .. and it's over 40 years now .. the more suspicious I am (period). :)

0install provides a way to run a *program* using a URL. Felix isn't really a program.

>
> to answer your question about what 0install would actually do, i picture the following scenario:
>
> $ 0install felix-sdl-bindings

You have to give a URL I think:

0install http://felix-lang.org/packages/felix-sdl-bindings

> # installs the bindings in some standard location

How does it discover where that is?

> # invokes the felix compiler as needed to finalise the installation

Right so how is this much different from

        curl http://felix-lang.org/packages/felix-sdl-bindings.pak
        sudo flx_iscr --outdir=$FLX_PACKAGE_DIR felix-sdl-bindings.pak
        sudo flx --felix=package-admin.fpc $FLX_PACKAGE_DIR/builder.flx --target=$FLX_TARGET_DIR

or something similar?

APART from the signature verification.

Its true, if the process above had dependencies, they wouldn't be handled.

However, it is not so easy to handle them. Here's why:

You think that to install the GUI you need flx_sdl which needs SDL.
Right?

WRONG. You don't need SDL at all to install sdl-bindings.
You only need SDL if you want to compile the generated C++.

My point: Felix has two levels of dependencies. Most package
managers have tricky ways that could handle this but then
you're programming using tricks to do it.

Why don't you try it? There are several packages you could make:

1) Gnu GMP .. I think there's a binding already.

2) Sqlite3 .. its in the bundle but it isn't used for anything

3) Regexps .. as you know Felix has a user space grammar
so there are three parts to this:

        (a) the RE2 bindings
        (b) a combinator library provides regular terms
        (c) a syntax for regdefs

4) SDL

5) Any other things?

At least one issue with Felix is that installing universal sources
and building platform dependent binaries are two different things.
Because there is no "the architecture". There can be any number
of targets.

How do you know which ones to build and when?
What happens if you upgrade Felix?

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