Hi,

we are implementing phrase sense disambiguation in Moses, which requires linking it with Vowpal Wabbit. We have been struggling with bjam, encountering a bunch of random errors and unexpected behavior:

* bjam seems to ignore changes sometimes, it only says "found X targets...", but doesn't update (yet the moses binary timestamp changes -- it doesn't include the new modifications though).

* It seems that the final build is sometimes erroneous, resulting in random crashes in places that have nothing to do with the code changes I made (removing all 'bin' directories and doing bjam -a seems to help).

* It looks like I was able to get rid of these errors by removing all occurrences of #ifdef HAVE_VW and #endif from my code (but now normal users can't build this branch).

I'm wondering if a bjam expert (Ken? :) could take a look at the attached Jamfile and let me know if I did something wrong. My code is in the damt_phrase branch.

Thanks!

Ales Tamchyna
alias headers : ../../util//kenutil : : : <include>. ;

alias ThreadPool : ThreadPool.cpp ;

boost 103600 ;

# VW
local with-vw = [ option.get "with-vw" ] ;
if $(with-vw) {
  lib vw : : <search>$(with-vw)/lib ;
  lib allreduce : : <search>$(with-vw)/lib ;
  obj CellContextScoreProducer.o : CellContextScoreProducer.cpp headers : 
<include>$(with-vw)/library <include>$(with-vw)/vowpalwabbit ;
  alias ccsc : CellContextScoreProducer.o vw allreduce : : : 
<library>boost_program_options <define>HAVE_VW <include>$(with-vw)/vowpalwabbit 
;
  echo "Linking with Vowpal Wabbit" ;
} else {
  alias ccsc ;
}

if [ option.get "with-synlm" : no : yes ] = yes
{
  lib m ;
  obj SyntacticLanguageModel.o : SyntacticLanguageModel.cpp headers : 
<include>$(TOP)/synlm/hhmm/rvtl/include 
<include>$(TOP)/synlm/hhmm/wsjparse/include ;
  alias synlm : SyntacticLanguageModel.o m : : : <define>HAVE_SYNLM ;
} else {
  alias synlm ;
}

lib moses_internal :
#All cpp files except those listed
[ glob *.cpp DynSAInclude/*.cpp : PhraseDictionary.cpp ThreadPool.cpp 
SyntacticLanguageModel.cpp ]
synlm ThreadPool headers ;

alias moses : PhraseDictionary.cpp moses_internal CYKPlusParser//CYKPlusParser 
LM//LM RuleTable//RuleTable Scope3Parser//Scope3Parser headers ../..//z 
../../OnDiskPt//OnDiskPt ;

alias headers-to-install : [ glob-tree *.h ] ;
_______________________________________________
Moses-support mailing list
[email protected]
http://mailman.mit.edu/mailman/listinfo/moses-support

Reply via email to