At present, when one compiles Felix programs concurrently, it will work
provided

(a) there's no need to rebuild the cache
(b) everything that needs to be built by each compile is distinct

It may also work if:

(c) two processes rebuild something to the same thing

For example if two compiles of two programs both include "fred",
then if the fred.par2 pre-parsed file is the same it MIGHT work
even if they parse simultaneously. It might also cause all hell to
break loose if one process checks the header of the fred.par2
file that is partly created, finds it is OK, and loads it before the
first process could complete writing it :)

Unfortunately I don't think Unix can do a write to an inode first,
the name the file at the end: at best write to a temporary,
then do a rename (such renames are atomic).

However there's worse: if one processes uses a different flxg compiler
or whatever, it may delete the whole cache whilst the other process
is using it.

It's essential IMHO to make concurrent compilation safe:
people use make -j, in fact, fbuild does concurrent compilation
too.

So whilst I'm looking at fixing the time stamp problem (switching to
an older compiler doesn't delete the cache and it should) it would
be cool if someone had some idea how to handle cached concurrent
compilation.

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





------------------------------------------------------------------------------
Virtualization & Cloud Management Using Capacity Planning
Cloud computing makes use of virtualization - but cloud computing 
also focuses on allowing computing to be delivered as a service.
http://www.accelacomm.com/jaw/sfnl/114/51521223/
_______________________________________________
Felix-language mailing list
Felix-language@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/felix-language

Reply via email to