I've found what I think is a small problem with Felix, but one I don't know how 
to solve  (yet).

When the cached version of the library is stored on disk, the include file list 
is stored
with it, so the next processing doesn't re-include files again.

What's actually stored is the *resolved* filename (excluding the .flx),
that is the result after path lookup. So for example, if you run

flx --test=build/release-optimized xxxx

and build/release-optimized/lib/std.libtab doesn't exist,
it is created, along with include file names like:

build/release-optimized/std/C_hack

The problem is .. when the build image is installed, the filenames are wrong.
So if you try to 

flx tools/webserver

you get:

SYSTEM FAILURE
Duplicate non-function entries for C_hack on table merge

because that program says 

include "std/C_hack"

even though it doesn't need to. The *installed* version of that file is at

/usr/local/lib/felix/felix-1.1.6/lib/std/C_hack

which is different to the one stored in the std.libtab cache, so Felix
loads it again, and gets duplicate entries.

If I go back to storing just the argument of the include statement, this will
fix it, but it will mean that it doesn't respond to structural changes,
eg  overriding library files by using -I.. perhaps that's right, after all 
that's
what is actually causing the problem :)

Well bugs come in pairs .. it's summer here and they're breeding: there's 
another bug,
the --output_dir= option is sent by flx to flxg always, so the C++ files always 
go in the
current directory, but then flx runs the C++ compiler on where they should be,
in the tools directory for tools/webserver .. and g++ can't find any inputs.
That one is now fixed (it always did this, I have no idea how it worked before 
;)

--
john skaller
skal...@users.sourceforge.net





------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to