[Omake] scanning of .mly files

Aleksey Nogin nogin at cs.caltech.edu
Mon Jun 12 12:20:29 PDT 2006


On 12.06.2006 10:33, Jason Hickey wrote:

>> My reading of OCaml.om is that this will *not* happen automatically  
>> -- arguably it should.  But in any case, it seems strange that the  
>> resulting behavior should differ from one machine to another.  Is  
>> there some way we can cause OMake to dump enough information to see  
>> what the difference might be?
> 
> 
> Hmm, I'm not sure if you are using -k or such.  The build order is 
> "nondetermistic".  Basically, the leaves of the build tree define a 
> "ready-queue" of targets that can be built, and their order in the 
> ready-queue is arbitrary.  However, if you are not using -k, and you 
> start from a fresh tree, it _should_ be deterministic.

Actually, the "-j nn" option would also make things highly 
nondeterministic, expecially if some critical dependencies are missing.

> As far as debugging a lack of dependencies, it is hard:(  Erick, I 
> believe, was suggesting that we monitor the filesystem and verify that 
> file accesses conform to the dependency order.

While what Jason said is true, detecting missing dependencies is in my 
experience a bit easier if you routinely use the "-j nn" option. Which, 
BTW, I would highly recommend in general, Even on a uniprocessor "-j 
2"/"-j 3" is likely to speed up the build, especially if the filesystem 
is relatively slow (e.g. NFS).

 From my ~/.login (tcsh syntax):

    setenv OMAKEFLAGS "-p -j5"
    if ( -r /proc/cpuinfo ) then
       set procs = `cat /proc/cpuinfo | grep '^processor'|wc -l`
       if ( $procs > 1 ) setenv MAKEFLAGS "-j`expr $procs + 1`"
       setenv OMAKEFLAGS "$OMAKEFLAGS -j`expr $procs \* 5`"
       unset procs
    endif

-- 
Aleksey Nogin

Home Page: http://nogin.org/
E-Mail: nogin at cs.caltech.edu (office), aleksey at nogin.org (personal)
Office: Moore 04, tel: (626) 395-2200


More information about the Omake mailing list