sleepyhead111 commited on
Commit
20382bf
·
verified ·
1 Parent(s): 9543496

Add files using upload-large-folder tool

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. FacebookAI/xlm-roberta-large/onnx/model.onnx +3 -0
  2. mosesdecoder/contrib/mada/qsub-madamira.perl +46 -0
  3. mosesdecoder/contrib/memscore/configure +0 -0
  4. mosesdecoder/contrib/memscore/m4/ax_boost_base.m4 +223 -0
  5. mosesdecoder/contrib/memscore/scorer.cpp +402 -0
  6. mosesdecoder/contrib/memscore/statistic.h +26 -0
  7. mosesdecoder/contrib/mert-sge-nosync/README +29 -0
  8. mosesdecoder/contrib/mert-sge-nosync/generic/moses-parallel-sge-nosync.pl +1388 -0
  9. mosesdecoder/contrib/mert-sge-nosync/generic/qsub-wrapper-exit-sge-nosync.pl +312 -0
  10. mosesdecoder/contrib/mert-sge-nosync/generic/qsub-wrapper-sge-nosync.pl +320 -0
  11. mosesdecoder/contrib/mert-sge-nosync/training/mert-moses-sge-nosync.pl +1633 -0
  12. mosesdecoder/contrib/mert-sge-nosync/training/sge-nosync/cleartmpfiles.pl +64 -0
  13. mosesdecoder/contrib/mert-sge-nosync/training/sge-nosync/create-config-sge-nosync.pl +426 -0
  14. mosesdecoder/contrib/mert-sge-nosync/training/sge-nosync/moses-parallel-postdecode-sge-nosync.pl +235 -0
  15. mosesdecoder/contrib/mert-sge-nosync/training/sge-nosync/poll-decoder.pl +30 -0
  16. mosesdecoder/contrib/mert-sge-nosync/training/sge-nosync/process-featlist-sge-nosync.pl +283 -0
  17. mosesdecoder/contrib/mert-sge-nosync/training/sge-nosync/process-moses-result-sge-nosync.pl +1377 -0
  18. mosesdecoder/contrib/mert-sge-nosync/training/sge-nosync/run-decoder-sge-nosync.pl +271 -0
  19. mosesdecoder/contrib/mert-sge-nosync/training/sge-nosync/zipextract-decoder-result.pl +832 -0
  20. mosesdecoder/contrib/other-builds/CreateProbingPT/.cproject +150 -0
  21. mosesdecoder/contrib/other-builds/CreateProbingPT/.project +36 -0
  22. mosesdecoder/contrib/other-builds/MosesManagedDLL/ManagedMoses.cpp +28 -0
  23. mosesdecoder/contrib/other-builds/MosesManagedDLL/MosesManagedDLL.vcxproj +170 -0
  24. mosesdecoder/contrib/other-builds/MosesManagedDLL/MosesManagedDLL.vcxproj.filters +22 -0
  25. mosesdecoder/contrib/other-builds/MosesWrapperTest/MosesWrapperTest.csproj +86 -0
  26. mosesdecoder/contrib/other-builds/MosesWrapperTest/Program.cs +19 -0
  27. mosesdecoder/contrib/other-builds/OnDiskPt/.cproject +140 -0
  28. mosesdecoder/contrib/other-builds/OnDiskPt/.project +185 -0
  29. mosesdecoder/contrib/other-builds/OnDiskPt/OnDiskPt.project +140 -0
  30. mosesdecoder/contrib/other-builds/all.workspace +44 -0
  31. mosesdecoder/contrib/other-builds/cmake/boost.example/CMakeLists.txt +7 -0
  32. mosesdecoder/contrib/other-builds/consolidate/.cproject +165 -0
  33. mosesdecoder/contrib/other-builds/consolidate/.project +79 -0
  34. mosesdecoder/contrib/other-builds/consolidate/consolidate.project +137 -0
  35. mosesdecoder/contrib/other-builds/extractor/.cproject +144 -0
  36. mosesdecoder/contrib/other-builds/extractor/.project +607 -0
  37. mosesdecoder/contrib/other-builds/lm/lm.project +140 -0
  38. mosesdecoder/contrib/other-builds/moses-cmd/.cproject +187 -0
  39. mosesdecoder/contrib/other-builds/moses-cmd/.project +111 -0
  40. mosesdecoder/contrib/other-builds/moses-cmd/moses-cmd.project +153 -0
  41. mosesdecoder/contrib/other-builds/moses2-cmd/.project +44 -0
  42. mosesdecoder/contrib/other-builds/moses2/.cproject +145 -0
  43. mosesdecoder/contrib/other-builds/moses2/.project +1621 -0
  44. mosesdecoder/contrib/other-builds/moses2/moses2.sln +43 -0
  45. mosesdecoder/contrib/other-builds/moses2/moses2.vcxproj +592 -0
  46. mosesdecoder/contrib/other-builds/moses2/moses2.vcxproj.filters +768 -0
  47. mosesdecoder/contrib/other-builds/probingpt/.cproject +126 -0
  48. mosesdecoder/contrib/other-builds/probingpt/.project +34 -0
  49. mosesdecoder/contrib/other-builds/score/.cproject +153 -0
  50. mosesdecoder/contrib/other-builds/score/.project +106 -0
FacebookAI/xlm-roberta-large/onnx/model.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bb5a52503a3ef35247f5b5ae6c473aaae60505dd3ffaef56d7b69e2f84683c05
3
+ size 545850
mosesdecoder/contrib/mada/qsub-madamira.perl ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env perl
2
+
3
+ use warnings;
4
+ use strict;
5
+ use File::Slurp;
6
+ use File::Basename;
7
+ use Cwd 'abs_path';
8
+
9
+ my $splitDir = $ARGV[0];
10
+ $splitDir = abs_path($splitDir);
11
+
12
+ my @files = read_dir $splitDir;
13
+
14
+ my $qsubDir=dirname($splitDir) ."/qsub";
15
+ print STDERR "qsubDir=$qsubDir\n";
16
+ `mkdir -p $qsubDir`;
17
+
18
+ my $out2Dir=dirname($splitDir) ."/out2";
19
+ print STDERR "out2Dir=$out2Dir\n";
20
+ `mkdir -p $out2Dir`;
21
+
22
+ for my $file ( @files ) {
23
+ print STDERR "$file ";
24
+
25
+ my $qsubFile = "$qsubDir/$file.sh";
26
+ open(RUN_FILE, ">$qsubFile");
27
+
28
+ print RUN_FILE "#!/usr/bin/env bash\n"
29
+ ."#PBS -d/scratch/hh65/workspace/experiment/ar-en \n"
30
+ ."#PBS -l mem=5gb \n\n"
31
+ ."export PATH=\"/scratch/statmt/bin:/share/apps/NYUAD/perl/gcc_4.9.1/5.20.1/bin:/share/apps/NYUAD/jdk/1.8.0_31/bin:/share/apps/NYUAD/zlib/gcc_4.9.1/1.2.8/bin:/share/apps/NYUAD/cmake/gcc_4.9.1/3.1.0-rc3/bin:/share/apps/NYUAD/boost/gcc_4.9.1/openmpi_1.8.3/1.57.0/bin:/share/apps/NYUAD/openmpi/gcc_4.9.1/1.8.3/bin:/share/apps/NYUAD/python/gcc_4.9.1/2.7.9/bin:/share/apps/NYUAD/gcc/binutils/2.21/el6/bin:/share/apps/NYUAD/gcc/gcc/4.9.1/el6/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/bio/ncbi/bin:/opt/bio/mpiblast/bin:/opt/bio/EMBOSS/bin:/opt/bio/clustalw/bin:/opt/bio/tcoffee/bin:/opt/bio/hmmer/bin:/opt/bio/phylip/exe:/opt/bio/mrbayes:/opt/bio/fasta:/opt/bio/glimmer/bin:/opt/bio/glimmer/scripts:/opt/bio/gromacs/bin:/opt/bio/gmap/bin:/opt/bio/tigr/bin:/opt/bio/autodocksuite/bin:/opt/bio/wgs/bin:/opt/ganglia/bin:/opt/ganglia/sbin:/opt/bin:/usr/java/latest/bin:/opt/pdsh/bin:/opt/rocks/bin:/opt/rocks/sbin:/opt/torque/bin:/opt/torque/sbin:/home/hh65/bin:/home/hh65/bin\" \n"
32
+
33
+ ."module load NYUAD/2.0 \n"
34
+ ."module load gcc python/2.7.9 openmpi/1.8.3 boost cmake zlib jdk perl expat \n"
35
+
36
+ ."cd /scratch/statmt/MADAMIRA-release-20140709-1.0 \n";
37
+ print RUN_FILE "java -Xmx2500m -Xms2500m -XX:NewRatio=3 -jar /scratch/statmt/MADAMIRA-release-20140709-1.0/MADAMIRA.jar "
38
+ ."-rawinput $splitDir/$file -rawoutdir $out2Dir -rawconfig /scratch/statmt/MADAMIRA-release-20140709-1.0/samples/sampleConfigFile.xml \n";
39
+
40
+ close(RUN_FILE);
41
+
42
+ my $cmd = "qsub $qsubFile";
43
+ `$cmd`;
44
+
45
+ }
46
+
mosesdecoder/contrib/memscore/configure ADDED
The diff for this file is too large to render. See raw diff
 
mosesdecoder/contrib/memscore/m4/ax_boost_base.m4 ADDED
@@ -0,0 +1,223 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ===========================================================================
2
+ # http://autoconf-archive.cryp.to/ax_boost_base.html
3
+ # ===========================================================================
4
+ #
5
+ # SYNOPSIS
6
+ #
7
+ # AX_BOOST_BASE([MINIMUM-VERSION])
8
+ #
9
+ # DESCRIPTION
10
+ #
11
+ # Test for the Boost C++ libraries of a particular version (or newer)
12
+ #
13
+ # If no path to the installed boost library is given the macro searchs
14
+ # under /usr, /usr/local, /opt and /opt/local and evaluates the
15
+ # $BOOST_ROOT environment variable. Further documentation is available at
16
+ # <http://randspringer.de/boost/index.html>.
17
+ #
18
+ # This macro calls:
19
+ #
20
+ # AC_SUBST(BOOST_CPPFLAGS) / AC_SUBST(BOOST_LDFLAGS)
21
+ #
22
+ # And sets:
23
+ #
24
+ # HAVE_BOOST
25
+ #
26
+ # LAST MODIFICATION
27
+ #
28
+ # 2008-04-12
29
+ #
30
+ # COPYLEFT
31
+ #
32
+ # Copyright (c) 2008 Thomas Porschberg <thomas@randspringer.de>
33
+ #
34
+ # Copying and distribution of this file, with or without modification, are
35
+ # permitted in any medium without royalty provided the copyright notice
36
+ # and this notice are preserved.
37
+
38
+ AC_DEFUN([AX_BOOST_BASE],
39
+ [
40
+ AC_ARG_WITH([boost],
41
+ AS_HELP_STRING([--with-boost@<:@=DIR@:>@], [use boost (default is yes) - it is possible to specify the root directory for boost (optional)]),
42
+ [
43
+ if test "$withval" = "no"; then
44
+ want_boost="no"
45
+ elif test "$withval" = "yes"; then
46
+ want_boost="yes"
47
+ ac_boost_path=""
48
+ else
49
+ want_boost="yes"
50
+ ac_boost_path="$withval"
51
+ fi
52
+ ],
53
+ [want_boost="yes"])
54
+
55
+
56
+ AC_ARG_WITH([boost-libdir],
57
+ AS_HELP_STRING([--with-boost-libdir=LIB_DIR],
58
+ [Force given directory for boost libraries. Note that this will overwrite library path detection, so use this parameter only if default library detection fails and you know exactly where your boost libraries are located.]),
59
+ [
60
+ if test -d $withval
61
+ then
62
+ ac_boost_lib_path="$withval"
63
+ else
64
+ AC_MSG_ERROR(--with-boost-libdir expected directory name)
65
+ fi
66
+ ],
67
+ [ac_boost_lib_path=""]
68
+ )
69
+
70
+ if test "x$want_boost" = "xyes"; then
71
+ boost_lib_version_req=ifelse([$1], ,1.20.0,$1)
72
+ boost_lib_version_req_shorten=`expr $boost_lib_version_req : '\([[0-9]]*\.[[0-9]]*\)'`
73
+ boost_lib_version_req_major=`expr $boost_lib_version_req : '\([[0-9]]*\)'`
74
+ boost_lib_version_req_minor=`expr $boost_lib_version_req : '[[0-9]]*\.\([[0-9]]*\)'`
75
+ boost_lib_version_req_sub_minor=`expr $boost_lib_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
76
+ if test "x$boost_lib_version_req_sub_minor" = "x" ; then
77
+ boost_lib_version_req_sub_minor="0"
78
+ fi
79
+ WANT_BOOST_VERSION=`expr $boost_lib_version_req_major \* 100000 \+ $boost_lib_version_req_minor \* 100 \+ $boost_lib_version_req_sub_minor`
80
+ AC_MSG_CHECKING(for boostlib >= $boost_lib_version_req)
81
+ succeeded=no
82
+
83
+ dnl first we check the system location for boost libraries
84
+ dnl this location ist chosen if boost libraries are installed with the --layout=system option
85
+ dnl or if you install boost with RPM
86
+ if test "$ac_boost_path" != ""; then
87
+ BOOST_LDFLAGS="-L$ac_boost_path/lib"
88
+ BOOST_CPPFLAGS="-I$ac_boost_path/include"
89
+ else
90
+ for ac_boost_path_tmp in /usr /usr/local /opt /opt/local ; do
91
+ if test -d "$ac_boost_path_tmp/include/boost" && test -r "$ac_boost_path_tmp/include/boost"; then
92
+ BOOST_LDFLAGS="-L$ac_boost_path_tmp/lib"
93
+ BOOST_CPPFLAGS="-I$ac_boost_path_tmp/include"
94
+ break;
95
+ fi
96
+ done
97
+ fi
98
+
99
+ dnl overwrite ld flags if we have required special directory with
100
+ dnl --with-boost-libdir parameter
101
+ if test "$ac_boost_lib_path" != ""; then
102
+ BOOST_LDFLAGS="-L$ac_boost_lib_path"
103
+ fi
104
+
105
+ CPPFLAGS_SAVED="$CPPFLAGS"
106
+ CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
107
+ export CPPFLAGS
108
+
109
+ LDFLAGS_SAVED="$LDFLAGS"
110
+ LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
111
+ export LDFLAGS
112
+
113
+ AC_LANG_PUSH(C++)
114
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
115
+ @%:@include <boost/version.hpp>
116
+ ]], [[
117
+ #if BOOST_VERSION >= $WANT_BOOST_VERSION
118
+ // Everything is okay
119
+ #else
120
+ # error Boost version is too old
121
+ #endif
122
+ ]])],[
123
+ AC_MSG_RESULT(yes)
124
+ succeeded=yes
125
+ found_system=yes
126
+ ],[
127
+ ])
128
+ AC_LANG_POP([C++])
129
+
130
+
131
+
132
+ dnl if we found no boost with system layout we search for boost libraries
133
+ dnl built and installed without the --layout=system option or for a staged(not installed) version
134
+ if test "x$succeeded" != "xyes"; then
135
+ _version=0
136
+ if test "$ac_boost_path" != ""; then
137
+ if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
138
+ for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
139
+ _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
140
+ V_CHECK=`expr $_version_tmp \> $_version`
141
+ if test "$V_CHECK" = "1" ; then
142
+ _version=$_version_tmp
143
+ fi
144
+ VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
145
+ BOOST_CPPFLAGS="-I$ac_boost_path/include/boost-$VERSION_UNDERSCORE"
146
+ done
147
+ fi
148
+ else
149
+ for ac_boost_path in /usr /usr/local /opt /opt/local ; do
150
+ if test -d "$ac_boost_path" && test -r "$ac_boost_path"; then
151
+ for i in `ls -d $ac_boost_path/include/boost-* 2>/dev/null`; do
152
+ _version_tmp=`echo $i | sed "s#$ac_boost_path##" | sed 's/\/include\/boost-//' | sed 's/_/./'`
153
+ V_CHECK=`expr $_version_tmp \> $_version`
154
+ if test "$V_CHECK" = "1" ; then
155
+ _version=$_version_tmp
156
+ best_path=$ac_boost_path
157
+ fi
158
+ done
159
+ fi
160
+ done
161
+
162
+ VERSION_UNDERSCORE=`echo $_version | sed 's/\./_/'`
163
+ BOOST_CPPFLAGS="-I$best_path/include/boost-$VERSION_UNDERSCORE"
164
+ if test "$ac_boost_lib_path" = ""
165
+ then
166
+ BOOST_LDFLAGS="-L$best_path/lib"
167
+ fi
168
+
169
+ if test "x$BOOST_ROOT" != "x"; then
170
+ if test -d "$BOOST_ROOT" && test -r "$BOOST_ROOT" && test -d "$BOOST_ROOT/stage/lib" && test -r "$BOOST_ROOT/stage/lib"; then
171
+ version_dir=`expr //$BOOST_ROOT : '.*/\(.*\)'`
172
+ stage_version=`echo $version_dir | sed 's/boost_//' | sed 's/_/./g'`
173
+ stage_version_shorten=`expr $stage_version : '\([[0-9]]*\.[[0-9]]*\)'`
174
+ V_CHECK=`expr $stage_version_shorten \>\= $_version`
175
+ if test "$V_CHECK" = "1" -a "$ac_boost_lib_path" = "" ; then
176
+ AC_MSG_NOTICE(We will use a staged boost library from $BOOST_ROOT)
177
+ BOOST_CPPFLAGS="-I$BOOST_ROOT"
178
+ BOOST_LDFLAGS="-L$BOOST_ROOT/stage/lib"
179
+ fi
180
+ fi
181
+ fi
182
+ fi
183
+
184
+ CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
185
+ export CPPFLAGS
186
+ LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"
187
+ export LDFLAGS
188
+
189
+ AC_LANG_PUSH(C++)
190
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
191
+ @%:@include <boost/version.hpp>
192
+ ]], [[
193
+ #if BOOST_VERSION >= $WANT_BOOST_VERSION
194
+ // Everything is okay
195
+ #else
196
+ # error Boost version is too old
197
+ #endif
198
+ ]])],[
199
+ AC_MSG_RESULT(yes)
200
+ succeeded=yes
201
+ found_system=yes
202
+ ],[
203
+ ])
204
+ AC_LANG_POP([C++])
205
+ fi
206
+
207
+ if test "$succeeded" != "yes" ; then
208
+ if test "$_version" = "0" ; then
209
+ AC_MSG_ERROR([[We could not detect the boost libraries (version $boost_lib_version_req_shorten or higher). If you have a staged boost library (still not installed) please specify \$BOOST_ROOT in your environment and do not give a PATH to --with-boost option. If you are sure you have boost installed, then check your version number looking in <boost/version.hpp>. See http://randspringer.de/boost for more documentation.]])
210
+ else
211
+ AC_MSG_NOTICE([Your boost libraries seems to old (version $_version).])
212
+ fi
213
+ else
214
+ AC_SUBST(BOOST_CPPFLAGS)
215
+ AC_SUBST(BOOST_LDFLAGS)
216
+ AC_DEFINE(HAVE_BOOST,,[define if the Boost library is available])
217
+ fi
218
+
219
+ CPPFLAGS="$CPPFLAGS_SAVED"
220
+ LDFLAGS="$LDFLAGS_SAVED"
221
+ fi
222
+
223
+ ])
mosesdecoder/contrib/memscore/scorer.cpp ADDED
@@ -0,0 +1,402 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // memscore - in-memory phrase scoring for Statistical Machine Translation
2
+ // Christian Hardmeier, FBK-irst, Trento, 2010
3
+ // $Id$
4
+
5
+ #include <cassert>
6
+ #include <cstring>
7
+ #include <fstream>
8
+
9
+ #include "scorer-impl.h"
10
+ #include "timestamp.h"
11
+ #include "lexdecom.h"
12
+
13
+ #ifdef ENABLE_CHANNEL_SCORER
14
+ #include "channel-scorer.h"
15
+ #endif
16
+
17
+ const std::vector<String> &PhraseScorerFactory::scorer_list()
18
+ {
19
+ static std::vector<String> list;
20
+ if(list.size() == 0) {
21
+ list.push_back("ml - maximum likelihood score (relative frequency)");
22
+ list.push_back("wittenbell - Witten-Bell smoothing");
23
+ list.push_back("absdiscount - absolute discounting");
24
+ list.push_back("kndiscount1 - Knesser-Ney discounting");
25
+ list.push_back("kndiscount3 - modified Knesser-Ney discounting");
26
+ list.push_back("lexweights <weightfile> - lexical weights (Koehn et al., NAACL 2003)");
27
+ #ifdef ENABLE_CHANNEL_SCORER
28
+ list.push_back("channel <sigma> <srclm> <tgtlm> - channel adaptation");
29
+ #endif
30
+ list.push_back("const <constant> - constant phrase penalty");
31
+ list.push_back("lexdecomp <weightfile> - lexical decomposition smoothing");
32
+ }
33
+
34
+ return list;
35
+ }
36
+
37
+ PhraseScorer *PhraseScorerFactory::create_scorer(const char *argv[], int &argp, bool reverse)
38
+ {
39
+ const char *arg = argv[argp++];
40
+ if(arg == NULL)
41
+ usage();
42
+
43
+ if(!strcmp(arg, "ml"))
44
+ return MLPhraseScorer::create_scorer(argv, argp, reverse, *this);
45
+ else if(!strcmp(arg, "wittenbell"))
46
+ return WittenBellPhraseScorer::create_scorer(argv, argp, reverse, *this);
47
+ else if(!strcmp(arg, "absdiscount"))
48
+ return AbsoluteDiscountPhraseScorer::create_scorer(argv, argp, reverse, *this);
49
+ else if(!strcmp(arg, "kndiscount1"))
50
+ return KNDiscount1PhraseScorer::create_scorer(argv, argp, reverse, *this);
51
+ else if(!strcmp(arg, "kndiscount3"))
52
+ return KNDiscount3PhraseScorer::create_scorer(argv, argp, reverse, *this);
53
+ else if(!strcmp(arg, "lexweights"))
54
+ return LexicalWeightPhraseScorer::create_scorer(argv, argp, reverse, *this);
55
+ #ifdef ENABLE_CHANNEL_SCORER
56
+ else if(!strcmp(arg, "channel"))
57
+ return ChannelAdaptationPhraseScorer::create_scorer(argv, argp, reverse, *this);
58
+ #endif
59
+ else if(!strcmp(arg, "const"))
60
+ return ConstantPhraseScorer::create_scorer(argv, argp, reverse, *this);
61
+ else if (!strcmp(arg, "lexdecomp"))
62
+ return LexicalDecompositionPhraseScorer::create_scorer(argv, argp, reverse, *this);
63
+ else {
64
+ std::cerr << "Unknown phrase scorer type: " << arg << std::endl << std::endl;
65
+ usage();
66
+ }
67
+ }
68
+
69
+ PhraseScorer *MLPhraseScorer::create_scorer(const char *argv[], int &argp, bool reverse, const PhraseScorerFactory &ptf)
70
+ {
71
+ return new MLPhraseScorer(ptf.get_phrase_table(), reverse);
72
+ }
73
+
74
+ #if 1
75
+ void MLPhraseScorer::do_score_phrases() {}
76
+ #else
77
+ void MLPhraseScorer::do_score_phrases()
78
+ {
79
+ Score bla = 0;
80
+ Timestamp t_it;
81
+ for(Count i = 0; i < 200; i++) {
82
+ for(PhraseTable::iterator it = phrase_table_.begin(); it != phrase_table_.end(); ++it) {
83
+ PhrasePairInfo ppair = *it;
84
+ Phrase tgt = ppair.get_tgt();
85
+ bla += bla * ppair.get_count() / phrase_table_.get_tgt_phrase(tgt).get_count();
86
+ }
87
+ }
88
+ std::cerr << "Time for 200 iterations with ML estimation: " << (t_it.elapsed_time() / 1000) << " ms" << std::endl;
89
+ std::cerr << bla << std::endl;
90
+ }
91
+ #endif
92
+
93
+ Score MLPhraseScorer::do_get_score(const PhraseTable::const_iterator &it)
94
+ {
95
+ PhraseInfo &tgt_phrase = phrase_table_.get_tgt_phrase(it->get_tgt());
96
+ return static_cast<Score>(it->get_count()) / tgt_phrase.get_count();
97
+ }
98
+
99
+ PhraseScorer *WittenBellPhraseScorer::create_scorer(const char *argv[], int &argp, bool reverse, const PhraseScorerFactory &ptf)
100
+ {
101
+ return new WittenBellPhraseScorer(ptf.get_phrase_table(), reverse);
102
+ }
103
+
104
+ Score WittenBellPhraseScorer::do_get_score(const PhraseTable::const_iterator &it)
105
+ {
106
+ PhraseInfo &tgt_phrase = phrase_table_.get_tgt_phrase(it->get_tgt());
107
+ return static_cast<Score>(it->get_count()) / (tgt_phrase.get_count() + tgt_phrase.get_distinct());
108
+ }
109
+
110
+
111
+ PhraseScorer *AbsoluteDiscountPhraseScorer::create_scorer(const char *argv[], int &argp, bool reverse, const PhraseScorerFactory &ptf)
112
+ {
113
+ return new AbsoluteDiscountPhraseScorer(ptf.get_phrase_table(), reverse);
114
+ }
115
+ // p(s|t) = (c(s,t) - beta) / c(t) <-- absolute discounting
116
+
117
+ void AbsoluteDiscountPhraseScorer::do_score_phrases()
118
+ {
119
+ Count n1 = 0, n2 = 0;
120
+
121
+ for(PhraseTable::iterator it = phrase_table_.begin(); it != phrase_table_.end(); ++it) {
122
+ PhrasePairInfo ppinfo = *it;
123
+ Count c = ppinfo.get_count();
124
+ switch(c) {
125
+ case 1:
126
+ n1++;
127
+ break;
128
+ case 2:
129
+ n2++;
130
+ }
131
+ }
132
+
133
+ discount_ = static_cast<Score>(n1) / (n1 + 2*n2);
134
+ }
135
+
136
+ inline Score AbsoluteDiscountPhraseScorer::get_discount()
137
+ {
138
+ return discount_;
139
+ }
140
+
141
+ Score AbsoluteDiscountPhraseScorer::do_get_score(const PhraseTable::const_iterator &it)
142
+ {
143
+ PhraseInfo &tgt_phrase = phrase_table_.get_tgt_phrase(it->get_tgt());
144
+ return (it->get_count() - discount_) / tgt_phrase.get_count();
145
+ }
146
+
147
+ PhraseScorer *KNDiscount1PhraseScorer::create_scorer(const char *argv[], int &argp, bool reverse, const PhraseScorerFactory &ptf)
148
+ {
149
+ return new KNDiscount1PhraseScorer(ptf.get_phrase_table(), reverse);
150
+ }
151
+
152
+
153
+ void KNDiscount1PhraseScorer::do_score_phrases()
154
+ {
155
+ Count n1 = 0, n2 = 0;
156
+ Count total_count = 0;
157
+
158
+ for(PhraseTable::iterator it = phrase_table_.begin(); it != phrase_table_.end(); ++it) {
159
+ PhrasePairInfo ppinfo = *it;
160
+ PhraseInfo &tgt_phrase = phrase_table_.get_tgt_phrase(it->get_tgt());
161
+ total_count += tgt_phrase.get_count();
162
+
163
+ Count c = ppinfo.get_count();
164
+ switch(c) {
165
+ case 1:
166
+ n1++;
167
+ break;
168
+ case 2:
169
+ n2++;
170
+ }
171
+ }
172
+
173
+ discount_ = static_cast<Score>(n1) / (n1 + 2*n2);
174
+ total_count_ = static_cast<Count>(total_count);
175
+
176
+ }
177
+
178
+ Score KNDiscount1PhraseScorer::do_get_score(const PhraseTable::const_iterator &it)
179
+ {
180
+ PhraseInfo &tgt_phrase = phrase_table_.get_tgt_phrase(it->get_tgt());
181
+ PhraseInfo &src_phrase = phrase_table_.get_src_phrase(it->get_src());
182
+ return ((it->get_count() - discount_) / tgt_phrase.get_count()) + (discount_ * tgt_phrase.get_distinct() / tgt_phrase.get_count())*(src_phrase.get_count() / total_count_);
183
+ }
184
+
185
+ PhraseScorer *KNDiscount3PhraseScorer::create_scorer(const char *argv[], int &argp, bool reverse, const PhraseScorerFactory &ptf)
186
+ {
187
+ return new KNDiscount3PhraseScorer(ptf.get_phrase_table(), reverse);
188
+ }
189
+
190
+
191
+ void KNDiscount3PhraseScorer::do_score_phrases()
192
+ {
193
+ Count n1 = 0, n2 = 0, n3 = 0, n4 = 0;
194
+ Count total_count = 0; //total number of source or target phrases (including repetitions)
195
+ Count total_distinct_n1 = 0; //sum_{s} n1plus(s,*)
196
+ Count total_distinct_n2 = 0;
197
+ Count total_distinct_n3plus = 0;
198
+ Score y;
199
+
200
+ for(PhraseTable::iterator it = phrase_table_.begin(); it != phrase_table_.end(); ++it) {
201
+ PhrasePairInfo ppinfo = *it;
202
+ PhraseInfo &src_phrase = phrase_table_.get_src_phrase(it->get_src());
203
+ PhraseInfo &tgt_phrase = phrase_table_.get_tgt_phrase(it->get_tgt());
204
+
205
+ total_count += src_phrase.get_count();
206
+
207
+ Count c = ppinfo.get_count();
208
+ switch(c) {
209
+ case 1:
210
+ n1++;
211
+ tgt_phrase.inc_n1();
212
+ src_phrase.inc_n1();
213
+ total_distinct_n1++;
214
+ break;
215
+ case 2:
216
+ n2++;
217
+ tgt_phrase.inc_n2();
218
+ src_phrase.inc_n2();
219
+ total_distinct_n2++;
220
+ break;
221
+ case 3:
222
+ n3++;
223
+ tgt_phrase.inc_n3plus();
224
+ src_phrase.inc_n3plus();
225
+ total_distinct_n3plus++;
226
+ break;
227
+ case 4:
228
+ n4++;
229
+ tgt_phrase.inc_n3plus();
230
+ src_phrase.inc_n3plus();
231
+ total_distinct_n3plus++;
232
+ }
233
+
234
+ }
235
+
236
+ y = (Score)(n1) / (n1 + 2*n2);
237
+ discount1_ = static_cast<Score> (1) - (2)*(y)*(n2 / n1);
238
+ discount2_ = static_cast<Score> (2) - (3)*(y)*(n3 / n2);
239
+ discount3plus_ = static_cast<Score> (3) - (4)*(y)*(n4 / n3);
240
+ total_distinct_n1_ = static_cast<Count>(total_distinct_n1);
241
+ total_distinct_n2_ = static_cast<Count>(total_distinct_n2);
242
+ total_distinct_n3plus_ = static_cast<Count>(total_distinct_n3plus);
243
+ }
244
+
245
+ Score KNDiscount3PhraseScorer::do_get_score(const PhraseTable::const_iterator &it)
246
+ {
247
+ PhrasePairInfo ppinfo = *it;
248
+ PhraseInfo &tgt_phrase = phrase_table_.get_tgt_phrase(it->get_tgt());
249
+ PhraseInfo &src_phrase = phrase_table_.get_src_phrase(it->get_src());
250
+
251
+ Score norm = (discount1_ * tgt_phrase.get_n1() + discount2_ * tgt_phrase.get_n2() + discount3plus_ * tgt_phrase.get_n3plus()) / tgt_phrase.get_count();
252
+ Count c = ppinfo.get_count();
253
+ switch(c) {
254
+ case 1:
255
+ return ((it->get_count() - discount1_) / tgt_phrase.get_count()) + \
256
+ norm*(src_phrase.get_n1() / total_distinct_n1_);
257
+ break;
258
+ case 2:
259
+ return ((it->get_count() - discount2_) / tgt_phrase.get_count()) + \
260
+ norm*(src_phrase.get_n2() / total_distinct_n2_);
261
+ break;
262
+ default:
263
+ return ((it->get_count() - discount3plus_) / tgt_phrase.get_count()) + \
264
+ norm*(src_phrase.get_n3plus() / total_distinct_n3plus_);
265
+ }
266
+ }
267
+
268
+ PhraseScorer *LexicalWeightPhraseScorer::create_scorer(const char *argv[], int &argp, bool reverse, const PhraseScorerFactory &ptf)
269
+ {
270
+ bool overall_max = true;
271
+
272
+ if(argv[argp] == NULL)
273
+ usage();
274
+
275
+ if(!strcmp(argv[argp], "-AlignmentCount")) {
276
+ overall_max = false;
277
+ argp++;
278
+ if(argv[argp] == NULL)
279
+ usage();
280
+ }
281
+
282
+ String lwfile(argv[argp++]);
283
+ return new LexicalWeightPhraseScorer(ptf.get_phrase_table(), reverse, lwfile, overall_max);
284
+ }
285
+
286
+ LexicalWeightPhraseScorer::LexicalWeightPhraseScorer(PhraseTable &pd, bool reverse, const String &weightfile, bool overall_max) :
287
+ PhraseScorer(pd, reverse), overall_max_score_(overall_max), null_word_(PhraseText::index_word("NULL"))
288
+ {
289
+ std::ifstream wfile(weightfile.c_str());
290
+
291
+ while(!wfile.eof()) {
292
+ if(wfile.fail()) {
293
+ std::cerr << "Problem reading file: " << weightfile << std::endl;
294
+ exit(1);
295
+ }
296
+
297
+ String src, tgt;
298
+ Score weight;
299
+
300
+ wfile >> src >> tgt >> weight;
301
+ Count src_id = PhraseText::index_word(src);
302
+ Count tgt_id = PhraseText::index_word(tgt);
303
+ weight_map_.insert(std::make_pair(std::make_pair(src_id, tgt_id), weight));
304
+ }
305
+
306
+ wfile.close();
307
+ }
308
+
309
+ Score LexicalWeightPhraseScorer::get_weight(const String &s_src, const String &s_tgt) const
310
+ {
311
+ Count src = PhraseText::index_word(s_src);
312
+ Count tgt = PhraseText::index_word(s_tgt);
313
+ return get_weight(src, tgt);
314
+ }
315
+
316
+ inline Score LexicalWeightPhraseScorer::get_weight(Count src, Count tgt) const
317
+ {
318
+ WeightMapType_::const_iterator it = weight_map_.find(std::make_pair(src, tgt));
319
+ if(it == weight_map_.end())
320
+ return 0.00001; // default value copied from Philipp Koehn's scorer
321
+ return it->second;
322
+ }
323
+
324
+ #if 1
325
+ void LexicalWeightPhraseScorer::do_score_phrases() {}
326
+ #else
327
+ void LexicalWeightPhraseScorer::do_score_phrases()
328
+ {
329
+ Score bla = 0;
330
+ Timestamp t_it;
331
+ for(Count i = 0; i < 200; i++) {
332
+ for(PhraseTable::iterator it = phrase_table_.begin(); it != phrase_table_.end(); ++it) {
333
+ PhrasePairInfo ppair = *it;
334
+ Phrase src = ppair.get_src();
335
+ Phrase tgt = ppair.get_tgt();
336
+ bla += bla * get_score(src, tgt);
337
+ }
338
+ }
339
+ std::cerr << "Time for 200 iterations with lexical weights: " << (t_it.elapsed_time() / 1000) << " ms" << std::endl;
340
+ std::cerr << bla << std::endl;
341
+ }
342
+ #endif
343
+
344
+ Score LexicalWeightPhraseScorer::do_get_score(const PhraseTable::const_iterator &it)
345
+ {
346
+ const Phrase src = it->get_src();
347
+ const Phrase tgt = it->get_tgt();
348
+ const PhraseText &src_phrase = phrase_table_.get_src_phrase(src).get_phrase();
349
+ const PhraseText &tgt_phrase = phrase_table_.get_tgt_phrase(tgt).get_phrase();
350
+ const PhrasePairInfo &ppair = *it;
351
+
352
+ Count max_count = 0;
353
+
354
+ Score maxlex = 0;
355
+ PhrasePairInfo::AlignmentVector av = ppair.get_alignments();
356
+ for(PhrasePairInfo::AlignmentVector::const_iterator it = av.begin(); it != av.end(); ++it) {
357
+ const PhraseAlignment &alig = it->first;
358
+ const Count alig_cnt = it->second;
359
+
360
+ assert(alig.get_source_length() == src_phrase.size() && alig.get_target_length() == tgt_phrase.size());
361
+
362
+ if(!overall_max_score_ && alig_cnt < max_count)
363
+ continue;
364
+ max_count = alig_cnt;
365
+
366
+ Score lex = 1;
367
+ for(Count s = 0; s < src_phrase.size(); s++) {
368
+ Score factor = 0;
369
+ Count na = 0;
370
+ for(Count t = 0; t < tgt_phrase.size(); t++)
371
+ if(alig.is_aligned(s, t)) {
372
+ const Score w = get_weight(src_phrase[s], tgt_phrase[t]);
373
+ factor += w;
374
+ na++;
375
+ }
376
+
377
+ if(na > 0)
378
+ lex *= factor / na;
379
+ else
380
+ lex *= get_weight(src_phrase[s], null_word_);
381
+ }
382
+
383
+ if(lex > maxlex)
384
+ maxlex = lex;
385
+ }
386
+
387
+ return maxlex;
388
+ }
389
+
390
+ PhraseScorer *ConstantPhraseScorer::create_scorer(const char *argv[], int &argp, bool reverse, const PhraseScorerFactory &ptf)
391
+ {
392
+ if(argv[argp] == NULL)
393
+ usage();
394
+ Score c = atof(argv[argp++]);
395
+ return new ConstantPhraseScorer(ptf.get_phrase_table(), reverse, c);
396
+ }
397
+
398
+ Score ConstantPhraseScorer::do_get_score(const PhraseTable::const_iterator &it)
399
+ {
400
+ return constant_;
401
+ }
402
+
mosesdecoder/contrib/memscore/statistic.h ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // memscore - in-memory phrase scoring for Statistical Machine Translation
2
+ // Christian Hardmeier, FBK-irst, Trento, 2010
3
+ // $Id$
4
+
5
+ #ifndef STATISTIC_H
6
+ #define STATISTIC_H
7
+
8
+ #include "memscore.h"
9
+
10
+ class PhraseInfoList;
11
+
12
+ class PhraseStatistic
13
+ {
14
+ protected:
15
+ bool computation_done_;
16
+
17
+ public:
18
+ PhraseStatistic() : computation_done_(false) {}
19
+ virtual ~PhraseStatistic() {}
20
+
21
+ virtual void attach(PhraseInfoList &pilist) = 0;
22
+ virtual void compute_statistic() = 0;
23
+ virtual Score get_score(PhraseInfo &pi) = 0;
24
+ };
25
+
26
+ #endif
mosesdecoder/contrib/mert-sge-nosync/README ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ MERT-sge-nosync
2
+ Raymond Ng, University of Sheffield.
3
+ Apr, 2014.
4
+
5
+ The parallel MERT tuning scripts in moses cannot run in the SGE "no-sync" mode (where job submission is done in one go, after which user can go offline while leaving the SGE to manage the whole process). Scripts provided in this site are for parallel MERT in SGE no-sync mode. You will need to have SSH support in perl (Step 2), and set up public ssh-keys between the running hosts and the submission hosts (Step 3).
6
+
7
+ 1. Untar the scipts in ${MOSES}/scripts/
8
+
9
+ 2. Download and install OpenSSH packages for perl:
10
+ Net-OpenSSH-Compat (http://search.cpan.org/CPAN/authors/id/S/SA/SALVA/Net-OpenSSH-Compat-0.06.tar.gz)
11
+ $ cd Net-OpenSSH-Compat-0.06
12
+ $ perl Makefile.PL
13
+ (You may have dependency issue and need to install IO-Tty and Net-OpenSSH in advance)
14
+ IO-Tty-1.10 (http://search.cpan.org/CPAN/authors/id/T/TO/TODDR/IO-Tty-1.10.tar.gz)
15
+ Net-OpenSSH-0.60 (http://search.cpan.org/CPAN/authors/id/S/SA/SALVA/Net-OpenSSH-0.60.tar.gz)
16
+
17
+ 3. Set up public ssh-keys for accessing the submithost (machine from which qsub is executed) from the running hosts (machines which actually runs the scripts)
18
+ http://www.linuxproblem.org/art_9.html
19
+
20
+ 4. Run parallel MERT by
21
+ nohup nice ${MOSES}/scripts/training/mert-moses-sge-nosync.pl ${TM_DEVTEXT_SOURCE} \
22
+ --threads 20 --jobs 20 \
23
+ --queue-flags='-q normal.q -P project' \
24
+ --submithost='squeal' \
25
+ ${TM_DEVTEXT_TARGET} ${MOSES}/dist/bin/moses ${WORKINGDIR}/train/model/moses.ini \
26
+ --mertdir ${MOSES}/dist/bin/ >& ${WORKINGDIR}/mert.out
27
+
28
+
29
+ (tested on moses version Built Apr 2012 version)
mosesdecoder/contrib/mert-sge-nosync/generic/moses-parallel-sge-nosync.pl ADDED
@@ -0,0 +1,1388 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #! /usr/bin/perl
2
+
3
+ # $Id$
4
+ #######################
5
+ # Revision history
6
+ #
7
+ # 02 Aug 2006 added strict requirement
8
+ # 01 Aug 2006 fix bug about inputfile parameter
9
+ # fix bug about suffix index generation
10
+ # 31 Jul 2006 added parameter for reading queue parameters
11
+ # 29 Jul 2006 added code to handling consfusion networks
12
+ # 28 Jul 2006 added a better policy for removing jobs from the queue in case of killing signal (CTRL-C)
13
+ # added the parameter -qsub-prefix which sets the prefix for the name of submitted jobs
14
+ # 27 Jul 2006 added safesystem() function and other checks to handle with process failure
15
+ # added checks for existence of decoder and configuration file
16
+ # 26 Jul 2006 fix a bug related to the use of absolute path for srcfile and nbestfile
17
+
18
+ use strict;
19
+ use Net::OpenSSH::Compat::Perl;
20
+
21
+
22
+ #######################
23
+ #Customizable parameters
24
+
25
+ #parameters for submiiting processes through Sun GridEngine
26
+ my $submithost = undef;
27
+ my $queueparameters="";
28
+ my $batch_and_join = undef;
29
+ my $processid="$$";
30
+
31
+ # look for the correct pwdcmd
32
+ my $pwdcmd = getPwdCmd();
33
+
34
+ my $workingdir = `$pwdcmd`; chomp $workingdir;
35
+ my $tmpdir="$workingdir/tmp$$";
36
+ my $splitpfx="split$$";
37
+
38
+
39
+ $SIG{'INT'} = \&kill_all_and_quit; # catch exception for CTRL-C
40
+
41
+ #######################
42
+ #Default parameters
43
+ my $jobscript="$workingdir/job$$";
44
+ my $qsubout="$workingdir/out.job$$";
45
+ my $qsuberr="$workingdir/err.job$$";
46
+
47
+ my $mosesparameters="";
48
+ my $feed_moses_via_stdin = 0;
49
+ # a workaround, for a reason, the default "-input-file X" blocks
50
+ # my moses, while "< X" works fine.
51
+ my $cfgfile=""; #configuration file
52
+
53
+ my $version=undef;
54
+ my $help=0;
55
+ my $dbg=0;
56
+ my $jobs=4;
57
+ my $mosescmd="$ENV{MOSESBIN}/moses"; #decoder in use
58
+ my $inputlist=undef;
59
+ my $inputfile=undef;
60
+ my $inputtype=0;
61
+ my @nbestlist=();
62
+ my $nbestlist=undef;
63
+ my $nbestfile=undef;
64
+ my $oldnbestfile=undef;
65
+ my $oldnbest=undef;
66
+ my $nbestflag=0;
67
+ my @wordgraphlist=();
68
+ my $wordgraphlist=undef;
69
+ my $wordgraphfile=undef;
70
+ my $wordgraphflag=0;
71
+ my $robust=5; # resubmit crashed jobs robust-time
72
+ my $alifile=undef;
73
+ my $outnbest=undef;
74
+ my $logfile="";
75
+ my $logflag="";
76
+ my $searchgraphlist="";
77
+ my $searchgraphfile="";
78
+ my $searchgraphflag=0;
79
+ my $qsubname="MOSES";
80
+ my $qsubwrapper=undef;
81
+ my $qsubwrapper_exit=undef;
82
+ my $old_sge = 0; # assume old Sun Grid Engine (<6.0) where qsub does not
83
+ # implement -sync and -b
84
+ my $___LATTICE_SAMPLES = 0;
85
+ my $___DECODER_FLAGS = ""; # additional parameters to pass to the decoder
86
+ my $___N_BEST_LIST_SIZE = 100;
87
+ my $___RANGES = undef;
88
+ my $___WORKING_DIR = undef;
89
+ my $SCRIPTS_ROOTDIR = undef;
90
+ my $postdecodecmd = undef;
91
+ my $postdecodeargs = undef;
92
+
93
+
94
+ my $run = 0;
95
+ my $jobid = -1;
96
+ my $prevjid = undef;
97
+ my $need_to_normalize = 1;
98
+
99
+ #######################
100
+ # Command line options processing
101
+ sub init(){
102
+
103
+
104
+
105
+ use Getopt::Long qw(:config pass_through no_ignore_case permute);
106
+ GetOptions('version'=>\$version,
107
+ 'help'=>\$help,
108
+ 'debug'=>\$dbg,
109
+ 'jobs=i'=>\$jobs,
110
+ 'decoder=s'=> \$mosescmd,
111
+ 'robust=i' => \$robust,
112
+ 'script-rootdir=s' => \$SCRIPTS_ROOTDIR,
113
+ 'lattice-samples=i' => \$___LATTICE_SAMPLES,
114
+ 'decoder-flags=s' => \$___DECODER_FLAGS,
115
+ 'feed-decoder-via-stdin'=> \$feed_moses_via_stdin,
116
+ 'logfile=s'=> \$logfile,
117
+ 'i|inputfile|input-file=s'=> \$inputlist,
118
+ 'n-best-list-size=s'=> \$___N_BEST_LIST_SIZE,
119
+ 'n-best-file=s'=> \$oldnbestfile,
120
+ 'n-best-size=i'=> \$oldnbest,
121
+ 'output-search-graph|osg=s'=> \$searchgraphlist,
122
+ 'output-word-graph|owg=s'=> \$wordgraphlist,
123
+ 'alignment-output-file=s'=> \$alifile,
124
+ 'submithost=s'=> \$submithost,
125
+ 'queue-parameters=s'=> \$queueparameters,
126
+ 'inputtype=i'=> \$inputtype,
127
+ 'config|f=s'=>\$cfgfile,
128
+ 'ranges=s@'=> \$___RANGES,
129
+ 'old-sge' => \$old_sge,
130
+ 'run=i' => \$run,
131
+ 'need-to-normalize' => \$need_to_normalize,
132
+ 'working-dir=s' => \$___WORKING_DIR,
133
+ 'qsubwrapper=s' => \$qsubwrapper,
134
+ 'qsubwrapper-exit=s' => \$qsubwrapper_exit
135
+ ) or exit(1);
136
+
137
+ # 'decoder-parameters=s'=> \$mosesparameters,
138
+ # 'n-best-list=s'=> \$nbestlist,
139
+ # 'qsub-prefix=s'=> \$qsubname,
140
+ }
141
+
142
+ sub init_secondpart() {
143
+ getNbestParameters();
144
+
145
+ getSearchGraphParameters();
146
+
147
+ getWordGraphParameters();
148
+
149
+ getLogParameters();
150
+
151
+ chomp(my $my_username = `whoami`);
152
+ # $submithost = "squeal";
153
+
154
+ print STDERR "submithost is $submithost\n";
155
+
156
+ my $prevjid = undef;
157
+ my $jobid = undef;
158
+
159
+ #print_parameters();
160
+ #print STDERR "nbestflag:$nbestflag\n";
161
+ #print STDERR "searchgraphflag:$searchgraphflag\n";
162
+ print STDERR "wordgraphflag:$wordgraphflag\n";
163
+ #print STDERR "inputlist:$inputlist\n";
164
+
165
+ chomp($inputfile=`basename $inputlist`) if defined($inputlist);
166
+
167
+ # $mosesparameters.="@ARGV -config $cfgfile -inputtype $inputtype";
168
+ # $mosesparameters = "@ARGV -config $cfgfile -inputtype $inputtype ";
169
+ # $mosesparameters .= "@ARGV -config $cfgfile -inputtype $inputtype ";
170
+ $mosesparameters .= " -config $cfgfile -inputtype $inputtype ";
171
+
172
+ }
173
+
174
+
175
+ #######################
176
+ ##print version
177
+ sub version(){
178
+ # print STDERR "version 1.0 (15-07-2006)\n";
179
+ # print STDERR "version 1.1 (17-07-2006)\n";
180
+ # print STDERR "version 1.2 (18-07-2006)\n";
181
+ # print STDERR "version 1.3 (21-07-2006)\n";
182
+ # print STDERR "version 1.4 (26-07-2006)\n";
183
+ # print STDERR "version 1.5 (27-07-2006)\n";
184
+ # print STDERR "version 1.6 (28-07-2006)\n";
185
+ # print STDERR "version 1.7 (29-07-2006)\n";
186
+ # print STDERR "version 1.8 (31-07-2006)\n";
187
+ # print STDERR "version 1.9 (01-08-2006)\n";
188
+ # print STDERR "version 1.10 (02-08-2006)\n";
189
+ # print STDERR "version 1.11 (10-10-2006)\n";
190
+ # print STDERR "version 1.12 (27-12-2006)\n";
191
+ # print STDERR "version 1.13 (29-12-2006)\n";
192
+ print STDERR "version 1.13b (01-04-2014)\n";
193
+ exit(1);
194
+ }
195
+
196
+ #usage
197
+ sub usage(){
198
+ print STDERR "moses-parallel.pl [parallel-options] [moses-options]\n";
199
+ print STDERR "Options marked (*) are required.\n";
200
+ print STDERR "Parallel options:\n";
201
+ print STDERR "* -decoder <file> Moses decoder to use\n";
202
+ print STDERR "* -i|inputfile|input-file <file> the input text to translate\n";
203
+ print STDERR "* -jobs <N> number of required jobs\n";
204
+ print STDERR " -logfile <file> file where storing log files of all jobs\n";
205
+ print STDERR " -queue-parameters <string> specific requirements for queue\n";
206
+ print STDERR " -old-sge Assume Sun Grid Engine < 6.0\n";
207
+ print STDERR " -debug debug\n";
208
+ print STDERR " -version print version of the script\n";
209
+ print STDERR " -help this help\n";
210
+ print STDERR "Moses options:\n";
211
+ print STDERR " -inputtype <0|1|2> 0 for text, 1 for confusion networks, 2 for lattices\n";
212
+ print STDERR " -output-search-graph (osg) <file>: Output connected hypotheses of search into specified filename\n";
213
+ print STDERR " -output-word-graph (osg) '<file> <0|1>': Output stack info as word graph. Takes filename, 0=only hypos in stack, 1=stack + nbest hypos\n";
214
+ print STDERR " IMPORTANT NOTE: use single quote to group parameters of -output-word-graph\n";
215
+ print STDERR " This is different from standard moses\n";
216
+ print STDERR " -lattice-samples : how many lattice samples (Chatterjee & Cancedda, emnlp 2010) (added option in moses-parallel-sge-nosync)\n";
217
+ print STDERR " -n-best-list-size <N> : size of nbest lists (added option in moses-parallel-sge-nosync)\n";
218
+ print STDERR " NOTE: -n-best-file-n-best-size are passed to the decoder as \"-n-best-list <file> <N>\"\n";
219
+ print STDERR " -decoder-flags : (added option is moses-parallel-sge-nosync)\n";
220
+ print STDERR " -ranges : (added option is moses-parallel-sge-nosync)\n";
221
+ print STDERR " -run : (add option in moses-parallel-sge-nosync)\n";
222
+ print STDERR "* -config (f) <cfgfile> configuration file\n";
223
+ print STDERR "All other options are passed to Moses\n";
224
+ print STDERR " (This way to pass parameters is maintained for back compatibility\n";
225
+ print STDERR " but preferably use -decoder-parameters)\n";
226
+ exit(1);
227
+ }
228
+
229
+
230
+
231
+
232
+
233
+ #printparameters
234
+ sub print_parameters(){
235
+ print STDERR "Inputfile: $inputlist\n";
236
+ print STDERR "Configuration file: $cfgfile\n";
237
+ print STDERR "Decoder in use: $mosescmd\n";
238
+ print STDERR "Number of jobs:$jobs\n";
239
+ print STDERR "Nbest list: $nbestlist\n" if ($nbestflag);
240
+ print STDERR "Output Search Graph: $searchgraphlist\n" if ($searchgraphflag);
241
+ print STDERR "Output Word Graph: $wordgraphlist\n" if ($wordgraphflag);
242
+ print STDERR "LogFile:$logfile\n" if ($logflag);
243
+ print STDERR "Qsub name: $qsubname\n";
244
+ print STDERR "Queue parameters: $queueparameters\n";
245
+ print STDERR "Inputtype: text\n" if $inputtype == 0;
246
+ print STDERR "Inputtype: confusion network\n" if $inputtype == 1;
247
+ print STDERR "Inputtype: lattices\n" if $inputtype == 2;
248
+
249
+ print STDERR "parameters directly passed to Moses: $mosesparameters\n";
250
+ }
251
+
252
+ #get parameters for log file
253
+ sub getLogParameters(){
254
+ if ($logfile){ $logflag=1; }
255
+ }
256
+
257
+ #get parameters for nbest computation (possibly from configuration file)
258
+ sub getNbestParameters(){
259
+ if (!$nbestlist){
260
+ open (CFG, "$cfgfile");
261
+ while (chomp($_=<CFG>)){
262
+ if (/^\[n-best-list\]/){
263
+ my $tmp;
264
+ while (chomp($tmp=<CFG>)){
265
+ last if $tmp eq "" || $tmp=~/^\[/;
266
+ $nbestlist .= "$tmp ";
267
+ }
268
+ last;
269
+ }
270
+ }
271
+ close(CFG);
272
+ }
273
+
274
+ if ($nbestlist){
275
+ if ($oldnbestfile){
276
+ print STDERR "There is a conflict between NEW parameter -n-best-list and OBSOLETE parameter -n-best-file\n";
277
+ print STDERR "Please use only -nbest-list '<file> <N> [distinct]\n";
278
+ exit;
279
+ }
280
+ }
281
+ else{
282
+ if ($oldnbestfile){
283
+ print STDERR "You are using the OBSOLETE parameter -n-best-file\n";
284
+ print STDERR "Next time please use only -n-best-list '<file> <N> [distinct]\n";
285
+ $nbestlist="$oldnbestfile";
286
+ if ($oldnbest){ $nbestlist.=" $oldnbest"; }
287
+ else { $nbestlist.=" 1"; }
288
+ }
289
+ }
290
+
291
+ if ($nbestlist){
292
+ my @tmp=split(/[ \t]+/,$nbestlist);
293
+ @nbestlist = @tmp;
294
+
295
+ if ($nbestlist[0] eq '-'){ $nbestfile="nbest"; }
296
+ else{ chomp($nbestfile=`basename $nbestlist[0]`); }
297
+ $nbestflag=1;
298
+ }
299
+ print STDERR "getNbest\n";
300
+ print STDERR "nbestflag = $nbestflag\n";
301
+ print STDERR "nbestfile = $nbestfile\n";
302
+
303
+
304
+ }
305
+
306
+ #get parameters for search graph computation (possibly from configuration file)
307
+ sub getSearchGraphParameters(){
308
+ if (!$searchgraphlist){
309
+ open (CFG, "$cfgfile");
310
+ while (chomp($_=<CFG>)){
311
+ if (/^\[output-search-graph\]/ || /^\[osg\]/){
312
+ my $tmp;
313
+ while (chomp($tmp=<CFG>)){
314
+ last if $tmp eq "" || $tmp=~/^\[/;
315
+ $searchgraphlist = "$tmp";
316
+ }
317
+ last;
318
+ }
319
+ }
320
+ close(CFG);
321
+ }
322
+ if ($searchgraphlist){
323
+ if ($searchgraphlist eq '-'){ $searchgraphfile="searchgraph"; }
324
+ else{ chomp($searchgraphfile=`basename $searchgraphlist`); }
325
+ $searchgraphflag=1;
326
+ }
327
+ }
328
+
329
+ #get parameters for word graph computation (possibly from configuration file)
330
+ sub getWordGraphParameters(){
331
+ if (!$wordgraphlist){
332
+ open (CFG, "$cfgfile");
333
+ while (chomp($_=<CFG>)){
334
+ if (/^\[output-word-graph\]/ || /^\[owg\]/){
335
+ my $tmp;
336
+ while (chomp($tmp=<CFG>)){
337
+ last if $tmp eq "" || $tmp=~/^\[/;
338
+ $wordgraphlist .= "$tmp ";
339
+ }
340
+ last;
341
+ }
342
+ }
343
+ close(CFG);
344
+ }
345
+ if ($wordgraphlist){
346
+ my @tmp=split(/[ \t]+/,$wordgraphlist);
347
+ @wordgraphlist = @tmp;
348
+
349
+ if ($wordgraphlist[0] eq '-'){ $wordgraphfile="wordgraph"; }
350
+ else{ chomp($wordgraphfile=`basename $wordgraphlist[0]`); }
351
+ $wordgraphflag=1;
352
+ }
353
+ }
354
+
355
+ sub sanity_check_order_of_lambdas {
356
+ my $featlist = shift;
357
+ my $filename_or_stream = shift;
358
+
359
+ my @expected_lambdas = @{$featlist->{"names"}};
360
+ my @got = get_order_of_scores_from_nbestlist($filename_or_stream);
361
+ die "Mismatched lambdas. Decoder returned @got, we expected @expected_lambdas"
362
+ if "@got" ne "@expected_lambdas";
363
+ }
364
+
365
+
366
+
367
+
368
+ #######################
369
+ #Script starts here
370
+
371
+ init();
372
+
373
+ print "I have started parallel moses!!";
374
+
375
+ # moses.ini file uses FULL names for lambdas, while this training script
376
+ # internally (and on the command line) uses ABBR names.
377
+ my @ABBR_FULL_MAP = qw(d=weight-d lm=weight-l tm=weight-t w=weight-w
378
+ g=weight-generation lex=weight-lex I=weight-i);
379
+ my %ABBR2FULL = map {split/=/,$_,2} @ABBR_FULL_MAP;
380
+ my %FULL2ABBR = map {my ($a, $b) = split/=/,$_,2; ($b, $a);} @ABBR_FULL_MAP;
381
+
382
+
383
+
384
+
385
+ version() if $version;
386
+ usage() if $help;
387
+
388
+ #######################################
389
+ # incorporate run_decoder() here
390
+
391
+ ### moved to below
392
+ # my $qsubname = mert$run;
393
+ # $mosesparameters = "$___DECODER_FLAGS $decoder_config";
394
+ # $nbestlist = "$filename $___N_BEST_LIST_SIZE";
395
+
396
+
397
+ my $featlist = get_featlist_from_moses("./run$run.moses.ini");
398
+ $featlist = insert_ranges_to_featlist($featlist, $___RANGES);
399
+
400
+
401
+ ## sub run_decoder {
402
+ # my ($featlist, $run, $need_to_normalize) = @_;
403
+ my $filename_template = "run%d.best$___N_BEST_LIST_SIZE.out";
404
+ my $filename = sprintf($filename_template, $run);
405
+ my $lsamp_filename = undef;
406
+ if ($___LATTICE_SAMPLES) {
407
+ my $lsamp_filename_template = "run%d.lsamp$___LATTICE_SAMPLES.out";
408
+ $lsamp_filename = sprintf($lsamp_filename_template, $run);
409
+ }
410
+
411
+ # user-supplied parameters
412
+ print STDERR "params = $___DECODER_FLAGS\n";
413
+
414
+
415
+ # parameters to set all model weights (to override moses.ini)
416
+ my @vals = @{$featlist->{"values"}};
417
+ if ($need_to_normalize) {
418
+ print STDERR "Normalizing lambdas: @vals\n";
419
+ my $totlambda=0;
420
+ grep($totlambda+=abs($_),@vals);
421
+ grep($_/=$totlambda,@vals);
422
+ }
423
+
424
+
425
+ ########################################
426
+
427
+ # parameters to set all model weights (to override moses.ini)
428
+ my @vals = @{$featlist->{"values"}};
429
+ if ($need_to_normalize) {
430
+ print STDERR "Normalizing lambdas: @vals\n";
431
+ my $totlambda=0;
432
+ grep($totlambda+=abs($_),@vals);
433
+ grep($_/=$totlambda,@vals);
434
+ }
435
+ # moses now does not seem accept "-tm X -tm Y" but needs "-tm X Y"
436
+ my %model_weights;
437
+ for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
438
+ my $name = $featlist->{"names"}->[$i];
439
+ $model_weights{$name} = "-$name" if !defined $model_weights{$name};
440
+ $model_weights{$name} .= sprintf " %.6f", $vals[$i];
441
+ }
442
+ my $decoder_config = join(" ", values %model_weights);
443
+ $decoder_config .= " -weight-file run$run.sparse-weights" if -e "run$run.sparse-weights";
444
+ print STDERR "DECODER_CFG = $decoder_config\n";
445
+ print "decoder_config = $decoder_config\n";
446
+
447
+
448
+
449
+
450
+ #########################################
451
+
452
+ # moses now does not seem accept "-tm X -tm Y" but needs "-tm X Y"
453
+ my %model_weights;
454
+ for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
455
+ my $name = $featlist->{"names"}->[$i];
456
+ $model_weights{$name} = "-$name" if !defined $model_weights{$name};
457
+ $model_weights{$name} .= sprintf " %.6f", $vals[$i];
458
+ }
459
+ my $decoder_config = join(" ", values %model_weights);
460
+ $decoder_config .= " -weight-file run$run.sparse-weights" if -e "run$run.sparse-weights";
461
+ print STDERR "DECODER_CFG = $decoder_config\n";
462
+ print STDERR "decoder_config = $decoder_config\n";
463
+
464
+ ####### moved here??? ###########
465
+ $qsubname = "dec$run";
466
+ # $mosesparameters = "$___DECODER_FLAGS $decoder_config";
467
+ $mosesparameters = "$___DECODER_FLAGS $decoder_config ";
468
+
469
+ print STDERR "moses parameter with ___DECODER_FLAGS $___DECODER_FLAGS decoder_config $decoder_config and $qsubname\n";
470
+ print STDERR "$mosesparameters\n";
471
+
472
+ $nbestlist = "$filename $___N_BEST_LIST_SIZE";
473
+
474
+ print STDERR "to output -n-best-list $nbestlist\n";
475
+
476
+ init_secondpart();
477
+ #################################
478
+
479
+
480
+ # run the decoder
481
+ my $decoder_cmd;
482
+ my $lsamp_cmd = "";
483
+ if ($___LATTICE_SAMPLES) {
484
+ $lsamp_cmd = " -lattice-samples $lsamp_filename $___LATTICE_SAMPLES ";
485
+ }
486
+
487
+
488
+ if (!defined $inputlist || !defined $mosescmd || ! defined $cfgfile) {
489
+ print STDERR "Please specify -input-file, -decoder and -config\n";
490
+ usage();
491
+ }
492
+
493
+ #checking if inputfile exists
494
+ if (! -e ${inputlist} ){
495
+ print STDERR "Inputfile ($inputlist) does not exists\n";
496
+ usage();
497
+ }
498
+
499
+ #checking if decoder exists
500
+ if (! -e $mosescmd) {
501
+ print STDERR "Decoder ($mosescmd) does not exists\n";
502
+ usage();
503
+ }
504
+
505
+ #checking if configfile exists
506
+ if (! -e $cfgfile) {
507
+ print STDERR "Configuration file ($cfgfile) does not exists\n";
508
+ usage();
509
+ }
510
+
511
+
512
+ print_parameters(); # so that people know
513
+ exit(1) if $dbg; # debug mode: just print and do not run
514
+
515
+
516
+ #splitting test file in several parts
517
+ #$decimal="-d"; #split does not accept this options (on MAC OS)
518
+ my $decimal="";
519
+
520
+ my $cmd;
521
+ my $sentenceN;
522
+ my $splitN;
523
+
524
+ my @idxlist=();
525
+ my $idxliststr="";
526
+
527
+ if ($inputtype==0){ #text input
528
+ #getting the number of input sentences (one sentence per line)
529
+ chomp($sentenceN=`wc -l ${inputlist} | awk '{print \$1}' `);
530
+
531
+ #Reducing the number of jobs if less sentences to translate
532
+ if ($jobs>$sentenceN){ $jobs=$sentenceN; }
533
+
534
+ #Computing the number of sentences for each files
535
+ if ($sentenceN % $jobs == 0){ $splitN=int($sentenceN / $jobs); }
536
+ else{ $splitN=int($sentenceN /$jobs) + 1; }
537
+
538
+ if ($dbg){
539
+ print STDERR "There are $sentenceN sentences to translate\n";
540
+ print STDERR "There are at most $splitN sentences per job\n";
541
+ }
542
+
543
+ $cmd="split $decimal -a 2 -l $splitN $inputlist ${inputfile}.$splitpfx-";
544
+ safesystem("$cmd") or die;
545
+ }
546
+ elsif ($inputtype==1){ #confusion network input
547
+ my $tmpfile="/tmp/cnsplit$$";
548
+ $cmd="cat $inputlist | perl -pe 's/\\n/ _CNendline_ /g;' | perl -pe 's/_CNendline_ _CNendline_ /_CNendline_\\n/g;' > $tmpfile";
549
+ safesystem("$cmd") or die;
550
+
551
+ #getting the number of input CNs
552
+ chomp($sentenceN=`wc -l $tmpfile | awk '{print \$1}' `);
553
+
554
+ #Reducing the number of jobs if less CNs to translate
555
+ if ($jobs>$sentenceN){ $jobs=$sentenceN; }
556
+
557
+ #Computing the number of CNs for each files
558
+ if ($sentenceN % $jobs == 0){ $splitN=int($sentenceN / $jobs); }
559
+ else{ $splitN=int($sentenceN /$jobs) + 1; }
560
+
561
+ if ($dbg){
562
+ print STDERR "There are $sentenceN confusion networks to translate\n";
563
+ print STDERR "There are at most $splitN sentences per job\n";
564
+ }
565
+
566
+ $cmd="split $decimal -a 2 -l $splitN $tmpfile $tmpfile-";
567
+ safesystem("$cmd") or die;
568
+
569
+ my @idxlist=();
570
+ chomp(@idxlist=`ls $tmpfile-*`);
571
+ grep(s/.+(\-\S+)$/$1/e,@idxlist);
572
+
573
+ foreach my $idx (@idxlist){
574
+ $cmd="perl -pe 's/ _CNendline_ /\\n/g;s/ _CNendline_/\\n/g;'";
575
+ safesystem("cat $tmpfile$idx | $cmd > ${inputfile}.$splitpfx$idx ; \\rm -f $tmpfile$idx;");
576
+ }
577
+ }
578
+ elsif ($inputtype==2){ #confusion network input
579
+ #getting the number of input lattices (one lattice per line)
580
+ chomp($sentenceN=`wc -l ${inputlist} | awk '{print \$1}' `);
581
+
582
+ #Reducing the number of jobs if less lattices to translate
583
+ if ($jobs>$sentenceN){ $jobs=$sentenceN; }
584
+
585
+ #Computing the number of sentences for each files
586
+ if ($sentenceN % $jobs == 0){ $splitN=int($sentenceN / $jobs); }
587
+ else{ $splitN=int($sentenceN /$jobs) + 1; }
588
+
589
+ if ($dbg){
590
+ print STDERR "There are $sentenceN lattices to translate\n";
591
+ print STDERR "There are at most $splitN lattices per job\n";
592
+ }
593
+
594
+ $cmd="split $decimal -a 2 -l $splitN $inputlist ${inputfile}.$splitpfx-";
595
+ safesystem("$cmd") or die;
596
+ }
597
+ else{ #unknown input type
598
+ die "INPUTTYPE:$inputtype is unknown!\n";
599
+ }
600
+
601
+ chomp(@idxlist=`ls ${inputfile}.$splitpfx-*`);
602
+ grep(s/.+(\-\S+)$/$1/e,@idxlist);
603
+
604
+ safesystem("mkdir -p $tmpdir") or die;
605
+
606
+ preparing_script();
607
+
608
+
609
+
610
+ #launching process through the queue
611
+ my @sgepids =();
612
+ my $splitdecodejid="";
613
+
614
+ my @idx_todo = ();
615
+ foreach (@idxlist) { push @idx_todo,$_; }
616
+
617
+ # loop up to --robust times
618
+ my $max_robust = $robust;
619
+ my $robust_idx;
620
+ while ($robust && scalar @idx_todo) {
621
+ $robust--;
622
+
623
+ my $failure=0;
624
+
625
+
626
+ foreach my $idx (@idx_todo){
627
+
628
+ if ($old_sge) {
629
+ # old SGE understands -b no as the default and does not understand 'yes'
630
+ $batch_and_join = "-j y";
631
+ } else {
632
+ $batch_and_join = "-b yes -j yes"; # -b yes to submit bash script
633
+ }
634
+
635
+
636
+ ##### Replace the direct qsub command with submit_or_exec_thu_host() #############
637
+
638
+ my $split_decoder_cmd = "${jobscript}${idx}.bash";
639
+ &submit_or_exec_thu_host($submithost,$run,$idx,$split_decoder_cmd,$batch_and_join,"decode$run$idx.out","decode$run$idx.err","decode$run$idx.id");
640
+ chomp($jobid=`tail -n 1 decode$run$idx.id`);
641
+ print STDERR "JOBID for decoding sub-task decode$run$idx is $jobid\n";
642
+
643
+ ###################################################################################
644
+
645
+ ##### # get jobid #################################################################
646
+ push @sgepids, $jobid;
647
+ $splitdecodejid .= " $jobid";
648
+ ###################################################################################
649
+ }
650
+
651
+ ## clear temp file for this robust trial
652
+ foreach my $idx (@idx_todo){
653
+ &exit_submit_thu_host($submithost,$run,$idx,"","decode$run$idx.out","decode$run$idx.err","decode$run$idx.id","decode$run$idx.id.pid",$splitdecodejid);
654
+ }
655
+
656
+ ## WAIT JOB for robust iteration
657
+ $cmd = "date";
658
+ $robust_idx = $max_robust - $robust;
659
+ &submit_or_exec_thu_host($submithost,$run,"R${robust_idx}.W",$cmd,"-sync y","decode${run}R${robust_idx}.W.out","decode${run}R${robust_idx}.W.err","decode${run}R${robust_idx}.W.id",$splitdecodejid);
660
+ # no need to harvest jobid as this is in sync mode
661
+
662
+ # clear up tmp files
663
+ &exit_submit_thu_host($submithost,$run,"R${robust_idx}.W","","decode${run}R${robust_idx}.W.out","decode${run}R${robust_idx}.W.err","decode${run}R${robust_idx}.W.id","decode${run}R${robust_idx}.W.id.pid",$splitdecodejid);
664
+
665
+
666
+
667
+ # check if some translations failed
668
+ my @idx_still_todo = check_translation();
669
+ if ($robust) {
670
+ # if robust, redo crashed jobs
671
+ ##RESUBMIT_ANYWAY## if ((scalar @idx_still_todo) == (scalar @idxlist)) {
672
+ ##RESUBMIT_ANYWAY## # ... but not if all crashed
673
+ ##RESUBMIT_ANYWAY## print STDERR "everything crashed, not trying to resubmit jobs\n";
674
+ ##RESUBMIT_ANYWAY## $robust = 0;
675
+ ##RESUBMIT_ANYWAY## kill_all_and_quit();
676
+ ##RESUBMIT_ANYWAY## }
677
+ @idx_todo = @idx_still_todo;
678
+ }
679
+ else {
680
+ if (scalar (@idx_still_todo)) {
681
+ print STDERR "some jobs crashed: ".join(" ",@idx_still_todo)."\n";
682
+ # kill_all_and_quit();
683
+ }
684
+
685
+ }
686
+
687
+ }
688
+
689
+
690
+
691
+ $idxliststr = join(" ",@idxlist);
692
+
693
+
694
+ $postdecodecmd = "$SCRIPTS_ROOTDIR/training/sge-nosync/moses-parallel-postdecode-sge-nosync.pl" if !defined $postdecodecmd;
695
+
696
+ $postdecodeargs = "" if !defined $postdecodeargs;
697
+ $postdecodeargs = "$postdecodeargs --process-id $$ --idxliststr \"$idxliststr\"";
698
+ $postdecodeargs = "$postdecodeargs --nbestfile $nbestfile" if (defined $nbestfile);
699
+ $postdecodeargs = "$postdecodeargs --outnbest $outnbest" if (defined $outnbest);
700
+ $postdecodeargs = "$postdecodeargs --input-file $inputfile" if ($inputfile);
701
+
702
+ my $cmd = "$postdecodecmd $postdecodeargs";
703
+ &submit_or_exec_thu_host($submithost,$run,".CONCAT",$cmd,"","run$run.out","run$run.err","postdecode$run.id","$splitdecodejid");
704
+
705
+
706
+ chomp($jobid=`tail -n 1 postdecode$run.id`);
707
+ $prevjid = $jobid;
708
+
709
+ ## clear up tmp
710
+ &exit_submit_thu_host($submithost,$run,".CONCAT","","run$run.out","run$run.err","postdecode$run.id","postdecode$run.id.pid",$prevjid);
711
+
712
+
713
+
714
+ ##### OVERALL WAIT JOB ##########
715
+ my $syncscript = "${jobscript}.waitall.sh";
716
+
717
+ open (OUT, ">$syncscript");
718
+ my $scriptheader="\#\!/bin/bash\n\#\$ -S /bin/sh\n# Both lines are needed to invoke base\n#the above line is ignored by qsub, unless parameter \"-b yes\" is set!\n\n";
719
+ $scriptheader .="uname -a\n\n";
720
+ $scriptheader .="cd $___WORKING_DIR\n\n";
721
+ print OUT $scriptheader;
722
+ print OUT "'date'";
723
+ close(OUT);
724
+
725
+ # safesystem("echo 'date' > $syncscript") or kill_all_and_quit();
726
+ chmod(oct(755),"$syncscript");
727
+
728
+ # $cmd="qsub $queueparameters -o /dev/null -e /dev/null -N $qsubname.W -b y /bin/ls > $qsubname.W.log";
729
+ $batch_and_join = "-j y";
730
+
731
+ &submit_or_exec_thu_host($submithost,$run,".W",$syncscript,$batch_and_join,"decode$run.W.out","decode$run.W.err","decode$run.W.id",$prevjid);
732
+ chomp($jobid=`tail -n 1 decode$run.W.id`);
733
+ print STDERR "JOBID for wait-job for all decoding sub-task is $jobid\n";
734
+ $prevjid = $jobid;
735
+
736
+ ## clear-up tmp
737
+ &exit_submit_thu_host($submithost,$run,".W",$batch_and_join,"decode$run.W.out","decode$run.W.err","decode$run.W.id","decode$run.W.id.pid",$prevjid);
738
+
739
+ exit();
740
+
741
+
742
+
743
+
744
+
745
+ ### ending scripts in run_decoder() ##############
746
+ sanity_check_order_of_lambdas($featlist, $filename);
747
+ return ($filename, $lsamp_filename);
748
+ ##################################################
749
+
750
+
751
+
752
+
753
+ #script creation
754
+ sub preparing_script(){
755
+ my $currStartTranslationId = 0;
756
+
757
+ foreach my $idx (@idxlist){
758
+ my $scriptheader="";
759
+ $scriptheader.="\#\! /bin/bash\n\n";
760
+ # !!! this is useless. qsub ignores the first line of the script.
761
+ # Pass '-S /bin/bash' to qsub instead.
762
+ $scriptheader.="uname -a\n\n";
763
+ $scriptheader.="ulimit -c 0\n\n"; # avoid coredumps
764
+ $scriptheader.="cd $workingdir\n\n";
765
+
766
+ open (OUT, "> ${jobscript}${idx}.bash");
767
+ print OUT $scriptheader;
768
+ my $inputmethod = $feed_moses_via_stdin ? "<" : "-input-file";
769
+
770
+ my $tmpnbestlist="";
771
+ if ($nbestflag){
772
+ $tmpnbestlist="$tmpdir/$nbestfile.$splitpfx$idx $nbestlist[1]";
773
+ $tmpnbestlist = "$tmpnbestlist $nbestlist[2]" if scalar(@nbestlist)==3;
774
+ $tmpnbestlist = "-n-best-list $tmpnbestlist";
775
+ }
776
+
777
+ $outnbest=$nbestlist[0];
778
+ if ($nbestlist[0] eq '-'){ $outnbest="nbest$$"; }
779
+
780
+ print STDERR "n-best-list $tmpnbestlist\n";
781
+
782
+
783
+ my $tmpalioutfile = "";
784
+ if (defined $alifile){
785
+ $tmpalioutfile="-alignment-output-file $tmpdir/$alifile.$splitpfx$idx";
786
+ }
787
+
788
+ my $tmpsearchgraphlist="";
789
+ if ($searchgraphflag){
790
+ $tmpsearchgraphlist="-output-search-graph $tmpdir/$searchgraphfile.$splitpfx$idx";
791
+ }
792
+
793
+ my $tmpwordgraphlist="";
794
+ if ($wordgraphflag){
795
+ $tmpwordgraphlist="-output-word-graph $tmpdir/$wordgraphfile.$splitpfx$idx $wordgraphlist[1]";
796
+ }
797
+
798
+ my $tmpStartTranslationId = ""; # "-start-translation-id $currStartTranslationId";
799
+
800
+ print OUT "$mosescmd $mosesparameters $tmpStartTranslationId $tmpalioutfile $tmpwordgraphlist $tmpsearchgraphlist $tmpnbestlist $inputmethod ${inputfile}.$splitpfx$idx > $tmpdir/${inputfile}.$splitpfx$idx.trans\n\n";
801
+ print OUT "echo exit status \$\?\n\n";
802
+
803
+ if (defined $alifile){
804
+ print OUT "\\mv -f $tmpdir/${alifile}.$splitpfx$idx .\n\n";
805
+ print OUT "echo exit status \$\?\n\n";
806
+ }
807
+ if ($nbestflag){
808
+ print OUT "\\mv -f $tmpdir/${nbestfile}.$splitpfx$idx .\n\n";
809
+ print OUT "echo exit status \$\?\n\n";
810
+ }
811
+ if ($searchgraphflag){
812
+ print OUT "\\mv -f $tmpdir/${searchgraphfile}.$splitpfx$idx .\n\n";
813
+ print OUT "echo exit status \$\?\n\n";
814
+ }
815
+
816
+ if ($wordgraphflag){
817
+ print OUT "\\mv -f $tmpdir/${wordgraphfile}.$splitpfx$idx .\n\n";
818
+ print OUT "echo exit status \$\?\n\n";
819
+ }
820
+
821
+ print OUT "\\mv -f $tmpdir/${inputfile}.$splitpfx$idx.trans .\n\n";
822
+ print OUT "echo exit status \$\?\n\n";
823
+ close(OUT);
824
+
825
+ #setting permissions of each script
826
+ chmod(oct(755),"${jobscript}${idx}.bash");
827
+
828
+ $currStartTranslationId += $splitN;
829
+ }
830
+ }
831
+
832
+ sub concatenate_wordgraph(){
833
+ my $oldcode="";
834
+ my $newcode=-1;
835
+ my %inplength = ();
836
+ my $offset = 0;
837
+
838
+ my $outwordgraph=$wordgraphlist[0];
839
+ if ($wordgraphlist[0] eq '-'){ $outwordgraph="wordgraph$$"; }
840
+
841
+ open (OUT, "> $outwordgraph");
842
+ foreach my $idx (@idxlist){
843
+
844
+ #computing the length of each input file
845
+ my @in=();
846
+ open (IN, "${inputfile}.${splitpfx}${idx}.trans");
847
+ @in=<IN>;
848
+ close(IN);
849
+ $inplength{$idx} = scalar(@in);
850
+
851
+ open (IN, "${wordgraphfile}.${splitpfx}${idx}");
852
+ while (<IN>){
853
+
854
+ my $code="";
855
+ if (/^UTTERANCE=/){
856
+ ($code)=($_=~/^UTTERANCE=(\d+)/);
857
+
858
+ print STDERR "code:$code offset:$offset\n";
859
+ $code += $offset;
860
+ if ($code ne $oldcode){
861
+
862
+ # if there is a jump between two consecutive codes
863
+ # it means that an input sentence is not translated
864
+ # fill this hole with a "fictitious" list of wordgraphs
865
+ # comprising just one "_EMPTYSEARCHGRAPH_
866
+ while ($code - $oldcode > 1){
867
+ $oldcode++;
868
+ print OUT "UTTERANCE=$oldcode\n";
869
+ print STDERR " to OUT -> code:$oldcode\n";
870
+ print OUT "_EMPTYWORDGRAPH_\n";
871
+ }
872
+ }
873
+
874
+ $oldcode=$code;
875
+ print OUT "UTTERANCE=$oldcode\n";
876
+ next;
877
+ }
878
+ print OUT "$_";
879
+ }
880
+ close(IN);
881
+ $offset += $inplength{$idx};
882
+
883
+ while ($offset - $oldcode > 1){
884
+ $oldcode++;
885
+ print OUT "UTTERANCE=$oldcode\n";
886
+ print OUT "_EMPTYWORDGRAPH_\n";
887
+ }
888
+ }
889
+ close(OUT);
890
+ }
891
+
892
+
893
+ sub concatenate_searchgraph(){
894
+ my $oldcode="";
895
+ my $newcode=-1;
896
+ my %inplength = ();
897
+ my $offset = 0;
898
+
899
+ my $outsearchgraph=$searchgraphlist;
900
+ if ($searchgraphlist eq '-'){ $outsearchgraph="searchgraph$$"; }
901
+
902
+ open (OUT, "> $outsearchgraph");
903
+ foreach my $idx (@idxlist){
904
+
905
+ #computing the length of each input file
906
+ my @in=();
907
+ open (IN, "${inputfile}.${splitpfx}${idx}.trans");
908
+ @in=<IN>;
909
+ close(IN);
910
+ $inplength{$idx} = scalar(@in);
911
+
912
+ open (IN, "${searchgraphfile}.${splitpfx}${idx}");
913
+ while (<IN>){
914
+ my ($code,@extra)=split(/[ \t]+/,$_);
915
+ $code += $offset;
916
+ if ($code ne $oldcode){
917
+
918
+ # if there is a jump between two consecutive codes
919
+ # it means that an input sentence is not translated
920
+ # fill this hole with a "fictitious" list of searchgraphs
921
+ # comprising just one "_EMPTYSEARCHGRAPH_
922
+ while ($code - $oldcode > 1){
923
+ $oldcode++;
924
+ print OUT "$oldcode _EMPTYSEARCHGRAPH_\n";
925
+ }
926
+ }
927
+ $oldcode=$code;
928
+ print OUT join(" ",($oldcode,@extra));
929
+ }
930
+ close(IN);
931
+ $offset += $inplength{$idx};
932
+
933
+ while ($offset - $oldcode > 1){
934
+ $oldcode++;
935
+ print OUT "$oldcode _EMPTYSEARCHGRAPH_\n";
936
+ }
937
+ }
938
+ close(OUT);
939
+ }
940
+
941
+ sub concatenate_nbest(){
942
+ my $oldcode="";
943
+ my $newcode=-1;
944
+ my %inplength = ();
945
+ my $offset = 0;
946
+
947
+ # get the list of feature and set a fictitious string with zero scores
948
+ open (IN, "${nbestfile}.${splitpfx}$idxlist[0]");
949
+ my $str = <IN>;
950
+ chomp($str);
951
+ close(IN);
952
+ my ($code,$trans,$featurescores,$globalscore)=split(/\|\|\|/,$str);
953
+
954
+ my $emptytrans = " ";
955
+ my $emptyglobalscore = " 0.0";
956
+ my $emptyfeaturescores = $featurescores;
957
+ $emptyfeaturescores =~ s/[-0-9\.]+/0/g;
958
+
959
+ my $outnbest=$nbestlist[0];
960
+ if ($nbestlist[0] eq '-'){ $outnbest="nbest$$"; }
961
+
962
+ open (OUT, "> $outnbest");
963
+ foreach my $idx (@idxlist){
964
+
965
+ #computing the length of each input file
966
+ my @in=();
967
+ open (IN, "${inputfile}.${splitpfx}${idx}.trans");
968
+ @in=<IN>;
969
+ close(IN);
970
+ $inplength{$idx} = scalar(@in);
971
+
972
+ open (IN, "${nbestfile}.${splitpfx}${idx}");
973
+ while (<IN>){
974
+ my ($code,@extra)=split(/\|\|\|/,$_);
975
+ $code += $offset;
976
+ if ($code ne $oldcode){
977
+
978
+ # if there is a jump between two consecutive codes
979
+ # it means that an input sentence is not translated
980
+ # fill this hole with a "fictitious" list of translation
981
+ # comprising just one "emtpy translation" with zero scores
982
+ while ($code - $oldcode > 1){
983
+ $oldcode++;
984
+ print OUT join("\|\|\|",($oldcode,$emptytrans,$emptyfeaturescores,$emptyglobalscore)),"\n";
985
+ }
986
+ }
987
+ $oldcode=$code;
988
+ print OUT join("\|\|\|",($oldcode,@extra));
989
+ }
990
+ close(IN);
991
+ $offset += $inplength{$idx};
992
+
993
+ while ($offset - $oldcode > 1){
994
+ $oldcode++;
995
+ print OUT join("\|\|\|",($oldcode,$emptytrans,$emptyfeaturescores,$emptyglobalscore)),"\n";
996
+ }
997
+ }
998
+ close(OUT);
999
+ }
1000
+
1001
+
1002
+
1003
+ sub check_exit_status(){
1004
+ print STDERR "check_exit_status\n";
1005
+ my $failure=0;
1006
+ foreach my $idx (@idxlist){
1007
+ print STDERR "check_exit_status of job $idx\n";
1008
+ open(IN,"$qsubout$idx");
1009
+ while (<IN>){
1010
+ $failure=1 if (/exit status 1/);
1011
+ }
1012
+ close(IN);
1013
+ }
1014
+ return $failure;
1015
+ }
1016
+
1017
+ sub kill_all_and_quit(){
1018
+ print STDERR "Got interrupt or something failed.\n";
1019
+ print STDERR "kill_all_and_quit\n";
1020
+ foreach my $id (@sgepids){
1021
+ print STDERR "qdel $id\n";
1022
+ safesystem("qdel $id");
1023
+ }
1024
+
1025
+ print STDERR "Translation was not performed correctly\n";
1026
+ print STDERR "or some of the submitted jobs died.\n";
1027
+ print STDERR "qdel function was called for all submitted jobs\n";
1028
+
1029
+ exit(1);
1030
+ }
1031
+
1032
+
1033
+ sub check_translation(){
1034
+ #checking if all sentences were translated
1035
+ my $inputN;
1036
+ my $outputN;
1037
+ my @failed = ();
1038
+ foreach my $idx (@idx_todo){
1039
+ if ($inputtype==0){#text input
1040
+ chomp($inputN=`wc -l ${inputfile}.$splitpfx$idx | cut -d' ' -f1`);
1041
+ }
1042
+ elsif ($inputtype==1){#confusion network input
1043
+ chomp($inputN=`cat ${inputfile}.$splitpfx$idx | perl -pe 's/\\n/ _CNendline_ /g;' | perl -pe 's/_CNendline_ _CNendline_ /_CNendline_\\n/g;' | wc -l | cut -d' ' -f1 `);
1044
+ }
1045
+ elsif ($inputtype==2){#lattice input
1046
+ chomp($inputN=`wc -l ${inputfile}.$splitpfx$idx | cut -d' ' -f1`);
1047
+ }
1048
+ else{#unknown input
1049
+ die "INPUTTYPE:$inputtype is unknown!\n";
1050
+ }
1051
+ chomp($outputN=`wc -l ${inputfile}.$splitpfx$idx.trans | cut -d' ' -f1`);
1052
+
1053
+ if ($inputN != $outputN){
1054
+ print STDERR "Split ($idx) were not entirely translated\n";
1055
+ print STDERR "outputN=$outputN inputN=$inputN\n";
1056
+ print STDERR "outputfile=${inputfile}.$splitpfx$idx.trans inputfile=${inputfile}.$splitpfx$idx\n";
1057
+ push @failed,$idx;
1058
+ }
1059
+ }
1060
+ return @failed;
1061
+ }
1062
+
1063
+ sub check_translation_old_sge(){
1064
+ #checking if all sentences were translated
1065
+ my $inputN;
1066
+ my $outputN;
1067
+ foreach my $idx (@idx_todo){
1068
+ if ($inputtype==0){#text input
1069
+ chomp($inputN=`wc -l ${inputfile}.$splitpfx$idx | cut -d' ' -f1`);
1070
+ }
1071
+ elsif ($inputtype==1){#confusion network input
1072
+ chomp($inputN=`cat ${inputfile}.$splitpfx$idx | perl -pe 's/\\n/ _CNendline_ /g;' | perl -pe 's/_CNendline_ _CNendline_ /_CNendline_\\n/g;' | wc -l |
1073
+ cut -d' ' -f1 `);
1074
+ }
1075
+ elsif ($inputtype==2){#lattice input
1076
+ chomp($inputN=`wc -l ${inputfile}.$splitpfx$idx | cut -d' ' -f1`);
1077
+ }
1078
+ else{#unknown input
1079
+ die "INPUTTYPE:$inputtype is unknown!\n";
1080
+ }
1081
+ chomp($outputN=`wc -l ${inputfile}.$splitpfx$idx.trans | cut -d' ' -f1`);
1082
+
1083
+ if ($inputN != $outputN){
1084
+ print STDERR "Split ($idx) were not entirely translated\n";
1085
+ print STDERR "outputN=$outputN inputN=$inputN\n";
1086
+ print STDERR "outputfile=${inputfile}.$splitpfx$idx.trans inputfile=${inputfile}.$splitpfx$idx\n";
1087
+ return 1;
1088
+ }
1089
+
1090
+ }
1091
+ return 0;
1092
+ }
1093
+
1094
+ sub remove_temporary_files(){
1095
+ #removing temporary files
1096
+ foreach my $idx (@idxlist){
1097
+ unlink("${inputfile}.${splitpfx}${idx}.trans");
1098
+ unlink("${inputfile}.${splitpfx}${idx}");
1099
+ if (defined $alifile){ unlink("${alifile}.${splitpfx}${idx}"); }
1100
+ if ($nbestflag){ unlink("${nbestfile}.${splitpfx}${idx}"); }
1101
+ if ($searchgraphflag){ unlink("${searchgraphfile}.${splitpfx}${idx}"); }
1102
+ if ($wordgraphflag){ unlink("${wordgraphfile}.${splitpfx}${idx}"); }
1103
+ unlink("${jobscript}${idx}.bash");
1104
+ unlink("${jobscript}${idx}.log");
1105
+ unlink("$qsubname.W.log");
1106
+ unlink("$qsubout$idx");
1107
+ unlink("$qsuberr$idx");
1108
+ rmdir("$tmpdir");
1109
+ }
1110
+ if ($nbestflag && $nbestlist[0] eq '-'){ unlink("${nbestfile}$$"); };
1111
+ if ($searchgraphflag && $searchgraphlist eq '-'){ unlink("${searchgraphfile}$$"); };
1112
+ if ($wordgraphflag && $wordgraphlist eq '-'){ unlink("${wordgraphfile}$$"); };
1113
+ }
1114
+
1115
+ sub safesystem {
1116
+ print STDERR "Executing: @_\n";
1117
+ system(@_);
1118
+ if ($? == -1) {
1119
+ print STDERR "Failed to execute: @_\n $!\n";
1120
+ exit(1);
1121
+ }
1122
+ elsif ($? & 127) {
1123
+ printf STDERR "Execution of: @_\n died with signal %d, %s coredump\n",
1124
+ ($? & 127), ($? & 128) ? 'with' : 'without';
1125
+ exit 1;
1126
+ }
1127
+ else {
1128
+ my $exitcode = $? >> 8;
1129
+ print STDERR "Exit code: $exitcode\n" if $exitcode;
1130
+ return ! $exitcode;
1131
+ }
1132
+ }
1133
+
1134
+
1135
+ # look for the correct pwdcmd (pwd by default, pawd if it exists)
1136
+ # I assume that pwd always exists
1137
+ sub getPwdCmd(){
1138
+ my $pwdcmd="pwd";
1139
+ my $a;
1140
+ chomp($a=`which pawd | head -1 | awk '{print $1}'`);
1141
+ if ($a && -e $a){ $pwdcmd=$a; }
1142
+ return $pwdcmd;
1143
+ }
1144
+
1145
+
1146
+
1147
+ sub get_featlist_from_moses {
1148
+ # run moses with the given config file and return the list of features and
1149
+ # their initial values
1150
+
1151
+ ### variable conversion for moses-parallel-sge-nosync.pl ###
1152
+ my $___INPUTTYPE = $inputtype;
1153
+ my $___DECODER = $mosescmd;
1154
+ ######################################################
1155
+ my $configfn = shift;
1156
+
1157
+
1158
+ # forceful load features list every time
1159
+ my $featlistfn = "./features.list.run${run}_start";
1160
+ if (-e $featlistfn) {
1161
+ print STDERR "Removing old features list: $featlistfn\n";
1162
+ print STDERR "Generating a new one with $configfn\n";
1163
+ }
1164
+ print STDERR "Asking moses for feature names and values from $configfn\n";
1165
+ my $cmd = "$___DECODER $___DECODER_FLAGS -config $configfn -inputtype $___INPUTTYPE -show-weights > $featlistfn";
1166
+ print STDERR "$cmd\n"; #DEBUG
1167
+ safesystem($cmd) or die "Failed to run moses with the config $configfn";
1168
+
1169
+
1170
+ # read feature list
1171
+ my @names = ();
1172
+ my @startvalues = ();
1173
+ open(INI,$featlistfn) or die "Can't read $featlistfn";
1174
+ my $nr = 0;
1175
+ my @errs = ();
1176
+ while (<INI>) {
1177
+ $nr++;
1178
+ chomp;
1179
+ /^(.+) (\S+) (\S+)$/ || die("invalid feature: $_");
1180
+ my ($longname, $feature, $value) = ($1,$2,$3);
1181
+ next if $value eq "sparse";
1182
+ push @errs, "$featlistfn:$nr:Bad initial value of $feature: $value\n"
1183
+ if $value !~ /^[+-]?[0-9.e]+$/;
1184
+ push @errs, "$featlistfn:$nr:Unknown feature '$feature', please add it to \@ABBR_FULL_MAP\n"
1185
+ if !defined $ABBR2FULL{$feature};
1186
+ push @names, $feature;
1187
+ push @startvalues, $value;
1188
+ }
1189
+ close INI;
1190
+ if (scalar @errs) {
1191
+ print STDERR join("", @errs);
1192
+ exit 1;
1193
+ }
1194
+ return {"names"=>\@names, "values"=>\@startvalues};
1195
+ }
1196
+
1197
+
1198
+ sub insert_ranges_to_featlist {
1199
+ ### variable conversion for moses-parallel-sge-nosync.pl ###
1200
+ my $___INPUTTYPE = $inputtype;
1201
+ my $___DECODER = $mosescmd;
1202
+ ######################################################
1203
+
1204
+ my $featlist = shift;
1205
+ my $ranges = shift;
1206
+
1207
+ $ranges = [] if !defined $ranges;
1208
+
1209
+ # first collect the ranges from options
1210
+ my $niceranges;
1211
+ foreach my $range (@$ranges) {
1212
+ my $name = undef;
1213
+ foreach my $namedpair (split /,/, $range) {
1214
+ if ($namedpair =~ /^(.*?):/) {
1215
+ $name = $1;
1216
+ $namedpair =~ s/^.*?://;
1217
+ die "Unrecognized name '$name' in --range=$range"
1218
+ if !defined $ABBR2FULL{$name};
1219
+ }
1220
+ my ($min, $max) = split /\.\./, $namedpair;
1221
+ die "Bad min '$min' in --range=$range" if $min !~ /^-?[0-9.]+$/;
1222
+ die "Bad max '$max' in --range=$range" if $min !~ /^-?[0-9.]+$/;
1223
+ die "No name given in --range=$range" if !defined $name;
1224
+ push @{$niceranges->{$name}}, [$min, $max];
1225
+ }
1226
+ }
1227
+
1228
+ # now populate featlist
1229
+ my $seen = undef;
1230
+ for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
1231
+ my $name = $featlist->{"names"}->[$i];
1232
+ $seen->{$name} ++;
1233
+ my $min = 0.0;
1234
+ my $max = 1.0;
1235
+ if (defined $niceranges->{$name}) {
1236
+ my $minmax = shift @{$niceranges->{$name}};
1237
+ ($min, $max) = @$minmax if defined $minmax;
1238
+ }
1239
+ $featlist->{"mins"}->[$i] = $min;
1240
+ $featlist->{"maxs"}->[$i] = $max;
1241
+ }
1242
+ return $featlist;
1243
+ }
1244
+
1245
+
1246
+
1247
+
1248
+ sub submit_or_exec_thu_host {
1249
+ # use Net::OpenSSH::Compat::Perl;
1250
+
1251
+ my $argvlen = @_;
1252
+ my $submithost = undef;
1253
+ my $run = -1;
1254
+ my $idx = "";
1255
+ my $batch_and_join = "";
1256
+ my $my_username = undef;
1257
+ my $cmd = undef;
1258
+ my $qsubwrapcmd = undef;
1259
+ my $stdout = undef;
1260
+ my $stderr = undef;
1261
+ my $jidfile = undef;
1262
+ my $prevjid = undef;
1263
+
1264
+
1265
+ # if supply 7 arguments, exec without submit
1266
+ # if supply 8 arguments, then submit new job
1267
+ # if supply 9 arguments, wait for the previous job to finish
1268
+ if ($argvlen == 7){
1269
+ ($submithost,$run,$idx,$cmd,$batch_and_join,$stdout,$stderr) = @_;
1270
+ } elsif ($argvlen == 8){
1271
+ ($submithost,$run,$idx,$cmd,$batch_and_join,$stdout,$stderr,$jidfile) = @_;
1272
+ } elsif ($argvlen == 9){
1273
+ ($submithost,$run,$idx,$cmd,$batch_and_join,$stdout,$stderr,$jidfile,$prevjid) = @_;
1274
+ }
1275
+
1276
+
1277
+
1278
+ chomp(my $my_username = `whoami`);
1279
+ my $ssh = Net::OpenSSH::Compat::Perl->new($submithost, debug=>0);
1280
+
1281
+ print STDERR "submithost = $submithost\n";
1282
+ print STDERR "qusbwrapper at = $qsubwrapper\n";
1283
+
1284
+ $ssh->login();
1285
+
1286
+ if ($argvlen == 9) {
1287
+ $qsubwrapcmd = "$qsubwrapper -command='$cmd' -queue-parameter=\"$queueparameters $batch_and_join\" -qsub-prefix='$qsubname$idx' -stdout=$stdout -stderr=$stderr -jidfile=$jidfile -prevjid='$prevjid'";
1288
+ } elsif ($argvlen == 8) {
1289
+ # $qsubwrapcmd = "$qsubwrapper -command='${jobscript}${idx}.bash' -queue-parameter=\"$queueparameters $batch_and_join\" -qsub-prefix='$qsubname$idx' -stdout=$stdout -stderr=$stderr -jidfile=$jidfile";
1290
+ $qsubwrapcmd = "$qsubwrapper -command='$cmd' -queue-parameter=\"$queueparameters $batch_and_join\" -qsub-prefix='$qsubname$idx' -stdout=$stdout -stderr=$stderr -jidfile=$jidfile";
1291
+ }
1292
+ print STDERR "Executing $qsubwrapcmd in $___WORKING_DIR\n";
1293
+ $ssh->cmd("cd $___WORKING_DIR && $qsubwrapcmd");
1294
+
1295
+ }
1296
+
1297
+ sub exit_submit_thu_host {
1298
+
1299
+ my $argvlen = @_;
1300
+ my $submithost = undef;
1301
+ my $run = -1;
1302
+ my $idx = "";
1303
+ my $batch_and_join = "";
1304
+ my $my_username = undef;
1305
+ my $cmd = undef;
1306
+ my $stdout = undef;
1307
+ my $stderr = undef;
1308
+ my $jidfile = undef;
1309
+ my $pidfile = undef;
1310
+ my $prevjid = undef;
1311
+ my $prevjidarraysize = 0;
1312
+ my @prevjidarray = ();
1313
+ my $pid = undef;
1314
+ my $qsubcmd="";
1315
+ my $hj="";
1316
+
1317
+ # if supply 8 arguments, then submit new job
1318
+ # if supply 9 arguments, wait for the previous job to finish
1319
+ if ($argvlen == 6){
1320
+ ($submithost,$run,$idx,$batch_and_join,$stdout,$stderr) = @_;
1321
+ } elsif ($argvlen == 8){
1322
+ ($submithost,$run,$idx,$batch_and_join,$stdout,$stderr,$jidfile,$pidfile) = @_;
1323
+ } elsif ($argvlen == 9){
1324
+ ($submithost,$run,$idx,$batch_and_join,$stdout,$stderr,$jidfile,$pidfile,$prevjid) = @_;
1325
+ }
1326
+
1327
+ # parse prevjid ########################
1328
+ $prevjid =~ s/^\s+|\s+$//g;
1329
+ @prevjidarray = split(/\s+/,$prevjid);
1330
+ $prevjidarraysize = scalar(@prevjidarray);
1331
+ ########################################
1332
+
1333
+
1334
+ # print STDERR "exec: $stdout\n";
1335
+
1336
+ # read pid from file, and draft exit script ##################
1337
+ chomp ($pid=`tail -n 1 $pidfile`);
1338
+ open (OUT, ">exitjob$pid.sh");
1339
+
1340
+ my $scriptheader="\#\!/bin/bash\n\#\$ -S /bin/sh\n# Both lines are needed to invoke base\n#the above line is ignored by qsub, unless parameter \"-b yes\" is set!\n\n";
1341
+ $scriptheader .="uname -a\n\n";
1342
+ $scriptheader .="cd $___WORKING_DIR\n\n";
1343
+
1344
+ print OUT $scriptheader;
1345
+
1346
+ print OUT "if $qsubwrapper_exit -stdout=$stdout -stderr=$stderr -jidfile=$jidfile -pidfile=$pidfile > exitjob$pid.out 2> exitjob$pid.err ; then
1347
+ echo 'succeeded'
1348
+ else
1349
+ echo failed with exit status \$\?
1350
+ die=1
1351
+ fi
1352
+ ";
1353
+ print OUT "\n\n";
1354
+
1355
+ close (OUT);
1356
+ # setting permissions of the script
1357
+ chmod(oct(755),"exitjob$pid.sh");
1358
+ ##############################################################
1359
+
1360
+ # log in submit host #########################################
1361
+ chomp(my $my_username = `whoami`);
1362
+ my $ssh = Net::OpenSSH::Compat::Perl->new($submithost, debug=>0);
1363
+
1364
+ print STDERR "submithost = $submithost\n";
1365
+ print STDERR "my username = $my_username\n";
1366
+ print STDERR "qusbwrapper at = $qsubwrapper\n";
1367
+
1368
+ $ssh->login();
1369
+ ##############################################################
1370
+
1371
+
1372
+ if ($argvlen==9) {
1373
+ if (defined $prevjid && $prevjid!=-1 && $prevjidarraysize == 1){
1374
+ $hj = "-hold_jid $prevjid";
1375
+ } elsif (defined $prevjid && $prevjidarraysize > 1){
1376
+ $hj = "-hold_jid " . join(" -hold_jid ", @prevjidarray);
1377
+ }
1378
+ $qsubcmd="qsub $queueparameters -o /dev/null -e /dev/null $hj exitjob$pid.sh > exitjob$pid.log 2>&1";
1379
+ $ssh->cmd("cd $___WORKING_DIR && $qsubcmd");
1380
+ } elsif ($argvlen==8) {
1381
+ $qsubcmd="qsub $queueparameters -o /dev/null -e /dev/null exitjob$pid.sh > exitjob$pid.log 2>&1";
1382
+ $ssh->cmd("cd $___WORKING_DIR && $qsubcmd");
1383
+ }
1384
+ print STDERR "Executing $qsubcmd in $___WORKING_DIR\n";
1385
+
1386
+ }
1387
+
1388
+
mosesdecoder/contrib/mert-sge-nosync/generic/qsub-wrapper-exit-sge-nosync.pl ADDED
@@ -0,0 +1,312 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #! /usr/bin/perl
2
+
3
+ # $Id$
4
+ use strict;
5
+ use Net::OpenSSH::Compat::Perl;
6
+ #######################
7
+ #Default parameters
8
+ #parameters for submiiting processes through SGE
9
+ #NOTE: group name is ws06ossmt (with 2 's') and not ws06osmt (with 1 's')
10
+ my $queueparameters="";
11
+
12
+ # look for the correct pwdcmd
13
+ my $pwdcmd = getPwdCmd();
14
+
15
+ my $workingdir = `$pwdcmd`; chomp $workingdir;
16
+ # my $tmpdir="$workingdir/tmp$$";
17
+ # my $jobscript="$workingdir/job$$.sh";
18
+ # my $qsubout="$workingdir/out.job$$";
19
+ # my $qsuberr="$workingdir/err.job$$";
20
+
21
+
22
+ $SIG{INT} = \&kill_all_and_quit; # catch exception for CTRL-C
23
+
24
+ my $submithost="";
25
+ my $help="";
26
+ my $dbg="";
27
+ my $version="";
28
+ my $qsubname="WR$$";
29
+ my $cmd="";
30
+ my $cmdout=undef;
31
+ my $cmderr=undef;
32
+ my $jid=0;
33
+ my $jidfile=undef;
34
+ my $pid=0;
35
+ my $pidfile=undef;
36
+ my $prevjid=undef;
37
+ my $parameters="";
38
+ my $old_sge = 0; # assume grid engine < 6.0
39
+ my $prevjidarraysize = 0;
40
+ my $force_delete = 0;
41
+ my @prevjidarray = ();
42
+
43
+ sub init(){
44
+ use Getopt::Long qw(:config pass_through);
45
+ GetOptions('version'=>\$version,
46
+ 'help'=>\$help,
47
+ 'debug'=>\$dbg,
48
+ 'submithost=s'=> \$submithost,
49
+ 'qsub-prefix=s'=> \$qsubname,
50
+ 'stdout=s'=> \$cmdout,
51
+ 'stderr=s'=> \$cmderr,
52
+ 'jidfile=s'=> \$jidfile,
53
+ 'pidfile=s'=> \$pidfile, # process id for previous job
54
+ 'prevjid=s'=> \$prevjid,
55
+ 'queue-parameter=s'=> \$queueparameters,
56
+ 'force-delete=i' => \$force_delete,
57
+ 'old-sge' => \$old_sge,
58
+ ) or exit(1);
59
+ $parameters="@ARGV";
60
+
61
+ # read $pid from file
62
+ chomp($pid=`tail -n 1 $pidfile`);
63
+ # print "PID=+$pidfile+\n";
64
+
65
+ if (defined $jidfile) {
66
+ chomp($jid=`tail -n 1 $jidfile`);
67
+ }
68
+
69
+ # print STDERR "INPUT prevjid =+$prevjid+\n";
70
+ $prevjid =~ s/^\s+|\s+$//g;
71
+ # print STDERR "TRIMMED prevjid =+$prevjid+\n";
72
+
73
+ @prevjidarray = split(/\s+/,$prevjid);
74
+ $prevjidarraysize = scalar(@prevjidarray);
75
+
76
+ # print STDERR "arraysize: $prevjidarraysize\n";
77
+
78
+
79
+ version() if $version;
80
+ usage() if $help;
81
+ print_parameters() if $dbg;
82
+ }
83
+
84
+ #######################
85
+ ##print version
86
+ sub version(){
87
+ # print STDERR "version 1.0 (29-07-2006)\n";
88
+ print STDERR "version 1.1 (31-07-2006)\n";
89
+ exit(1);
90
+ }
91
+
92
+ #usage
93
+ sub usage(){
94
+ print STDERR "qsub-wrapper.pl [options]\n";
95
+ print STDERR "Options:\n";
96
+ print STDERR "-stdout <file> file to find stdout from target cmd (optional)\n";
97
+ print STDERR "-stderr <file> file to find stderr from target cmd (optional)\n";
98
+ print STDERR "-jidfile <file> file to find the submit jobid (for submit option)\n";
99
+ print STDERR "-pidfile <file> file to find the process id to the target job for deletion\n";
100
+ print STDERR "-prevjid <id> wait for the previous job with jobid=id to finish before starting (optional)\n";
101
+ print STDERR "-force-delete 1 force-delete without checking\n";
102
+ print STDERR "-qsub-prefix <string> name for sumbitted jobs (optional)\n";
103
+ print STDERR "-queue-parameters <string> parameter for the queue (optional)\n";
104
+ print STDERR "-old-sge ... assume Sun Grid Engine < 6.0\n";
105
+ print STDERR "-debug debug\n";
106
+ print STDERR "-version print version of the script\n";
107
+ print STDERR "-help this help\n";
108
+ exit(1);
109
+ }
110
+
111
+ #printparameters
112
+ sub print_parameters(){
113
+ # print STDERR "command: $cmd\n";
114
+ if (defined($cmdout)){ print STDERR "file for stdout: $cmdout\n"; }
115
+ else { print STDERR "file for stdout is not defined, stdout is discarded\n"; }
116
+ if (defined($cmderr)){ print STDERR "file for stdout: $cmderr\n"; }
117
+ else { print STDERR "file for stderr is not defined, stderr is discarded\n"; }
118
+ if (defined($jidfile)){ print STDERR "file for submit job id: $jidfile\n"; }
119
+ else { print STDERR "file for submit job id is not defined, jidfile is discarded\n"; }
120
+ print STDERR "Qsub name: $qsubname\n";
121
+ print STDERR "Queue parameters: $queueparameters\n";
122
+ print STDERR "parameters directly passed to cmd: $parameters\n";
123
+ exit(1);
124
+ }
125
+
126
+
127
+ #######################
128
+ #Script starts here
129
+
130
+ init();
131
+
132
+ my $tmpdir="$workingdir/tmp$pid";
133
+ my $jobscript="$workingdir/job$pid.sh";
134
+ my $qsubout="$workingdir/out.job$pid";
135
+ my $qsuberr="$workingdir/err.job$pid";
136
+
137
+
138
+
139
+ ### usage() if $cmd eq "";
140
+ ###
141
+ ### safesystem("mkdir -p $tmpdir") or die;
142
+ ###
143
+ ### preparing_script();
144
+ ###
145
+ #### my $maysync = $old_sge ? "" : "-sync y";
146
+ #### never run in syn mode
147
+ ###my $maysync = "";
148
+ ###
149
+ ###my $qsubcmd = "";
150
+ #### create the qsubcmd to submit to the queue with the parameter "-b yes"
151
+ ####my $qsubcmd="qsub $queueparameters $maysync -V -o $qsubout -e $qsuberr -N $qsubname -b yes $jobscript > $jobscript.log 2>&1";
152
+ ###
153
+ #### add -b yes if not yet defined, otherwise leave empty
154
+ ###$queueparameters .= " -b yes " if (index($queueparameters," -b ")==-1);
155
+ ###
156
+ ###
157
+ ###if (defined $prevjid && $prevjid!=-1 && $prevjidarraysize == 1) {
158
+ ### $qsubcmd="qsub $queueparameters $maysync -V -hold_jid $prevjid -o $qsubout -e $qsuberr -N $qsubname $jobscript > $jobscript.log 2>&1";
159
+ ###} elsif (defined $prevjid && $prevjidarraysize > 1) {
160
+ ### my $hj = "-hold_jid " . join(" -hold_jid ", @prevjidarray);
161
+ ### # print STDERR "hj is $hj\n";
162
+ ### $qsubcmd="qsub $queueparameters $maysync -V $hj -o $qsubout -e $qsuberr -N $qsubname $jobscript > $jobscript.log 2>&1";
163
+ ###} else {
164
+ ### $qsubcmd="qsub $queueparameters $maysync -V -o $qsubout -e $qsuberr -N $qsubname $jobscript > $jobscript.log 2>&1";
165
+ ###}
166
+ ###
167
+ ###print "submitting $qsubcmd\n";
168
+ ###
169
+ ####run the qsubcmd
170
+ ###
171
+ ###safesystem($qsubcmd) or die;
172
+ ###
173
+ ####getting id of submitted job#############
174
+ ###my $res;
175
+ ###open (IN,"$jobscript.log") or die "Can't read main job id: $jobscript.log";
176
+ ###chomp($res=<IN>);
177
+ ###my @arrayStr = split(/\s+/,$res);
178
+ ###my $id=$arrayStr[2];
179
+ ###die "Failed to get job id from $jobscript.log, got: $res"
180
+ ### if $id !~ /^[0-9]+$/;
181
+ ###close(IN);
182
+ ############################################
183
+ ###print STDERR " res:$res\n";
184
+ ###print STDERR " id:$id\n";
185
+ ###
186
+ ###open (JIDOUT,">$jidfile") or die "Can't open jid file to write";
187
+ ###print JIDOUT "$id\n";
188
+ ###close(JIDOUT);
189
+ ###
190
+ ###open (JOBNUMOUT,">$jidfile.job") or die "Can't open id.job file to write";
191
+ ###print JOBNUMOUT "$$\n";
192
+ ###close(JOBNUMOUT);
193
+ ###
194
+ ###if ($old_sge) {
195
+ ### # need to workaround -sync, add another job that will wait for the main one
196
+ ### # prepare a fake waiting script
197
+ ### my $syncscript = "$jobscript.sync_workaround_script.sh";
198
+ ### safesystem("echo 'date' > $syncscript") or die;
199
+ ###
200
+ ### my $checkpointfile = "$jobscript.sync_workaround_checkpoint";
201
+ ###
202
+ ### # ensure checkpoint does not exist
203
+ ### safesystem("\\rm -f $checkpointfile") or die;
204
+ ###
205
+ ### # start the 'hold' job, i.e. the job that will wait
206
+ #### $cmd="qsub -cwd $queueparameters -hold_jid $id -o $checkpointfile f -e /dev/null -N $qsubname.W $syncscript >& $qsubname.W.log";
207
+ ### $cmd="qsub -cwd $queueparameters -hold_jid $id -o $checkpointfile -e /dev/null -N $qsubname.W $syncscript >& $qsubname.W.log";
208
+ ### safesystem($cmd) or die;
209
+ ###
210
+ ### # and wait for checkpoint file to appear
211
+ ### my $nr=0;
212
+ ### while (!-e $checkpointfile) {
213
+ ### sleep(10);
214
+ ### $nr++;
215
+ ### print STDERR "w" if $nr % 3 == 0;
216
+ ### }
217
+ ### safesystem("\\rm -f $checkpointfile $syncscript") or die();
218
+ ### print STDERR "End of waiting workaround.\n";
219
+ ###}
220
+
221
+
222
+ my $failure=0;
223
+
224
+
225
+ if (!$force_delete) {
226
+ $failure=&check_exit_status();
227
+ print STDERR "check_exit_status returned $failure\n";
228
+ }
229
+
230
+
231
+ &kill_all_and_quit() if $failure;
232
+
233
+ &remove_temporary_files() if !$dbg;
234
+
235
+
236
+
237
+
238
+ sub check_exit_status(){
239
+ my $failure=0;
240
+
241
+ print STDERR "check_exit_status of submitted job $jid from file $qsubout\n";
242
+ open(IN,"$qsubout") or die "Can't read $qsubout";
243
+ while (<IN>){
244
+ $failure=1 if (/failed with exit status/);
245
+ }
246
+ close(IN);
247
+ return $failure;
248
+ }
249
+
250
+ sub kill_all_and_quit(){
251
+ my $my_username = undef;
252
+
253
+ # chomp($my_username = `whoami`);
254
+ #
255
+ # my $ssh = Net::OpenSSH::Compat::Perl->new($submithost, debug=>0);
256
+ #
257
+ # $ssh->login("$my_username",`cat /home/$my_username/accpw`);
258
+
259
+ my $ssh = Net::OpenSSH::Compat::Perl->new($submithost, debug=>0);
260
+
261
+ $ssh->login();
262
+
263
+ print STDERR "kill_all_and_quit\n";
264
+ print STDERR "qdel $jid\n";
265
+ # safesystem("qdel $jid");
266
+ $ssh->cmd("qdel $jid");
267
+
268
+ print STDERR "The submitted jobs died not correctly\n";
269
+ print STDERR "Send qdel signal to the submitted jobs\n";
270
+
271
+ exit(1);
272
+ }
273
+
274
+ sub remove_temporary_files(){
275
+ #removing temporary files
276
+
277
+ unlink("${jobscript}");
278
+ unlink("${jobscript}.log");
279
+ unlink("$qsubout");
280
+ unlink("$qsuberr");
281
+ rmdir("$tmpdir");
282
+ }
283
+
284
+ sub safesystem {
285
+ print STDERR "Executing: @_\n";
286
+ system(@_);
287
+ if ($? == -1) {
288
+ print STDERR "Failed to execute: @_\n $!\n";
289
+ exit(1);
290
+ }
291
+ elsif ($? & 127) {
292
+ printf STDERR "Execution of: @_\n died with signal %d, %s coredump\n",
293
+ ($? & 127), ($? & 128) ? 'with' : 'without';
294
+ exit(1);
295
+ }
296
+ else {
297
+ my $exitcode = $? >> 8;
298
+ print STDERR "Exit code: $exitcode\n" if $exitcode;
299
+ return ! $exitcode;
300
+ }
301
+ }
302
+
303
+ # look for the correct pwdcmd (pwd by default, pawd if it exists)
304
+ # I assume that pwd always exists
305
+ sub getPwdCmd(){
306
+ my $pwdcmd="pwd";
307
+ my $a;
308
+ chomp($a=`which pawd | head -1 | awk '{print $1}'`);
309
+ if ($a && -e $a){ $pwdcmd=$a; }
310
+ return $pwdcmd;
311
+ }
312
+
mosesdecoder/contrib/mert-sge-nosync/generic/qsub-wrapper-sge-nosync.pl ADDED
@@ -0,0 +1,320 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #! /usr/bin/perl
2
+
3
+ # $Id$
4
+ use strict;
5
+
6
+ #######################
7
+ #Default parameters
8
+ #parameters for submiiting processes through SGE
9
+ #NOTE: group name is ws06ossmt (with 2 's') and not ws06osmt (with 1 's')
10
+ my $queueparameters="";
11
+
12
+ # look for the correct pwdcmd
13
+ my $pwdcmd = getPwdCmd();
14
+
15
+ my $workingdir = `$pwdcmd`; chomp $workingdir;
16
+
17
+ my $uniqtime = `date +"%s%N"`; chomp $uniqtime;
18
+ my $uid = "$$".".".$uniqtime;
19
+
20
+
21
+ my $tmpdir="$workingdir/tmp$uid";
22
+ my $jobscript="$workingdir/job$uid.sh";
23
+ my $qsubout="$workingdir/out.job$uid";
24
+ my $qsuberr="$workingdir/err.job$uid";
25
+
26
+
27
+ $SIG{INT} = \&kill_all_and_quit; # catch exception for CTRL-C
28
+
29
+ my $help="";
30
+ my $dbg="";
31
+ my $version="";
32
+ my $qsubname="WR$uid";
33
+ my $cmd="";
34
+ my $cmdout=undef;
35
+ my $cmderr=undef;
36
+ my $jidfile=undef;
37
+ my $pidfile=undef;
38
+ my $prevjid=undef;
39
+ my $parameters="";
40
+ my $old_sge = 0; # assume grid engine < 6.0
41
+ my $prevjidarraysize = 0;
42
+ my @prevjidarray = ();
43
+
44
+ sub init(){
45
+ use Getopt::Long qw(:config pass_through);
46
+ GetOptions('version'=>\$version,
47
+ 'help'=>\$help,
48
+ 'debug'=>\$dbg,
49
+ 'qsub-prefix=s'=> \$qsubname,
50
+ 'command=s'=> \$cmd,
51
+ 'stdout=s'=> \$cmdout,
52
+ 'stderr=s'=> \$cmderr,
53
+ 'jidfile=s'=> \$jidfile,
54
+ 'prevjid=s'=> \$prevjid,
55
+ 'queue-parameters=s'=> \$queueparameters,
56
+ 'old-sge' => \$old_sge,
57
+ ) or exit(1);
58
+ $parameters="@ARGV";
59
+
60
+ # print STDERR "INPUT prevjid =+$prevjid+\n";
61
+ $prevjid =~ s/^\s+|\s+$//g;
62
+ # print STDERR "TRIMMED prevjid =+$prevjid+\n";
63
+
64
+ @prevjidarray = split(/\s+/,$prevjid);
65
+ $prevjidarraysize = scalar(@prevjidarray);
66
+
67
+ # print STDERR "arraysize: $prevjidarraysize\n";
68
+
69
+
70
+
71
+
72
+ version() if $version;
73
+ usage() if $help;
74
+ print_parameters() if $dbg;
75
+ }
76
+
77
+ #######################
78
+ ##print version
79
+ sub version(){
80
+ # print STDERR "version 1.0 (29-07-2006)\n";
81
+ print STDERR "version 1.1 (31-07-2006)\n";
82
+ exit(1);
83
+ }
84
+
85
+ #usage
86
+ sub usage(){
87
+ print STDERR "qsub-wrapper.pl [options]\n";
88
+ print STDERR "Options:\n";
89
+ print STDERR "-command <file> command to run\n";
90
+ print STDERR "-stdout <file> file to save stdout of cmd (optional)\n";
91
+ print STDERR "-stderr <file> file to save stderr of cmd (optional)\n";
92
+ print STDERR "-jidfile <file> file to save the submit jobid (for submit option)\n";
93
+ print STDERR "-prevjid <id> wait for the previous job with jobid=id to finish before starting (optional)\n";
94
+ print STDERR "-qsub-prefix <string> name for sumbitted jobs (optional)\n";
95
+ print STDERR "-queue-parameters <string> parameter for the queue (optional)\n";
96
+ print STDERR "-old-sge ... assume Sun Grid Engine < 6.0\n";
97
+ print STDERR "-debug debug\n";
98
+ print STDERR "-version print version of the script\n";
99
+ print STDERR "-help this help\n";
100
+ exit(1);
101
+ }
102
+
103
+ #printparameters
104
+ sub print_parameters(){
105
+ print STDERR "command: $cmd\n";
106
+ if (defined($cmdout)){ print STDERR "file for stdout: $cmdout\n"; }
107
+ else { print STDERR "file for stdout is not defined, stdout is discarded\n"; }
108
+ if (defined($cmderr)){ print STDERR "file for stdout: $cmderr\n"; }
109
+ else { print STDERR "file for stderr is not defined, stderr is discarded\n"; }
110
+ if (defined($jidfile)){ print STDERR "file for submit job id: $jidfile\n"; }
111
+ else { print STDERR "file for submit job id is not defined, jidfile is discarded\n"; }
112
+ print STDERR "Qsub name: $qsubname\n";
113
+ print STDERR "Queue parameters: $queueparameters\n";
114
+ print STDERR "parameters directly passed to cmd: $parameters\n";
115
+ exit(1);
116
+ }
117
+
118
+ #script creation
119
+ sub preparing_script(){
120
+ my $scriptheader="\#\!/bin/bash\n# the above line is ignored by qsub, unless parameter \"-b yes\" is set!\n\n";
121
+ $scriptheader.="uname -a\n\n";
122
+
123
+ $scriptheader.="cd $workingdir\n\n";
124
+
125
+ open (OUT, "> $jobscript");
126
+ print OUT $scriptheader;
127
+
128
+ print OUT "if $cmd $parameters > $tmpdir/cmdout$uid 2> $tmpdir/cmderr$uid ; then
129
+ echo 'succeeded'
130
+ else
131
+ echo failed with exit status \$\?
132
+ die=1
133
+ fi
134
+ ";
135
+
136
+ if (defined $cmdout){
137
+ print OUT "mv -f $tmpdir/cmdout$uid $cmdout || echo failed to preserve the log: $tmpdir/cmdout$uid\n\n";
138
+ }
139
+ else{
140
+ print OUT "rm -f $tmpdir/cmdout$uid\n\n";
141
+ }
142
+
143
+ if (defined $cmderr){
144
+ print OUT "mv -f $tmpdir/cmderr$uid $cmderr || echo failed to preserve the log: $tmpdir/cmderr$uid\n\n";
145
+ }
146
+ else{
147
+ print OUT "rm -f $tmpdir/cmderr$uid\n\n";
148
+ }
149
+ print OUT "if [ x\$die == 1 ]; then exit 1; fi\n";
150
+ close(OUT);
151
+
152
+ #setting permissions of the script
153
+ chmod(oct(755),$jobscript);
154
+ }
155
+
156
+ #######################
157
+ #Script starts here
158
+
159
+ init();
160
+
161
+ usage() if $cmd eq "";
162
+
163
+ safesystem("mkdir -p $tmpdir") or die;
164
+
165
+ preparing_script();
166
+
167
+ # my $maysync = $old_sge ? "" : "-sync y";
168
+ # never run in syn mode
169
+ my $maysync = "";
170
+
171
+ my $qsubcmd = "";
172
+ # create the qsubcmd to submit to the queue with the parameter "-b yes"
173
+ #my $qsubcmd="qsub $queueparameters $maysync -V -o $qsubout -e $qsuberr -N $qsubname -b yes $jobscript > $jobscript.log 2>&1";
174
+
175
+ # add -b yes if not yet defined, otherwise leave empty
176
+ $queueparameters .= " -b yes " if (index($queueparameters," -b ")==-1);
177
+
178
+
179
+ if (defined $prevjid && $prevjid!=-1 && $prevjidarraysize == 1) {
180
+ $qsubcmd="qsub $queueparameters $maysync -V -hold_jid $prevjid -o $qsubout -e $qsuberr -N $qsubname $jobscript > $jobscript.log 2>&1";
181
+ } elsif (defined $prevjid && $prevjidarraysize > 1) {
182
+ my $hj = "-hold_jid " . join(" -hold_jid ", @prevjidarray);
183
+ # print STDERR "hj is $hj\n";
184
+ $qsubcmd="qsub $queueparameters $maysync -V $hj -o $qsubout -e $qsuberr -N $qsubname $jobscript > $jobscript.log 2>&1";
185
+ } else {
186
+ $qsubcmd="qsub $queueparameters $maysync -V -o $qsubout -e $qsuberr -N $qsubname $jobscript > $jobscript.log 2>&1";
187
+ }
188
+
189
+ print "submitting $qsubcmd\n";
190
+
191
+ #run the qsubcmd
192
+
193
+ safesystem($qsubcmd) or die;
194
+
195
+ #getting id of submitted job#############
196
+ my $res;
197
+ open (IN,"$jobscript.log") or die "Can't read main job id: $jobscript.log";
198
+ chomp($res=<IN>);
199
+ my @arrayStr = split(/\s+/,$res);
200
+ my $id=$arrayStr[2];
201
+ die "Failed to get job id from $jobscript.log, got: $res"
202
+ if $id !~ /^[0-9]+$/;
203
+ close(IN);
204
+ #########################################
205
+ print STDERR " res:$res\n";
206
+ print STDERR " id:$id\n";
207
+
208
+ open (JIDOUT,">$jidfile") or die "Can't open jid file to write";
209
+ print JIDOUT "$id\n";
210
+ close(JIDOUT);
211
+
212
+ open (PIDOUT,">$jidfile.pid") or die "Can't open id.pid file to write";
213
+ print PIDOUT "$uid\n";
214
+ close(PIDOUT);
215
+
216
+ if ($old_sge) {
217
+ # need to workaround -sync, add another job that will wait for the main one
218
+ # prepare a fake waiting script
219
+ my $syncscript = "$jobscript.sync_workaround_script.sh";
220
+ safesystem("echo 'date' > $syncscript") or die;
221
+
222
+ my $checkpointfile = "$jobscript.sync_workaround_checkpoint";
223
+
224
+ # ensure checkpoint does not exist
225
+ safesystem("\\rm -f $checkpointfile") or die;
226
+
227
+ # start the 'hold' job, i.e. the job that will wait
228
+ # $cmd="qsub -cwd $queueparameters -hold_jid $id -o $checkpointfile -e /dev/null -N $qsubname.W $syncscript >& $qsubname.W.log";
229
+ $cmd="qsub -cwd $queueparameters -hold_jid $id -o $checkpointfile -e /dev/null -N $qsubname.W $syncscript >& $qsubname.W.log";
230
+ safesystem($cmd) or die;
231
+
232
+ # and wait for checkpoint file to appear
233
+ my $nr=0;
234
+ while (!-e $checkpointfile) {
235
+ sleep(10);
236
+ $nr++;
237
+ print STDERR "w" if $nr % 3 == 0;
238
+ }
239
+ safesystem("\\rm -f $checkpointfile $syncscript") or die();
240
+ print STDERR "End of waiting workaround.\n";
241
+ }
242
+
243
+
244
+
245
+
246
+ # my $failure=&check_exit_status();
247
+ # print STDERR "check_exit_status returned $failure\n";
248
+
249
+ # &kill_all_and_quit() if $failure;
250
+
251
+ # &remove_temporary_files() if !$dbg;
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+ sub check_exit_status(){
260
+ my $failure=0;
261
+
262
+ print STDERR "check_exit_status of submitted job $id\n";
263
+ open(IN,"$qsubout") or die "Can't read $qsubout";
264
+ while (<IN>){
265
+ $failure=1 if (/failed with exit status/);
266
+ }
267
+ close(IN);
268
+ return $failure;
269
+ }
270
+
271
+ sub kill_all_and_quit(){
272
+ print STDERR "kill_all_and_quit\n";
273
+ print STDERR "qdel $id\n";
274
+ safesystem("qdel $id");
275
+
276
+ print STDERR "The submitted jobs died not correctly\n";
277
+ print STDERR "Send qdel signal to the submitted jobs\n";
278
+
279
+ exit(1);
280
+ }
281
+
282
+ sub remove_temporary_files(){
283
+ #removing temporary files
284
+
285
+ unlink("${jobscript}");
286
+ unlink("${jobscript}.log");
287
+ unlink("$qsubout");
288
+ unlink("$qsuberr");
289
+ rmdir("$tmpdir");
290
+ }
291
+
292
+ sub safesystem {
293
+ print STDERR "Executing: @_\n";
294
+ system(@_);
295
+ if ($? == -1) {
296
+ print STDERR "Failed to execute: @_\n $!\n";
297
+ exit(1);
298
+ }
299
+ elsif ($? & 127) {
300
+ printf STDERR "Execution of: @_\n died with signal %d, %s coredump\n",
301
+ ($? & 127), ($? & 128) ? 'with' : 'without';
302
+ exit(1);
303
+ }
304
+ else {
305
+ my $exitcode = $? >> 8;
306
+ print STDERR "Exit code: $exitcode\n" if $exitcode;
307
+ return ! $exitcode;
308
+ }
309
+ }
310
+
311
+ # look for the correct pwdcmd (pwd by default, pawd if it exists)
312
+ # I assume that pwd always exists
313
+ sub getPwdCmd(){
314
+ my $pwdcmd="pwd";
315
+ my $a;
316
+ chomp($a=`which pawd | head -1 | awk '{print $1}'`);
317
+ if ($a && -e $a){ $pwdcmd=$a; }
318
+ return $pwdcmd;
319
+ }
320
+
mosesdecoder/contrib/mert-sge-nosync/training/mert-moses-sge-nosync.pl ADDED
@@ -0,0 +1,1633 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #! /usr/bin/perl -w
2
+ # $Id$
3
+ # Usage:
4
+ # mert-moses.pl <foreign> <english> <decoder-executable> <decoder-config>
5
+ # For other options see below or run 'mert-moses.pl --help'
6
+
7
+ # Notes:
8
+ # <foreign> and <english> should be raw text files, one sentence per line
9
+ # <english> can be a prefix, in which case the files are <english>0, <english>1, etc. are used
10
+
11
+ # Excerpts from revision history
12
+
13
+ # Sept 2011 multi-threaded mert (Barry Haddow)
14
+ # 3 Aug 2011 Added random directions, historic best, pairwise ranked (PK)
15
+ # Jul 2011 simplifications (Ondrej Bojar)
16
+ # -- rely on moses' -show-weights instead of parsing moses.ini
17
+ # ... so moses is also run once *before* mert starts, checking
18
+ # the model to some extent
19
+ # -- got rid of the 'triples' mess;
20
+ # use --range to supply bounds for random starting values:
21
+ # --range tm:-3..3 --range lm:-3..3
22
+ # 5 Aug 2009 Handling with different reference length policies (shortest, average, closest) for BLEU
23
+ # and case-sensistive/insensitive evaluation (Nicola Bertoldi)
24
+ # 5 Jun 2008 Forked previous version to support new mert implementation.
25
+ # 13 Feb 2007 Better handling of default values for lambda, now works with multiple
26
+ # models and lexicalized reordering
27
+ # 11 Oct 2006 Handle different input types through parameter --inputype=[0|1]
28
+ # (0 for text, 1 for confusion network, default is 0) (Nicola Bertoldi)
29
+ # 10 Oct 2006 Allow skip of filtering of phrase tables (--no-filter-phrase-table)
30
+ # useful if binary phrase tables are used (Nicola Bertoldi)
31
+ # 28 Aug 2006 Use either closest or average or shortest (default) reference
32
+ # length as effective reference length
33
+ # Use either normalization or not (default) of texts (Nicola Bertoldi)
34
+ # 31 Jul 2006 move gzip run*.out to avoid failure wit restartings
35
+ # adding default paths
36
+ # 29 Jul 2006 run-filter, score-nbest and mert run on the queue (Nicola; Ondrej had to type it in again)
37
+ # 28 Jul 2006 attempt at foolproof usage, strong checking of input validity, merged the parallel and nonparallel version (Ondrej Bojar)
38
+ # 27 Jul 2006 adding the safesystem() function to handle with process failure
39
+ # 22 Jul 2006 fixed a bug about handling relative path of configuration file (Nicola Bertoldi)
40
+ # 21 Jul 2006 adapted for Moses-in-parallel (Nicola Bertoldi)
41
+ # 18 Jul 2006 adapted for Moses and cleaned up (PK)
42
+ # 21 Jan 2005 unified various versions, thorough cleanup (DWC)
43
+ # now indexing accumulated n-best list solely by feature vectors
44
+ # 14 Dec 2004 reimplemented find_threshold_points in C (NMD)
45
+ # 25 Oct 2004 Use either average or shortest (default) reference
46
+ # length as effective reference length (DWC)
47
+ # 13 Oct 2004 Use alternative decoders (DWC)
48
+ # Original version by Philipp Koehn
49
+
50
+ use strict;
51
+ use Net::OpenSSH::Compat::Perl;
52
+ use FindBin qw($Bin);
53
+ use File::Basename;
54
+ use File::Path;
55
+ use File::Spec;
56
+ use Cwd;
57
+
58
+ my $SCRIPTS_ROOTDIR = $Bin;
59
+ $SCRIPTS_ROOTDIR =~ s/\/training$//;
60
+ $SCRIPTS_ROOTDIR = $ENV{"SCRIPTS_ROOTDIR"} if defined($ENV{"SCRIPTS_ROOTDIR"});
61
+
62
+ ## We preserve this bit of comments to keep the traditional weight ranges.
63
+ # "w" => [ [ 0.0, -1.0, 1.0 ] ], # word penalty
64
+ # "d" => [ [ 1.0, 0.0, 2.0 ] ], # lexicalized reordering model
65
+ # "lm" => [ [ 1.0, 0.0, 2.0 ] ], # language model
66
+ # "g" => [ [ 1.0, 0.0, 2.0 ], # generation model
67
+ # [ 1.0, 0.0, 2.0 ] ],
68
+ # "tm" => [ [ 0.3, 0.0, 0.5 ], # translation model
69
+ # [ 0.2, 0.0, 0.5 ],
70
+ # [ 0.3, 0.0, 0.5 ],
71
+ # [ 0.2, 0.0, 0.5 ],
72
+ # [ 0.0,-1.0, 1.0 ] ], # ... last weight is phrase penalty
73
+ # "lex"=> [ [ 0.1, 0.0, 0.2 ] ], # global lexical model
74
+ # "I" => [ [ 0.0,-1.0, 1.0 ] ], # input lattice scores
75
+
76
+
77
+
78
+ # moses.ini file uses FULL names for lambdas, while this training script
79
+ # internally (and on the command line) uses ABBR names.
80
+ my @ABBR_FULL_MAP = qw(d=weight-d lm=weight-l tm=weight-t w=weight-w
81
+ g=weight-generation lex=weight-lex I=weight-i);
82
+ my %ABBR2FULL = map {split/=/,$_,2} @ABBR_FULL_MAP;
83
+ my %FULL2ABBR = map {my ($a, $b) = split/=/,$_,2; ($b, $a);} @ABBR_FULL_MAP;
84
+
85
+ my $minimum_required_change_in_weights = 0.00001;
86
+ # stop if no lambda changes more than this
87
+
88
+ my $verbose = 0;
89
+ my $usage = 0; # request for --help
90
+
91
+ # We assume that if you don't specify working directory,
92
+ # we set the default is set to `pwd`/mert-work
93
+
94
+ my $___FIRSTJOBWAITID = undef; # wait for a job in the grid before first job starts
95
+
96
+ my $___WORKING_DIR = File::Spec->catfile(Cwd::getcwd(), "mert-work");
97
+ my $___DEV_F = undef; # required, input text to decode
98
+ my $___DEV_E = undef; # required, basename of files with references
99
+ my $___DECODER = undef; # required, pathname to the decoder executable
100
+ my $___CONFIG = undef; # required, pathname to startup ini file
101
+ my $___N_BEST_LIST_SIZE = 100;
102
+ my $___LATTICE_SAMPLES = 0;
103
+ my $queue_flags = "-hard"; # extra parameters for parallelizer
104
+ # the -l ws0ssmt was relevant only to JHU 2006 workshop
105
+ my $___JOBS = undef; # if parallel, number of jobs to use (undef or 0 -> serial)
106
+ my $___DECODER_FLAGS = ""; # additional parametrs to pass to the decoder
107
+ my $qsubprefix = "";
108
+ my $continue = 0; # should we try to continue from the last saved step?
109
+ my $skip_decoder = 0; # and should we skip the first decoder run (assuming we got interrupted during mert)
110
+ my $___FILTER_PHRASE_TABLE = 1; # filter phrase table
111
+ my $___PREDICTABLE_SEEDS = 0;
112
+ my $___START_WITH_HISTORIC_BESTS = 0; # use best settings from all previous iterations as starting points [Foster&Kuhn,2009]
113
+ my $___RANDOM_DIRECTIONS = 0; # search in random directions only
114
+ my $___NUM_RANDOM_DIRECTIONS = 0; # number of random directions, also works with default optimizer [Cer&al.,2008]
115
+ my $___PAIRWISE_RANKED_OPTIMIZER = 0; # use Hopkins&May[2011]
116
+ my $___PRO_STARTING_POINT = 0; # get a starting point from pairwise ranked optimizer
117
+ my $___RANDOM_RESTARTS = 20;
118
+ my $___HISTORIC_INTERPOLATION = 0; # interpolate optimize weights with previous iteration's weights [Hopkins&May,2011,5.4.3]
119
+ my $__THREADS = 0;
120
+
121
+ # Parameter for effective reference length when computing BLEU score
122
+ # Default is to use shortest reference
123
+ # Use "--shortest" to use shortest reference length
124
+ # Use "--average" to use average reference length
125
+ # Use "--closest" to use closest reference length
126
+ # Only one between --shortest, --average and --closest can be set
127
+ # If more than one choice the defualt (--shortest) is used
128
+ my $___SHORTEST = 0;
129
+ my $___AVERAGE = 0;
130
+ my $___CLOSEST = 0;
131
+
132
+ # Use "--nocase" to compute case-insensitive scores
133
+ my $___NOCASE = 0;
134
+
135
+ # Use "--nonorm" to non normalize translation before computing scores
136
+ my $___NONORM = 0;
137
+
138
+ # set 0 if input type is text, set 1 if input type is confusion network
139
+ my $___INPUTTYPE = 0;
140
+
141
+
142
+ my $mertdir = undef; # path to new mert directory
143
+ my $mertargs = undef; # args to pass through to mert & extractor
144
+ my $mertmertargs = undef; # args to pass through to mert only
145
+ my $extractorargs = undef; # args to pass through to extractor only
146
+ my $filtercmd = undef; # path to filter-model-given-input.pl
147
+ my $submithost = undef;
148
+ my $filterfile = undef;
149
+ my $qsubwrapper = undef;
150
+ my $qsubwrapper_exit = undef;
151
+ my $moses_parallel_cmd = undef;
152
+ my $poll_decoder_cmd = undef;
153
+ my $zipextcmd = undef;
154
+ my $zipextargs = undef;
155
+ my $processresultcmd = undef;
156
+ my $processresultargs = undef;
157
+ my $old_sge = 0; # assume sge<6.0
158
+ my $___CONFIG_ORIG = undef; # pathname to startup ini file before filtering
159
+ my $___ACTIVATE_FEATURES = undef; # comma-separated (or blank-separated) list of features to work on
160
+ # if undef work on all features
161
+ # (others are fixed to the starting values)
162
+ my $___RANGES = undef;
163
+ my $prev_aggregate_nbl_size = -1; # number of previous step to consider when loading data (default =-1)
164
+ # -1 means all previous, i.e. from iteration 1
165
+ # 0 means no previous data, i.e. from actual iteration
166
+ # 1 means 1 previous data , i.e. from the actual iteration and from the previous one
167
+ # and so on
168
+ my $maximum_iterations = 25;
169
+ my $cmd = undef;
170
+
171
+ #####################
172
+ my $processfeatlistcmd = undef;
173
+ my $processfeatlistargs = undef;
174
+ my $createconfigcmd = undef;
175
+ my $createconfigargs = undef;
176
+ my $decoderargs = undef;
177
+ #####################
178
+
179
+ use Getopt::Long;
180
+ GetOptions(
181
+ "prevjid=i" => \$___FIRSTJOBWAITID,
182
+ "working-dir=s" => \$___WORKING_DIR,
183
+ "input=s" => \$___DEV_F,
184
+ "inputtype=i" => \$___INPUTTYPE,
185
+ "refs=s" => \$___DEV_E,
186
+ "decoder=s" => \$___DECODER,
187
+ "config=s" => \$___CONFIG,
188
+ "nbest=i" => \$___N_BEST_LIST_SIZE,
189
+ "lattice-samples=i" => \$___LATTICE_SAMPLES,
190
+ "submithost=s" => \$submithost,
191
+ "queue-flags=s" => \$queue_flags,
192
+ "jobs=i" => \$___JOBS,
193
+ "decoder-flags=s" => \$___DECODER_FLAGS,
194
+ "continue" => \$continue,
195
+ "skip-decoder" => \$skip_decoder,
196
+ "shortest" => \$___SHORTEST,
197
+ "average" => \$___AVERAGE,
198
+ "closest" => \$___CLOSEST,
199
+ "nocase" => \$___NOCASE,
200
+ "nonorm" => \$___NONORM,
201
+ "help" => \$usage,
202
+ "verbose" => \$verbose,
203
+ "mertdir=s" => \$mertdir,
204
+ "mertargs=s" => \$mertargs,
205
+ "extractorargs=s" => \$extractorargs,
206
+ "mertmertargs=s" => \$mertmertargs,
207
+ "rootdir=s" => \$SCRIPTS_ROOTDIR,
208
+ "filtercmd=s" => \$filtercmd, # allow to override the default location
209
+ "filterfile=s" => \$filterfile, # input to filtering script (useful for lattices/confnets)
210
+ "qsubwrapper=s" => \$qsubwrapper, # allow to override the default location
211
+ "mosesparallelcmd=s" => \$moses_parallel_cmd, # allow to override the default location
212
+ "old-sge" => \$old_sge, #passed to moses-parallel
213
+ "filter-phrase-table!" => \$___FILTER_PHRASE_TABLE, # (dis)allow of phrase tables
214
+ "predictable-seeds" => \$___PREDICTABLE_SEEDS, # make random restarts deterministic
215
+ "historic-bests" => \$___START_WITH_HISTORIC_BESTS, # use best settings from all previous iterations as starting points
216
+ "random-directions" => \$___RANDOM_DIRECTIONS, # search only in random directions
217
+ "number-of-random-directions=i" => \$___NUM_RANDOM_DIRECTIONS, # number of random directions
218
+ "random-restarts=i" => \$___RANDOM_RESTARTS, # number of random restarts
219
+ "activate-features=s" => \$___ACTIVATE_FEATURES, #comma-separated (or blank-separated) list of features to work on (others are fixed to the starting values)
220
+ "range=s@" => \$___RANGES,
221
+ "prev-aggregate-nbestlist=i" => \$prev_aggregate_nbl_size, #number of previous step to consider when loading data (default =-1, i.e. all previous)
222
+ "maximum-iterations=i" => \$maximum_iterations,
223
+ "pairwise-ranked" => \$___PAIRWISE_RANKED_OPTIMIZER,
224
+ "pro-starting-point" => \$___PRO_STARTING_POINT,
225
+ "historic-interpolation=f" => \$___HISTORIC_INTERPOLATION,
226
+ "threads=i" => \$__THREADS
227
+ ) or exit(1);
228
+
229
+ # the 4 required parameters can be supplied on the command line directly
230
+ # or using the --options
231
+ if (scalar @ARGV == 4) {
232
+ # required parameters: input_file references_basename decoder_executable
233
+ $___DEV_F = shift;
234
+ $___DEV_E = shift;
235
+ $___DECODER = shift;
236
+ $___CONFIG = shift;
237
+ }
238
+
239
+ if ($usage || !defined $___DEV_F || !defined $___DEV_E || !defined $___DECODER || !defined $___CONFIG) {
240
+ print STDERR "usage: $0 input-text references decoder-executable decoder.ini
241
+ Options:
242
+ --prevjid=i ... previous job SGE ID to wait before first job starts
243
+ --working-dir=mert-dir ... where all the files are created
244
+ --nbest=100 ... how big nbestlist to generate
245
+ --lattice-samples ... how many lattice samples (Chatterjee & Cancedda, emnlp 2010)
246
+ --jobs=N ... set this to anything to run moses in parallel
247
+ --mosesparallelcmd=STR ... use a different script instead of moses-parallel
248
+ --submithost=STRING ... submithost from where qsub operates
249
+ --queue-flags=STRING ... anything you with to pass to qsub, eg.
250
+ '-l ws06osssmt=true'. The default is: '-hard'
251
+ To reset the parameters, please use
252
+ --queue-flags=' '
253
+ (i.e. a space between the quotes).
254
+ --decoder-flags=STRING ... extra parameters for the decoder
255
+ --continue ... continue from the last successful iteration
256
+ --skip-decoder ... skip the decoder run for the first time,
257
+ assuming that we got interrupted during
258
+ optimization
259
+ --shortest --average --closest
260
+ ... Use shortest/average/closest reference length
261
+ as effective reference length (mutually exclusive)
262
+ --nocase ... Do not preserve case information; i.e.
263
+ case-insensitive evaluation (default is false).
264
+ --nonorm ... Do not use text normalization (flag is not active,
265
+ i.e. text is NOT normalized)
266
+ --filtercmd=STRING ... path to filter-model-given-input.pl
267
+ --filterfile=STRING ... path to alternative to input-text for filtering
268
+ model. useful for lattice decoding
269
+ --rootdir=STRING ... where do helpers reside (if not given explicitly)
270
+ --mertdir=STRING ... path to new mert implementation
271
+ --mertargs=STRING ... extra args for both extractor and mert
272
+ --extractorargs=STRING ... extra args for extractor only
273
+ --mertmertargs=STRING ... extra args for mert only
274
+ --scorenbestcmd=STRING ... path to score-nbest.py
275
+ --old-sge ... passed to parallelizers, assume Grid Engine < 6.0
276
+ --inputtype=[0|1|2] ... Handle different input types: (0 for text,
277
+ 1 for confusion network, 2 for lattices,
278
+ default is 0)
279
+ --no-filter-phrase-table ... disallow filtering of phrase tables
280
+ (useful if binary phrase tables are available)
281
+ --random-restarts=INT ... number of random restarts (default: 20)
282
+ --predictable-seeds ... provide predictable seeds to mert so that random
283
+ restarts are the same on every run
284
+ --range=tm:0..1,-1..1 ... specify min and max value for some features
285
+ --range can be repeated as needed.
286
+ The order of the various --range specifications
287
+ is important only within a feature name.
288
+ E.g.:
289
+ --range=tm:0..1,-1..1 --range=tm:0..2
290
+ is identical to:
291
+ --range=tm:0..1,-1..1,0..2
292
+ but not to:
293
+ --range=tm:0..2 --range=tm:0..1,-1..1
294
+ --activate-features=STRING ... comma-separated list of features to optimize,
295
+ others are fixed to the starting values
296
+ default: optimize all features
297
+ example: tm_0,tm_4,d_0
298
+ --prev-aggregate-nbestlist=INT ... number of previous step to consider when
299
+ loading data (default = $prev_aggregate_nbl_size)
300
+ -1 means all previous, i.e. from iteration 1
301
+ 0 means no previous data, i.e. only the
302
+ current iteration
303
+ N means this and N previous iterations
304
+
305
+ --maximum-iterations=ITERS ... Maximum number of iterations. Default: $maximum_iterations
306
+ --random-directions ... search only in random directions
307
+ --number-of-random-directions=int ... number of random directions
308
+ (also works with regular optimizer, default: 0)
309
+ --pairwise-ranked ... Use PRO for optimisation (Hopkins and May, emnlp 2011)
310
+ --pro-starting-point ... Use PRO to get a starting point for MERT
311
+ --threads=NUMBER ... Use multi-threaded mert (must be compiled in).
312
+ --historic-interpolation ... Interpolate optimized weights with prior iterations' weight
313
+ (parameter sets factor [0;1] given to current weights)
314
+ ";
315
+ exit 1;
316
+ }
317
+
318
+
319
+ # Check validity of input parameters and set defaults if needed
320
+
321
+ print STDERR "Using SCRIPTS_ROOTDIR: $SCRIPTS_ROOTDIR\n";
322
+
323
+ # path of script for filtering phrase tables and running the decoder
324
+ $filtercmd="$SCRIPTS_ROOTDIR/training/filter-model-given-input.pl" if !defined $filtercmd;
325
+
326
+ if ( ! -x $filtercmd && ! $___FILTER_PHRASE_TABLE) {
327
+ print STDERR "Filtering command not found: $filtercmd.\n";
328
+ print STDERR "Use --filtercmd=PATH to specify a valid one or --no-filter-phrase-table\n";
329
+ exit 1;
330
+ }
331
+
332
+ $qsubwrapper = "$SCRIPTS_ROOTDIR/generic/qsub-wrapper-sge-nosync.pl" if !defined $qsubwrapper;
333
+
334
+ $qsubwrapper_exit = "$SCRIPTS_ROOTDIR/generic/qsub-wrapper-exit-sge-nosync.pl" if !defined $qsubwrapper_exit;
335
+
336
+ $moses_parallel_cmd = "$SCRIPTS_ROOTDIR/generic/moses-parallel-sge-nosync.pl"
337
+ if !defined $moses_parallel_cmd;
338
+
339
+ if (!defined $mertdir) {
340
+ $mertdir = "$SCRIPTS_ROOTDIR/../mert";
341
+ print STDERR "Assuming --mertdir=$mertdir\n";
342
+ }
343
+
344
+ my $mert_extract_cmd = "$mertdir/extractor";
345
+ my $mert_mert_cmd = "$mertdir/mert";
346
+ my $mert_pro_cmd = "$mertdir/pro";
347
+
348
+ die "Not executable: $mert_extract_cmd" if ! -x $mert_extract_cmd;
349
+ die "Not executable: $mert_mert_cmd" if ! -x $mert_mert_cmd;
350
+ die "Not executable: $mert_pro_cmd" if ! -x $mert_pro_cmd;
351
+
352
+ my $pro_optimizer = "$mertdir/megam_i686.opt"; # or set to your installation
353
+ if (($___PAIRWISE_RANKED_OPTIMIZER || $___PRO_STARTING_POINT) && ! -x $pro_optimizer) {
354
+ print "did not find $pro_optimizer, installing it in $mertdir\n";
355
+ `cd $mertdir; wget http://www.cs.utah.edu/~hal/megam/megam_i686.opt.gz;`;
356
+ `gunzip $pro_optimizer.gz`;
357
+ `chmod +x $pro_optimizer`;
358
+ die("ERROR: Installation of megam_i686.opt failed! Install by hand from http://www.cs.utah.edu/~hal/megam/") unless -x $pro_optimizer;
359
+ }
360
+
361
+ $mertargs = "" if !defined $mertargs;
362
+
363
+ my $scconfig = undef;
364
+ if ($mertargs =~ /\-\-scconfig\s+(.+?)(\s|$)/){
365
+ $scconfig=$1;
366
+ $scconfig =~ s/\,/ /g;
367
+ $mertargs =~ s/\-\-scconfig\s+(.+?)(\s|$)//;
368
+ }
369
+
370
+ # handling reference lengh strategy
371
+ if (($___CLOSEST + $___AVERAGE + $___SHORTEST) > 1){
372
+ die "You can specify just ONE reference length strategy (closest or shortest or average) not both\n";
373
+ }
374
+
375
+ if ($___SHORTEST){
376
+ $scconfig .= " reflen:shortest";
377
+ }elsif ($___AVERAGE){
378
+ $scconfig .= " reflen:average";
379
+ }elsif ($___CLOSEST){
380
+ $scconfig .= " reflen:closest";
381
+ }
382
+
383
+ # handling case-insensitive flag
384
+ if ($___NOCASE) {
385
+ $scconfig .= " case:false";
386
+ }else{
387
+ $scconfig .= " case:true";
388
+ }
389
+ $scconfig =~ s/^\s+//;
390
+ $scconfig =~ s/\s+$//;
391
+ $scconfig =~ s/\s+/,/g;
392
+
393
+ $scconfig = "--scconfig $scconfig" if ($scconfig);
394
+
395
+ my $mert_extract_args=$mertargs;
396
+ $mert_extract_args .=" $scconfig";
397
+ $mert_extract_args .=" $extractorargs";
398
+
399
+ $mertmertargs = "" if !defined $mertmertargs;
400
+
401
+ my $mert_mert_args="$mertargs $mertmertargs";
402
+ $mert_mert_args =~ s/\-+(binary|b)\b//;
403
+ $mert_mert_args .=" $scconfig";
404
+ if ($___ACTIVATE_FEATURES){ $mert_mert_args .=" -o \"$___ACTIVATE_FEATURES\""; }
405
+
406
+ my ($just_cmd_filtercmd,$x) = split(/ /,$filtercmd);
407
+ die "Not executable: $just_cmd_filtercmd" if ! -x $just_cmd_filtercmd;
408
+ die "Not executable: $moses_parallel_cmd" if defined $___JOBS && ! -x $moses_parallel_cmd;
409
+ die "Not executable: $qsubwrapper" if defined $___JOBS && ! -x $qsubwrapper;
410
+ die "Not executable: $___DECODER" if ! -x $___DECODER;
411
+
412
+ my $input_abs = ensure_full_path($___DEV_F);
413
+ die "File not found: $___DEV_F (interpreted as $input_abs)."
414
+ if ! -e $input_abs;
415
+ $___DEV_F = $input_abs;
416
+
417
+ # Option to pass to qsubwrapper and moses-parallel
418
+ my $pass_old_sge = $old_sge ? "-old-sge" : "";
419
+
420
+ my $decoder_abs = ensure_full_path($___DECODER);
421
+ die "File not executable: $___DECODER (interpreted as $decoder_abs)."
422
+ if ! -x $decoder_abs;
423
+ $___DECODER = $decoder_abs;
424
+
425
+ my $ref_abs = ensure_full_path($___DEV_E);
426
+ # check if English dev set (reference translations) exist and store a list of all references
427
+ my @references;
428
+ if (-e $ref_abs) {
429
+ push @references, $ref_abs;
430
+ }
431
+ else {
432
+ # if multiple file, get a full list of the files
433
+ my $part = 0;
434
+ if (! -e $ref_abs."0" && -e $ref_abs.".ref0") {
435
+ $ref_abs .= ".ref";
436
+ }
437
+ while (-e $ref_abs.$part) {
438
+ push @references, $ref_abs.$part;
439
+ $part++;
440
+ }
441
+ die("Reference translations not found: $___DEV_E (interpreted as $ref_abs)") unless $part;
442
+ }
443
+
444
+ my $config_abs = ensure_full_path($___CONFIG);
445
+ die "File not found: $___CONFIG (interpreted as $config_abs)."
446
+ if ! -e $config_abs;
447
+ $___CONFIG = $config_abs;
448
+
449
+ # moses should use our config
450
+ if ($___DECODER_FLAGS =~ /(^|\s)-(config|f) /
451
+ || $___DECODER_FLAGS =~ /(^|\s)-(ttable-file|t) /
452
+ || $___DECODER_FLAGS =~ /(^|\s)-(distortion-file) /
453
+ || $___DECODER_FLAGS =~ /(^|\s)-(generation-file) /
454
+ || $___DECODER_FLAGS =~ /(^|\s)-(lmodel-file) /
455
+ || $___DECODER_FLAGS =~ /(^|\s)-(global-lexical-file) /
456
+ ) {
457
+ die "It is forbidden to supply any of -config, -ttable-file, -distortion-file, -generation-file or -lmodel-file in the --decoder-flags.\nPlease use only the --config option to give the config file that lists all the supplementary files.";
458
+ }
459
+
460
+ # as weights are normalized in the next steps (by cmert)
461
+ # normalize initial LAMBDAs, too
462
+ my $need_to_normalize = 1;
463
+
464
+ #store current directory and create the working directory (if needed)
465
+ my $cwd = `pawd 2>/dev/null`;
466
+ if(!$cwd){$cwd = `pwd`;}
467
+ chomp($cwd);
468
+
469
+ mkpath($___WORKING_DIR);
470
+
471
+ {
472
+ # open local scope
473
+
474
+ #chdir to the working directory
475
+ chdir($___WORKING_DIR) or die "Can't chdir to $___WORKING_DIR";
476
+
477
+ # fixed file names
478
+ my $mert_outfile = "mert.out";
479
+ my $mert_logfile = "mert.log";
480
+ my $weights_in_file = "init.opt";
481
+ my $weights_out_file = "weights.txt";
482
+
483
+ # set start run
484
+ my $start_run = 1; ## START FROM run>1 is not supported
485
+ my $bestpoint = undef;
486
+ my $devbleu = undef;
487
+ my $sparse_weights_file = undef;
488
+ my $jobid = -1;
489
+
490
+ my $prev_feature_file = undef;
491
+ my $prev_score_file = undef;
492
+ my $prev_init_file = undef;
493
+
494
+
495
+ #########################
496
+ # set jobid to trace different jobs
497
+ my $prevjid = undef;
498
+
499
+
500
+ ##################################################
501
+ # STEP 1: FILTER PHRASE TABLE ####################
502
+ ##################################################
503
+
504
+ if ($___FILTER_PHRASE_TABLE) {
505
+ my $outdir = "filtered";
506
+ if (-e "$outdir/moses.ini") {
507
+ print STDERR "Assuming the tables are already filtered, reusing $outdir/moses.ini\n";
508
+ }
509
+ else {
510
+ # filter the phrase tables with respect to input, use --decoder-flags
511
+ print STDERR "filtering the phrase tables... ".`date`;
512
+ my $___FILTER_F = $___DEV_F;
513
+ $___FILTER_F = $filterfile if (defined $filterfile);
514
+ $cmd = "$filtercmd ./$outdir $___CONFIG $___FILTER_F";
515
+ if (!defined $___FIRSTJOBWAITID) {
516
+ # &submit_or_exec($cmd,"filterphrases.out","filterphrases.err","filterphrases.id");
517
+ $qsubprefix = "filph";
518
+ &submit_or_exec_thu_host($submithost,"","",$cmd,"","filterphrases.out","filterphrases.err","filterphrases.id");
519
+ } else {
520
+ # &submit_or_exec($cmd,"filterphrases.out","filterphrases.err","filterphrases.id",$___FIRSTJOBWAITID);
521
+ $qsubprefix = "filph";
522
+ &submit_or_exec_thu_host($submithost,"","",$cmd,"","filterphrases.out","filterphrases.err","filterphrases.id",$___FIRSTJOBWAITID);
523
+ }
524
+ chomp($jobid=`tail -n 1 filterphrases.id`);
525
+ $prevjid = $jobid;
526
+ print STDERR "JOBID for filterphrases is $prevjid\n";
527
+ ## clear up tmp
528
+ &exit_submit_thu_host($submithost,"","","","filterphrases.out","filterphrases.err","filterphrases.id","filterphrases.id.pid",$prevjid);
529
+ }
530
+
531
+ # make a backup copy of startup ini filepath
532
+ $___CONFIG_ORIG = $___CONFIG;
533
+ # the decoder should now use the filtered model
534
+ $___CONFIG = "$outdir/moses.ini";
535
+ }
536
+ else{
537
+ # do not filter phrase tables (useful if binary phrase tables are available)
538
+ # use the original configuration file
539
+ $___CONFIG_ORIG = $___CONFIG;
540
+ }
541
+
542
+ #################################################
543
+ ######## STEP 2: CHECK moses.ini ################
544
+ #################################################
545
+
546
+
547
+ # path of script for filtering phrase tables and running the decoder ------------
548
+ $processfeatlistcmd="$SCRIPTS_ROOTDIR/training/sge-nosync/process-featlist-sge-nosync.pl" if !defined $processfeatlistcmd;
549
+
550
+ $processfeatlistargs = "" if !defined $processfeatlistargs;
551
+ $processfeatlistargs = "$processfeatlistargs --range $___RANGES" if (defined $___RANGES);
552
+ $processfeatlistargs = "$processfeatlistargs --decoder-flags $___DECODER_FLAGS" if (!$___DECODER_FLAGS eq "");
553
+
554
+ $cmd = "$processfeatlistcmd $___DECODER $___CONFIG --inputtype $___INPUTTYPE $processfeatlistargs";
555
+
556
+ if (defined $prevjid) {
557
+ $qsubprefix = "proclist";
558
+ &submit_or_exec_thu_host($submithost,"","",$cmd,"","processfeatlist.out","processfeatlist.err","processfeatlist.id",$prevjid);
559
+ } else {
560
+ $qsubprefix = "proclist";
561
+ &submit_or_exec_thu_host($submithost,"","",$cmd,"","processfeatlist.out","processfeatlist.err","processfeatlist.id");
562
+ }
563
+ chomp($jobid=`tail -n 1 processfeatlist.id`);
564
+ $prevjid = $jobid;
565
+ #----------------------------------------------------------------------------------
566
+ ## clear up tmp
567
+ &exit_submit_thu_host($submithost,"","","","processfeatlist.out","processfeatlist.err","processfeatlist.id","processfeatlist.id.pid",$prevjid);
568
+
569
+ # we run moses to check validity of moses.ini and to obtain all the feature
570
+ # names
571
+ ##COPIED# my $featlist = get_featlist_from_moses($___CONFIG);
572
+ ##COPIED#$featlist = insert_ranges_to_featlist($featlist, $___RANGES);
573
+ ##COPIED#
574
+ ##COPIED## Mark which features are disabled:
575
+ ##COPIED#if (defined $___ACTIVATE_FEATURES) {
576
+ ##COPIED# my %enabled = map { ($_, 1) } split /[, ]+/, $___ACTIVATE_FEATURES;
577
+ ##COPIED# my %cnt;
578
+ ##COPIED# for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
579
+ ##COPIED# my $name = $featlist->{"names"}->[$i];
580
+ ##COPIED# $cnt{$name} = 0 if !defined $cnt{$name};
581
+ ##COPIED# $featlist->{"enabled"}->[$i] = $enabled{$name."_".$cnt{$name}};
582
+ ##COPIED# $cnt{$name}++;
583
+ ##COPIED# }
584
+ ##COPIED#} else {
585
+ ##COPIED# # all enabled
586
+ ##COPIED# for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
587
+ ##COPIED# $featlist->{"enabled"}->[$i] = 1;
588
+ ##COPIED# }
589
+ ##COPIED#}
590
+ ##COPIED#
591
+ ##COPIED#print STDERR "MERT starting values and ranges for random generation:\n";
592
+ ##COPIED#for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
593
+ ##COPIED# my $name = $featlist->{"names"}->[$i];
594
+ ##COPIED# my $val = $featlist->{"values"}->[$i];
595
+ ##COPIED# my $min = $featlist->{"mins"}->[$i];
596
+ ##COPIED# my $max = $featlist->{"maxs"}->[$i];
597
+ ##COPIED# my $enabled = $featlist->{"enabled"}->[$i];
598
+ ##COPIED# printf STDERR " %5s = %7.3f", $name, $val;
599
+ ##COPIED# if ($enabled) {
600
+ ##COPIED# printf STDERR " (%5.2f .. %5.2f)\n", $min, $max;
601
+ ##COPIED# } else {
602
+ ##COPIED# print STDERR " --- inactive, not optimized ---\n";
603
+ ##COPIED# }
604
+ ##COPIED#}
605
+
606
+ ##############################################################
607
+ # if continue from last section ######
608
+ ######################################
609
+ ##!#if ($continue) {
610
+ ##!# # getting the last finished step
611
+ ##!# print STDERR "Trying to continue an interrupted optimization.\n";
612
+ ##!# open IN, "finished_step.txt" or die "Failed to find the step number, failed to read finished_step.txt";
613
+ ##!# my $step = <IN>;
614
+ ##!# chomp $step;
615
+ ##!# close IN;
616
+ ##!#
617
+ ##!# print STDERR "Last finished step is $step\n";
618
+ ##!#
619
+ ##!# # getting the first needed step
620
+ ##!# my $firststep;
621
+ ##!# if ($prev_aggregate_nbl_size==-1){
622
+ ##!# $firststep=1;
623
+ ##!# }
624
+ ##!# else{
625
+ ##!# $firststep=$step-$prev_aggregate_nbl_size+1;
626
+ ##!# $firststep=($firststep>0)?$firststep:1;
627
+ ##!# }
628
+ ##!#
629
+ ##!##checking if all needed data are available
630
+ ##!## get $prev_feature_file, $prev_score_file, $prev_init_file
631
+ ##!# if ($firststep<=$step){
632
+ ##!# print STDERR "First previous needed data index is $firststep\n";
633
+ ##!# print STDERR "Checking whether all needed data (from step $firststep to step $step) are available\n";
634
+ ##!#
635
+ ##!# for (my $prevstep=$firststep; $prevstep<=$step;$prevstep++){
636
+ ##!# print STDERR "Checking whether data of step $prevstep are available\n";
637
+ ##!# if (! -e "run$prevstep.features.dat"){
638
+ ##!# die "Can't start from step $step, because run$prevstep.features.dat was not found!";
639
+ ##!# }else{
640
+ ##!# if (defined $prev_feature_file){
641
+ ##!# $prev_feature_file = "${prev_feature_file},run$prevstep.features.dat";
642
+ ##!# }
643
+ ##!# else{
644
+ ##!# $prev_feature_file = "run$prevstep.features.dat";
645
+ ##!# }
646
+ ##!# }
647
+ ##!# if (! -e "run$prevstep.scores.dat"){
648
+ ##!# die "Can't start from step $step, because run$prevstep.scores.dat was not found!";
649
+ ##!# }else{
650
+ ##!# if (defined $prev_score_file){
651
+ ##!# $prev_score_file = "${prev_score_file},run$prevstep.scores.dat";
652
+ ##!# }
653
+ ##!# else{
654
+ ##!# $prev_score_file = "run$prevstep.scores.dat";
655
+ ##!# }
656
+ ##!# }
657
+ ##!# if (! -e "run$prevstep.${weights_in_file}"){
658
+ ##!# die "Can't start from step $step, because run$prevstep.${weights_in_file} was not found!";
659
+ ##!# }else{
660
+ ##!# if (defined $prev_init_file){
661
+ ##!# $prev_init_file = "${prev_init_file},run$prevstep.${weights_in_file}";
662
+ ##!# }
663
+ ##!# else{
664
+ ##!# $prev_init_file = "run$prevstep.${weights_in_file}";
665
+ ##!# }
666
+ ##!# }
667
+ ##!# }
668
+ ##!# if (! -e "run$step.weights.txt"){
669
+ ##!# die "Can't start from step $step, because run$step.weights.txt was not found!";
670
+ ##!# }
671
+ ##!# if (! -e "run$step.$mert_logfile"){
672
+ ##!# die "Can't start from step $step, because run$step.$mert_logfile was not found!";
673
+ ##!# }
674
+ ##!# if (! -e "run$step.best$___N_BEST_LIST_SIZE.out.gz"){
675
+ ##!# die "Can't start from step $step, because run$step.best$___N_BEST_LIST_SIZE.out.gz was not found!";
676
+ ##!# }
677
+ ##!# print STDERR "All needed data are available\n";
678
+ ##!#
679
+ ##!# print STDERR "Loading information from last step ($step)\n";
680
+ ##!# my %dummy; # sparse features
681
+ ##!# ($bestpoint,$devbleu) = &get_weights_from_mert("run$step.$mert_outfile","run$step.$mert_logfile",scalar @{$featlist->{"names"}},\%dummy);
682
+ ##!# die "Failed to parse mert.log, missed Best point there."
683
+ ##!# if !defined $bestpoint || !defined $devbleu;
684
+ ##!# print "($step) BEST at $step $bestpoint => $devbleu at ".`date`;
685
+ ##!# my @newweights = split /\s+/, $bestpoint;
686
+ ##!#
687
+ ##!# # Sanity check: order of lambdas must match
688
+ ##!# sanity_check_order_of_lambdas($featlist,
689
+ ##!# "gunzip -c < run$step.best$___N_BEST_LIST_SIZE.out.gz |");
690
+ ##!#
691
+ ##!# # update my cache of lambda values
692
+ ##!# $featlist->{"values"} = \@newweights;
693
+ ##!# }
694
+ ##!# else{
695
+ ##!# print STDERR "No previous data are needed\n";
696
+ ##!# }
697
+ ##!#
698
+ ##!# $start_run = $step +1;
699
+ ##!# }
700
+ #####################################
701
+ ## If continue from last section ####
702
+ #####################################
703
+
704
+
705
+ print STDERR "I am about to start main loop!!!\n";
706
+
707
+ ### load featlist when needed
708
+ # my $featlist = get_featlist_from_moses($___CONFIG);
709
+ # my $featlist = undef;
710
+ ###### MERT MAIN LOOP
711
+
712
+
713
+
714
+ my $run=$start_run-1;
715
+
716
+ my $oldallsorted = undef;
717
+ my $allsorted = undef;
718
+
719
+ my $nbest_file=undef;
720
+ my $lsamp_file=undef; #Lattice samples
721
+ my $orig_nbest_file=undef; # replaced if lattice sampling
722
+
723
+
724
+
725
+ # ------------------------------------------------------------------------
726
+ # ------ get_featlist_and_create_config (only for run 1) -----------------
727
+ # ------------------------------------------------------------------------
728
+ $createconfigcmd="$SCRIPTS_ROOTDIR/training/sge-nosync/create-config-sge-nosync.pl" if !defined $createconfigcmd;
729
+
730
+ $createconfigargs = "" if !defined $createconfigargs;
731
+ $createconfigargs = "$createconfigargs --range $___RANGES" if (defined $___RANGES);
732
+ $createconfigargs = "$createconfigargs --decoder-flags $___DECODER_FLAGS" if (!$___DECODER_FLAGS eq "");
733
+ $createconfigargs = "$createconfigargs --devbleu $devbleu" if (defined $devbleu);
734
+ $createconfigargs = "$createconfigargs --sparse_weights_file $sparse_weights_file" if (defined $sparse_weights_file);
735
+ $createconfigargs = "$createconfigargs --working-dir $___WORKING_DIR" if (defined $___WORKING_DIR);
736
+
737
+ my $cmd = "$createconfigcmd $___DEV_F $___DECODER $___CONFIG first --inputtype $___INPUTTYPE $createconfigargs";
738
+
739
+ if (defined $prevjid) {
740
+ $qsubprefix = "firstcfg";
741
+ &submit_or_exec_thu_host($submithost,"","",$cmd,"","createconfigfirstrun.out","createconfigfirstrun.err","createconfigfirstrun.id",$prevjid);
742
+ } else {
743
+ $qsubprefix = "firstcfg";
744
+ &submit_or_exec_thu_host($submithost,"","",$cmd,"","createconfigfirstrun.out","createconfigfirstrun.err","createconfigfirstrun.id");
745
+ }
746
+ chomp($jobid=`tail -n 1 createconfigfirstrun.id`);
747
+ $prevjid = $jobid;
748
+ ## clear up tmp
749
+ &exit_submit_thu_host($submithost,"","","","createconfigfirstrun.out","createconfigfirstrun.err","createconfigfirstrun.id","createconfigfirstrun.id.pid",$prevjid);
750
+
751
+ ##COPIED# create_config($___CONFIG, "./run$run.moses.ini", $featlist, $run, (defined$devbleu?$devbleu:"--not-estimated--"),$sparse_weights_file);
752
+ # -------------------------------------------------------------------------
753
+ # -------------------------------------------------------------------------
754
+ print "create config for first run is done!\n";
755
+
756
+
757
+ while(1) {
758
+ $run++;
759
+ if ($maximum_iterations && $run > $maximum_iterations) {
760
+ print "Maximum number of iterations exceeded - stopping\n";
761
+ last;
762
+ }
763
+ # run beamdecoder with option to output nbestlists
764
+ # the end result should be (1) @NBEST_LIST, a list of lists; (2) @SCORE, a list of lists of lists
765
+
766
+ print "run $run start at ".`date`;
767
+
768
+
769
+
770
+
771
+ ###################################################
772
+ # step 3: decode
773
+ ###################################################
774
+
775
+ # path of script for running the decoder ------------
776
+ $moses_parallel_cmd="$SCRIPTS_ROOTDIR/generic/moses-parallel-sge-nosync.pl" if !defined $moses_parallel_cmd;
777
+ my $decoder_cmd;
778
+
779
+ if (defined $___JOBS && $___JOBS > 0 ) {
780
+ # not support -lattice-samples
781
+ # $decoder_cmd = "$moses_parallel_cmd $pass_old_sge -config $___CONFIG -inputtype $___INPUTTYPE -queue-parameters \"$queue_flags\" -decoder-flags $___DECODER_FLAGS -lattice-samples $___LATTICE_SAMPLES -n-best-list-size $___N_BEST_LIST_SIZE -input-file $___DEV_F -jobs $___JOBS -decoder $___DECODER -run $run -need-to-normalize $need_to_normalize -working-dir $___WORKING_DIR -qsubwrapper $qsubwrapper > run$run.out";
782
+
783
+ $decoderargs = "";
784
+ ### DO NOT pass $___DECODER_FLAGS!! load the latest decoding parameter from inside the script
785
+ # $decoderargs = "-decoder-flags $___DECODER_FLAGS " if (!$___DECODER_FLAGS eq "");
786
+ $decoderargs = "-script-rootdir $SCRIPTS_ROOTDIR " if (!$SCRIPTS_ROOTDIR eq "");
787
+ $decoderargs = "$decoderargs -lattice-samples $___LATTICE_SAMPLES " if ($___LATTICE_SAMPLES != 0);
788
+
789
+ $decoder_cmd = "$moses_parallel_cmd $pass_old_sge -config $___CONFIG -inputtype $___INPUTTYPE -submithost \"$submithost\" -queue-parameters \"$queue_flags\" $decoderargs -n-best-list-size $___N_BEST_LIST_SIZE -input-file $___DEV_F -jobs $___JOBS -decoder $___DECODER -run $run -need-to-normalize $need_to_normalize -working-dir $___WORKING_DIR -qsubwrapper $qsubwrapper -qsubwrapper-exit $qsubwrapper_exit > run$run.out";
790
+ } else {
791
+ print STDERR "Execute without going through grid is not supported!\n";
792
+ exit(1);
793
+ }
794
+
795
+ if (defined $prevjid) {
796
+ $qsubprefix="decode$run";
797
+ &submit_or_exec_thu_host($submithost,"","",$decoder_cmd,"","decode$run.out","decode$run.err","decode$run.id",$prevjid);
798
+ } else {
799
+ $qsubprefix="decode$run";
800
+ &submit_or_exec_thu_host($submithost,"","",$decoder_cmd,"","decode$run.out","decode$run.err","decode$run.id");
801
+ }
802
+ ## may have to change to decode$run.last.id to retrieve later job id.
803
+ $need_to_normalize = 0;
804
+ chomp($jobid=`tail -n 1 decode$run.id`);
805
+ $prevjid = $jobid;
806
+
807
+ # safesystem($decode_cmd) or die "The decoder died. CONFIG WAS $decoder_config \n";
808
+
809
+ ###################################################
810
+ # step 4: define wait job
811
+ ###################################################
812
+ $poll_decoder_cmd="$SCRIPTS_ROOTDIR/training/sge-nosync/poll-decoder.pl -poll-target decode$run.W.out";
813
+
814
+ if (defined $prevjid) {
815
+ $qsubprefix = "poll$run";
816
+ &submit_or_exec_thu_host($submithost,"","",$poll_decoder_cmd,"","decode$run.POLL.out","decode$run.POLL.err","decode$run.POLL.id",$prevjid);
817
+ } else {
818
+ die "Step 4 (poll_decoder): Cannot find previous process for sequential submit\n";
819
+ }
820
+
821
+ chomp($jobid=`tail -n 1 decode$run.POLL.id`);
822
+ $prevjid = $jobid;
823
+
824
+ ##################################################
825
+ # clear-up (step 3 and step 4)
826
+ ##################################################
827
+ # job for moses-parallel-sge-nosync.pl
828
+ &exit_submit_thu_host($submithost,"","","","decode$run.out","decode$run.err","decode$run.id","decode$run.id.pid",$prevjid);
829
+ ## waitall.sh job (cannot submit here because pid not established)
830
+ ##&exit_submit("decode$run.W.out","decode$run.W.err","decode$run.W.id","decode$run.W.id.pid",$prevjid);
831
+ # polling job
832
+ &exit_submit_thu_host($submithost,"","","","decode$run.POLL.out","decode$run.POLL.err","decode$run.POLL.id","decode$run.POLL.id.pid",$prevjid);
833
+
834
+
835
+
836
+ ###################################################
837
+ # step 5: zip and extract
838
+ ###################################################
839
+ $zipextcmd="$SCRIPTS_ROOTDIR/training/sge-nosync/zipextract-decoder-result.pl" if !defined $zipextcmd;
840
+ $zipextargs=" -run $run";
841
+ $zipextargs.=" -mertdir $mertdir" if defined $mertdir;
842
+ $zipextargs.=" $___DEV_E ./run$run.moses.ini";
843
+
844
+ $cmd = "$zipextcmd $zipextargs";
845
+
846
+ if (defined $prevjid){
847
+ $qsubprefix="zip$run";
848
+ &submit_or_exec_thu_host($submithost,"","",$cmd,"","zipext$run.out","zipext$run.err","zipext$run.id",$prevjid);
849
+ } else {
850
+ die "Step 5 (zip extract): Cannot find previous process for sequential submit\n";
851
+ }
852
+ chomp($jobid=`tail -n 1 zipext$run.id`);
853
+ $prevjid = $jobid;
854
+
855
+ ## clear-up tmp ###
856
+ &exit_submit_thu_host($submithost,"","","","zipext$run.out","zipext$run.err","zipext$run.id","zipext$run.id.pid",$prevjid);
857
+
858
+ ####################################################
859
+ # step 6: process results (mert)
860
+ ####################################################
861
+ $processresultcmd="$SCRIPTS_ROOTDIR/training/sge-nosync/process-moses-result-sge-nosync.pl" if !defined $processresultcmd;
862
+ $processresultargs=" -run $run -submithost $submithost -queue-flags \"$queue_flags\"";
863
+ $processresultargs.=" -inputtype $___INPUTTYPE";
864
+ $processresultargs.=" -mertdir $mertdir" if defined $mertdir;
865
+ # $processresultargs.=" $___DEV_F $___DECODER ./run$run.moses.ini";
866
+ $processresultargs.=" $___DEV_F $___DECODER $___CONFIG";
867
+
868
+ $cmd = "$processresultcmd $processresultargs";
869
+
870
+ if (defined $prevjid){
871
+ $qsubprefix="MERT$run";
872
+ &submit_or_exec_thu_host($submithost,"","",$cmd,"","processmoses$run.out","processmoses$run.err","processmoses$run.id",$prevjid);
873
+ } else {
874
+ die "Step 6 (process results - (mert)): Cannot find previous process for sequential submit\n";
875
+ }
876
+ chomp($jobid=`tail -n 1 processmoses$run.id`);
877
+ $prevjid = $jobid;
878
+
879
+ ## clear-up tmp ##
880
+ &exit_submit_thu_host($submithost,"","","","processmoses$run.out","processmoses$run.err","processmoses$run.id","processmoses$run.id.pid",$prevjid);
881
+
882
+ ### sleep to prevent batch select in short time
883
+ sleep(1);
884
+
885
+ ##!# else {
886
+ ##!# $nbest_file="run$run.best$___N_BEST_LIST_SIZE.out.gz";
887
+ ##!# print "skipped decoder run $run\n";
888
+ ##!# $skip_decoder = 0;
889
+ ##!# $need_to_normalize = 0;
890
+ ##!# }
891
+ }
892
+
893
+
894
+ #################################################
895
+ # step 7: write out the final files
896
+ #################################################
897
+ $createconfigcmd="$SCRIPTS_ROOTDIR/training/sge-nosync/create-config-sge-nosync.pl" if !defined $createconfigcmd;
898
+
899
+ $createconfigargs = "" if !defined $createconfigargs;
900
+ $createconfigargs = "$createconfigargs --range $___RANGES" if (defined $___RANGES);
901
+ $createconfigargs = "$createconfigargs --decoder-flags $___DECODER_FLAGS" if (!$___DECODER_FLAGS eq "");
902
+ $createconfigargs = "$createconfigargs --devbleu $devbleu" if (defined $devbleu);
903
+ $createconfigargs = "$createconfigargs --sparse_weights_file $sparse_weights_file" if (defined $sparse_weights_file);
904
+ $createconfigargs = "$createconfigargs --working-dir $___WORKING_DIR" if (defined $___WORKING_DIR);
905
+
906
+ my $cmd = "$createconfigcmd $___DEV_F $___DECODER $___CONFIG_ORIG final --inputtype $___INPUTTYPE $createconfigargs";
907
+
908
+ if (defined $prevjid) {
909
+ $qsubprefix = "finalcfg";
910
+ &submit_or_exec_thu_host($submithost,"","",$cmd,"","createconfigfinal.out","createconfigfinal.err","createconfigfinal.id",$prevjid);
911
+ } else {
912
+ $qsubprefix = "finalcfg";
913
+ &submit_or_exec_thu_host($submithost,"","",$cmd,"","createconfigfinal.out","createconfigfinal.err","createconfigfinal.id");
914
+ }
915
+ chomp($jobid=`tail -n 1 createconfigfinal.id`);
916
+ $prevjid = $jobid;
917
+ # clear up tmp
918
+ &exit_submit_thu_host($submithost,"","","","createconfigfinal.out","createconfigfinal.err","createconfigfinal.id","createconfigfinal.id.pid",$prevjid);
919
+ ## -------------------------------------------------------------------------
920
+ print "create config for last run is done!\n";
921
+
922
+
923
+ ###### STEP 8: clear job ######
924
+ my $clearcmd = "";
925
+ $clearcmd = "$SCRIPTS_ROOTDIR/training/sge-nosync/cleartmpfiles.pl";
926
+
927
+
928
+ if (defined $prevjid){
929
+ $qsubprefix="Clearjob";
930
+ &submit_or_exec_thu_host($submithost,"","",$clearcmd,"","clear.out","clear.err","clear.id",$prevjid);
931
+ } else {
932
+ die "Step 7 (clear job): Cannot find previous process for sequential submit\n";
933
+ }
934
+ chomp($jobid=`tail -n 1 clear.id`);
935
+ $prevjid = $jobid;
936
+
937
+ ## clear-up tmp ##
938
+ &exit_submit_thu_host($submithost,"","","","clear.out","clear.err","clear.id","clear.id.pid",$prevjid);
939
+
940
+ print "Tuning finished at ".`date`;
941
+
942
+ chdir($cwd);
943
+
944
+ } # end of local scope
945
+
946
+ sub get_weights_from_mert {
947
+ my ($outfile,$logfile,$weight_count,$sparse_weights) = @_;
948
+ my ($bestpoint,$devbleu);
949
+ if ($___PAIRWISE_RANKED_OPTIMIZER || ($___PRO_STARTING_POINT && $logfile =~ /pro/)) {
950
+ open(IN,$outfile) or die "Can't open $outfile";
951
+ my (@WEIGHT,$sum);
952
+ for(my $i=0;$i<$weight_count;$i++) { push @WEIGHT, 0; }
953
+ while(<IN>) {
954
+ # regular features
955
+ if (/^F(\d+) ([\-\.\de]+)/) {
956
+ $WEIGHT[$1] = $2;
957
+ $sum += abs($2);
958
+ }
959
+ # sparse features
960
+ elsif(/^(.+_.+) ([\-\.\de]+)/) {
961
+ $$sparse_weights{$1} = $2;
962
+ }
963
+ }
964
+ $devbleu = "unknown";
965
+ foreach (@WEIGHT) { $_ /= $sum; }
966
+ foreach (keys %{$sparse_weights}) { $$sparse_weights{$_} /= $sum; }
967
+ $bestpoint = join(" ",@WEIGHT);
968
+ close IN;
969
+ }
970
+ else {
971
+ open(IN,$logfile) or die "Can't open $logfile";
972
+ while (<IN>) {
973
+ if (/Best point:\s*([\s\d\.\-e]+?)\s*=> ([\-\d\.]+)/) {
974
+ $bestpoint = $1;
975
+ $devbleu = $2;
976
+ last;
977
+ }
978
+ }
979
+ close IN;
980
+ }
981
+ return ($bestpoint,$devbleu);
982
+ }
983
+
984
+ ##COPIED# sub run_decoder {
985
+ ##COPIED# my ($featlist, $run, $need_to_normalize) = @_;
986
+ ##COPIED# my $filename_template = "run%d.best$___N_BEST_LIST_SIZE.out";
987
+ ##COPIED# my $filename = sprintf($filename_template, $run);
988
+ ##COPIED# my $lsamp_filename = undef;
989
+ ##COPIED# if ($___LATTICE_SAMPLES) {
990
+ ##COPIED# my $lsamp_filename_template = "run%d.lsamp$___LATTICE_SAMPLES.out";
991
+ ##COPIED# $lsamp_filename = sprintf($lsamp_filename_template, $run);
992
+ ##COPIED# }
993
+ ##COPIED#
994
+ ##COPIED# # user-supplied parameters
995
+ ##COPIED# print "params = $___DECODER_FLAGS\n";
996
+ ##COPIED#
997
+ ##COPIED# # parameters to set all model weights (to override moses.ini)
998
+ ##COPIED# my @vals = @{$featlist->{"values"}};
999
+ ##COPIED# if ($need_to_normalize) {
1000
+ ##COPIED# print STDERR "Normalizing lambdas: @vals\n";
1001
+ ##COPIED# my $totlambda=0;
1002
+ ##COPIED# grep($totlambda+=abs($_),@vals);
1003
+ ##COPIED# grep($_/=$totlambda,@vals);
1004
+ ##COPIED# }
1005
+ ##COPIED# # moses now does not seem accept "-tm X -tm Y" but needs "-tm X Y"
1006
+ ##COPIED# my %model_weights;
1007
+ ##COPIED# for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
1008
+ ##COPIED# my $name = $featlist->{"names"}->[$i];
1009
+ ##COPIED# $model_weights{$name} = "-$name" if !defined $model_weights{$name};
1010
+ ##COPIED# $model_weights{$name} .= sprintf " %.6f", $vals[$i];
1011
+ ##COPIED# }
1012
+ ##COPIED# my $decoder_config = join(" ", values %model_weights);
1013
+ ##COPIED# $decoder_config .= " -weight-file run$run.sparse-weights" if -e "run$run.sparse-weights";
1014
+ ##COPIED# print STDERR "DECODER_CFG = $decoder_config\n";
1015
+ ##COPIED# print "decoder_config = $decoder_config\n";
1016
+ ##COPIED#
1017
+ ##COPIED#
1018
+ ##COPIED# # run the decoder
1019
+ ##COPIED# my $decoder_cmd;
1020
+ ##COPIED# my $lsamp_cmd = "";
1021
+ ##COPIED# if ($___LATTICE_SAMPLES) {
1022
+ ##COPIED# $lsamp_cmd = " -lattice-samples $lsamp_filename $___LATTICE_SAMPLES ";
1023
+ ##COPIED# }
1024
+ ##COPIED#
1025
+ ##COPIED# ####### RUN moses_parallel #################################
1026
+ ##COPIED# # need to gather:
1027
+ ##COPIED# ### $run
1028
+ ##COPIED# ### $lsamp_cmd
1029
+ ##COPIED# ### $filename
1030
+ ##COPIED# ###########################################################
1031
+ ##COPIED#
1032
+ ##COPIED# if (defined $___JOBS && $___JOBS > 0) {
1033
+ ##COPIED# $decoder_cmd = "$moses_parallel_cmd $pass_old_sge -config $___CONFIG -inputtype $___INPUTTYPE -qsub-prefix mert$run -queue-parameters \"$queue_flags\" -decoder-parameters \"$___DECODER_FLAGS $decoder_config\" $lsamp_cmd -n-best-list \"$filename $___N_BEST_LIST_SIZE\" -input-file $___DEV_F -jobs $___JOBS -decoder $___DECODER > run$run.out";
1034
+ ##COPIED# } else {
1035
+ ##COPIED# $decoder_cmd = "$___DECODER $___DECODER_FLAGS -config $___CONFIG -inputtype $___INPUTTYPE $decoder_config $lsamp_cmd -n-best-list $filename $___N_BEST_LIST_SIZE -input-file $___DEV_F > run$run.out";
1036
+ ##COPIED# }
1037
+ ##COPIED#
1038
+ ##COPIED# safesystem($decoder_cmd) or die "The decoder died. CONFIG WAS $decoder_config \n";
1039
+ ##COPIED#
1040
+ ##COPIED# sanity_check_order_of_lambdas($featlist, $filename);
1041
+ ##COPIED# return ($filename, $lsamp_filename);
1042
+ ##COPIED# }
1043
+
1044
+
1045
+ ##COPIED# sub insert_ranges_to_featlist {
1046
+ ##COPIED# my $featlist = shift;
1047
+ ##COPIED# my $ranges = shift;
1048
+ ##COPIED#
1049
+ ##COPIED# $ranges = [] if !defined $ranges;
1050
+ ##COPIED#
1051
+ ##COPIED# # first collect the ranges from options
1052
+ ##COPIED# my $niceranges;
1053
+ ##COPIED# foreach my $range (@$ranges) {
1054
+ ##COPIED# my $name = undef;
1055
+ ##COPIED# foreach my $namedpair (split /,/, $range) {
1056
+ ##COPIED# if ($namedpair =~ /^(.*?):/) {
1057
+ ##COPIED# $name = $1;
1058
+ ##COPIED# $namedpair =~ s/^.*?://;
1059
+ ##COPIED# die "Unrecognized name '$name' in --range=$range"
1060
+ ##COPIED# if !defined $ABBR2FULL{$name};
1061
+ ##COPIED# }
1062
+ ##COPIED# my ($min, $max) = split /\.\./, $namedpair;
1063
+ ##COPIED# die "Bad min '$min' in --range=$range" if $min !~ /^-?[0-9.]+$/;
1064
+ ##COPIED# die "Bad max '$max' in --range=$range" if $min !~ /^-?[0-9.]+$/;
1065
+ ##COPIED# die "No name given in --range=$range" if !defined $name;
1066
+ ##COPIED# push @{$niceranges->{$name}}, [$min, $max];
1067
+ ##COPIED# }
1068
+ ##COPIED# }
1069
+ ##COPIED#
1070
+ ##COPIED# # now populate featlist
1071
+ ##COPIED# my $seen = undef;
1072
+ ##COPIED# for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
1073
+ ##COPIED# my $name = $featlist->{"names"}->[$i];
1074
+ ##COPIED# $seen->{$name} ++;
1075
+ ##COPIED# my $min = 0.0;
1076
+ ##COPIED# my $max = 1.0;
1077
+ ##COPIED# if (defined $niceranges->{$name}) {
1078
+ ##COPIED# my $minmax = shift @{$niceranges->{$name}};
1079
+ ##COPIED# ($min, $max) = @$minmax if defined $minmax;
1080
+ ##COPIED# }
1081
+ ##COPIED# $featlist->{"mins"}->[$i] = $min;
1082
+ ##COPIED# $featlist->{"maxs"}->[$i] = $max;
1083
+ ##COPIED# }
1084
+ ##COPIED# return $featlist;
1085
+ ##COPIED# }
1086
+
1087
+ ##COPIED# sub sanity_check_order_of_lambdas {
1088
+ ##COPIED# my $featlist = shift;
1089
+ ##COPIED# my $filename_or_stream = shift;
1090
+ ##COPIED#
1091
+ ##COPIED# my @expected_lambdas = @{$featlist->{"names"}};
1092
+ ##COPIED# my @got = get_order_of_scores_from_nbestlist($filename_or_stream);
1093
+ ##COPIED# die "Mismatched lambdas. Decoder returned @got, we expected @expected_lambdas"
1094
+ ##COPIED# if "@got" ne "@expected_lambdas";
1095
+ ##COPIED# }
1096
+
1097
+ #### get_featlist_from_moses(): also used in process-featlist-sge-nosync.pl #####
1098
+ ###########################################################################
1099
+ sub get_featlist_from_moses {
1100
+ # run moses with the given config file and return the list of features and
1101
+ # their initial values
1102
+ my $configfn = shift;
1103
+ my $featlistfn = "./features.list";
1104
+ if (-e $featlistfn) {
1105
+ print STDERR "Using cached features list: $featlistfn\n";
1106
+ } else {
1107
+ print STDERR "Asking moses for feature names and values from $___CONFIG\n";
1108
+ my $cmd = "$___DECODER $___DECODER_FLAGS -config $configfn -inputtype $___INPUTTYPE -show-weights > $featlistfn";
1109
+ safesystem($cmd) or die "Failed to run moses with the config $configfn";
1110
+ }
1111
+
1112
+ # read feature list
1113
+ my @names = ();
1114
+ my @startvalues = ();
1115
+ open(INI,$featlistfn) or die "Can't read $featlistfn";
1116
+ my $nr = 0;
1117
+ my @errs = ();
1118
+ while (<INI>) {
1119
+ $nr++;
1120
+ chomp;
1121
+ /^(.+) (\S+) (\S+)$/ || die("invalid feature: $_");
1122
+ my ($longname, $feature, $value) = ($1,$2,$3);
1123
+ next if $value eq "sparse";
1124
+ push @errs, "$featlistfn:$nr:Bad initial value of $feature: $value\n"
1125
+ if $value !~ /^[+-]?[0-9.e]+$/;
1126
+ push @errs, "$featlistfn:$nr:Unknown feature '$feature', please add it to \@ABBR_FULL_MAP\n"
1127
+ if !defined $ABBR2FULL{$feature};
1128
+ push @names, $feature;
1129
+ push @startvalues, $value;
1130
+ }
1131
+ close INI;
1132
+ if (scalar @errs) {
1133
+ print STDERR join("", @errs);
1134
+ exit 1;
1135
+ }
1136
+ return {"names"=>\@names, "values"=>\@startvalues};
1137
+ }
1138
+ #### get_featlist_from_moses() ends #####################################
1139
+
1140
+ sub get_order_of_scores_from_nbestlist {
1141
+ # read the first line and interpret the ||| label: num num num label2: num ||| column in nbestlist
1142
+ # return the score labels in order
1143
+ my $fname_or_source = shift;
1144
+ # print STDERR "Peeking at the beginning of nbestlist to get order of scores: $fname_or_source\n";
1145
+ open IN, $fname_or_source or die "Failed to get order of scores from nbestlist '$fname_or_source'";
1146
+ my $line = <IN>;
1147
+ close IN;
1148
+ die "Line empty in nbestlist '$fname_or_source'" if !defined $line;
1149
+ my ($sent, $hypo, $scores, $total) = split /\|\|\|/, $line;
1150
+ $scores =~ s/^\s*|\s*$//g;
1151
+ die "No scores in line: $line" if $scores eq "";
1152
+
1153
+ my @order = ();
1154
+ my $label = undef;
1155
+ my $sparse = 0; # we ignore sparse features here
1156
+ foreach my $tok (split /\s+/, $scores) {
1157
+ if ($tok =~ /.+_.+:/) {
1158
+ $sparse = 1;
1159
+ } elsif ($tok =~ /^([a-z][0-9a-z]*):/i) {
1160
+ $label = $1;
1161
+ } elsif ($tok =~ /^-?[-0-9.e]+$/) {
1162
+ if (!$sparse) {
1163
+ # a score found, remember it
1164
+ die "Found a score but no label before it! Bad nbestlist '$fname_or_source'!"
1165
+ if !defined $label;
1166
+ push @order, $label;
1167
+ }
1168
+ $sparse = 0;
1169
+ } else {
1170
+ die "Not a label, not a score '$tok'. Failed to parse the scores string: '$scores' of nbestlist '$fname_or_source'";
1171
+ }
1172
+ }
1173
+ print STDERR "The decoder returns the scores in this order: @order\n";
1174
+ return @order;
1175
+ }
1176
+
1177
+ ##COPIED#sub create_config {
1178
+ ##COPIED# my $infn = shift; # source config
1179
+ ##COPIED# my $outfn = shift; # where to save the config
1180
+ ##COPIED# my $featlist = shift; # the lambdas we should write
1181
+ ##COPIED# my $iteration = shift; # just for verbosity
1182
+ ##COPIED# my $bleu_achieved = shift; # just for verbosity
1183
+ ##COPIED# my $sparse_weights_file = shift; # only defined when optimizing sparse features
1184
+ ##COPIED#
1185
+ ##COPIED# my %P; # the hash of all parameters we wish to override
1186
+ ##COPIED#
1187
+ ##COPIED# # first convert the command line parameters to the hash
1188
+ ##COPIED# { # ensure local scope of vars
1189
+ ##COPIED# my $parameter=undef;
1190
+ ##COPIED# print "Parsing --decoder-flags: |$___DECODER_FLAGS|\n";
1191
+ ##COPIED# $___DECODER_FLAGS =~ s/^\s*|\s*$//;
1192
+ ##COPIED# $___DECODER_FLAGS =~ s/\s+/ /;
1193
+ ##COPIED# foreach (split(/ /,$___DECODER_FLAGS)) {
1194
+ ##COPIED# if (/^\-([^\d].*)$/) {
1195
+ ##COPIED# $parameter = $1;
1196
+ ##COPIED# $parameter = $ABBR2FULL{$parameter} if defined($ABBR2FULL{$parameter});
1197
+ ##COPIED# }
1198
+ ##COPIED# else {
1199
+ ##COPIED# die "Found value with no -paramname before it: $_"
1200
+ ##COPIED# if !defined $parameter;
1201
+ ##COPIED# push @{$P{$parameter}},$_;
1202
+ ##COPIED# }
1203
+ ##COPIED# }
1204
+ ##COPIED# }
1205
+ ##COPIED#
1206
+ ##COPIED# # First delete all weights params from the input, we're overwriting them.
1207
+ ##COPIED# # Delete both short and long-named version.
1208
+ ##COPIED# for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
1209
+ ##COPIED# my $name = $featlist->{"names"}->[$i];
1210
+ ##COPIED# delete($P{$name});
1211
+ ##COPIED# delete($P{$ABBR2FULL{$name}});
1212
+ ##COPIED# }
1213
+ ##COPIED#
1214
+ ##COPIED# # Convert weights to elements in P
1215
+ ##COPIED# for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
1216
+ ##COPIED# my $name = $featlist->{"names"}->[$i];
1217
+ ##COPIED# my $val = $featlist->{"values"}->[$i];
1218
+ ##COPIED# $name = defined $ABBR2FULL{$name} ? $ABBR2FULL{$name} : $name;
1219
+ ##COPIED# # ensure long name
1220
+ ##COPIED# push @{$P{$name}}, $val;
1221
+ ##COPIED# }
1222
+ ##COPIED#
1223
+ ##COPIED# if (defined($sparse_weights_file)) {
1224
+ ##COPIED# push @{$P{"weights-file"}}, $___WORKING_DIR."/".$sparse_weights_file;
1225
+ ##COPIED# }
1226
+ ##COPIED#
1227
+ ##COPIED# # create new moses.ini decoder config file by cloning and overriding the original one
1228
+ ##COPIED# open(INI,$infn) or die "Can't read $infn";
1229
+ ##COPIED# delete($P{"config"}); # never output
1230
+ ##COPIED# print "Saving new config to: $outfn\n";
1231
+ ##COPIED# open(OUT,"> $outfn") or die "Can't write $outfn";
1232
+ ##COPIED# print OUT "# MERT optimized configuration\n";
1233
+ ##COPIED# print OUT "# decoder $___DECODER\n";
1234
+ ##COPIED# print OUT "# BLEU $bleu_achieved on dev $___DEV_F\n";
1235
+ ##COPIED# print OUT "# We were before running iteration $iteration\n";
1236
+ ##COPIED# print OUT "# finished ".`date`;
1237
+ ##COPIED# my $line = <INI>;
1238
+ ##COPIED# while(1) {
1239
+ ##COPIED# last unless $line;
1240
+ ##COPIED#
1241
+ ##COPIED# # skip until hit [parameter]
1242
+ ##COPIED# if ($line !~ /^\[(.+)\]\s*$/) {
1243
+ ##COPIED# $line = <INI>;
1244
+ ##COPIED# print OUT $line if $line =~ /^\#/ || $line =~ /^\s+$/;
1245
+ ##COPIED# next;
1246
+ ##COPIED# }
1247
+ ##COPIED#
1248
+ ##COPIED# # parameter name
1249
+ ##COPIED# my $parameter = $1;
1250
+ ##COPIED# $parameter = $ABBR2FULL{$parameter} if defined($ABBR2FULL{$parameter});
1251
+ ##COPIED# print OUT "[$parameter]\n";
1252
+ ##COPIED#
1253
+ ##COPIED# # change parameter, if new values
1254
+ ##COPIED# if (defined($P{$parameter})) {
1255
+ ##COPIED# # write new values
1256
+ ##COPIED# foreach (@{$P{$parameter}}) {
1257
+ ##COPIED# print OUT $_."\n";
1258
+ ##COPIED# }
1259
+ ##COPIED# delete($P{$parameter});
1260
+ ##COPIED# # skip until new parameter, only write comments
1261
+ ##COPIED# while($line = <INI>) {
1262
+ ##COPIED# print OUT $line if $line =~ /^\#/ || $line =~ /^\s+$/;
1263
+ ##COPIED# last if $line =~ /^\[/;
1264
+ ##COPIED# last unless $line;
1265
+ ##COPIED# }
1266
+ ##COPIED# next;
1267
+ ##COPIED# }
1268
+ ##COPIED#
1269
+ ##COPIED# # unchanged parameter, write old
1270
+ ##COPIED# while($line = <INI>) {
1271
+ ##COPIED# last if $line =~ /^\[/;
1272
+ ##COPIED# print OUT $line;
1273
+ ##COPIED# }
1274
+ ##COPIED# }
1275
+ ##COPIED#
1276
+ ##COPIED# # write all additional parameters
1277
+ ##COPIED# foreach my $parameter (keys %P) {
1278
+ ##COPIED# print OUT "\n[$parameter]\n";
1279
+ ##COPIED# foreach (@{$P{$parameter}}) {
1280
+ ##COPIED# print OUT $_."\n";
1281
+ ##COPIED# }
1282
+ ##COPIED# }
1283
+ ##COPIED#
1284
+ ##COPIED# close(INI);
1285
+ ##COPIED# close(OUT);
1286
+ ##COPIED# print STDERR "Saved: $outfn\n";
1287
+ ##COPIED#}
1288
+
1289
+ sub safesystem {
1290
+ print STDERR "Executing: @_\n";
1291
+ system(@_);
1292
+ if ($? == -1) {
1293
+ print STDERR "Failed to execute: @_\n $!\n";
1294
+ exit(1);
1295
+ }
1296
+ elsif ($? & 127) {
1297
+ printf STDERR "Execution of: @_\n died with signal %d, %s coredump\n",
1298
+ ($? & 127), ($? & 128) ? 'with' : 'without';
1299
+ exit(1);
1300
+ }
1301
+ else {
1302
+ my $exitcode = $? >> 8;
1303
+ print STDERR "Exit code: $exitcode\n" if $exitcode;
1304
+ return ! $exitcode;
1305
+ }
1306
+ }
1307
+ sub ensure_full_path {
1308
+ my $PATH = shift;
1309
+ $PATH =~ s/\/nfsmnt//;
1310
+ return $PATH if $PATH =~ /^\//;
1311
+ my $dir = `pawd 2>/dev/null`;
1312
+ if(!$dir){$dir = `pwd`;}
1313
+ chomp($dir);
1314
+ $PATH = $dir."/".$PATH;
1315
+ $PATH =~ s/[\r\n]//g;
1316
+ $PATH =~ s/\/\.\//\//g;
1317
+ $PATH =~ s/\/+/\//g;
1318
+ my $sanity = 0;
1319
+ while($PATH =~ /\/\.\.\// && $sanity++<10) {
1320
+ $PATH =~ s/\/+/\//g;
1321
+ $PATH =~ s/\/[^\/]+\/\.\.\//\//g;
1322
+ }
1323
+ $PATH =~ s/\/[^\/]+\/\.\.$//;
1324
+ $PATH =~ s/\/+$//;
1325
+ $PATH =~ s/\/nfsmnt//;
1326
+ return $PATH;
1327
+ }
1328
+
1329
+ sub submit_or_exec {
1330
+
1331
+ my $argvlen = @_;
1332
+ my $cmd = undef;
1333
+ my $stdout = undef;
1334
+ my $stderr = undef;
1335
+ my $jidfile = undef;
1336
+ my $prevjid = undef;
1337
+
1338
+ # if supply 3 arguments, exec without submit
1339
+ # if supply 4 arguments, then submit new job
1340
+ # if supply 5 arguments, wait for the previous job to finish
1341
+ if ($argvlen == 3){
1342
+ ($cmd,$stdout,$stderr) = @_;
1343
+ } elsif ($argvlen == 4){
1344
+ ($cmd,$stdout,$stderr,$jidfile) = @_;
1345
+ } elsif ($argvlen == 5){
1346
+ ($cmd,$stdout,$stderr,$jidfile,$prevjid) = @_;
1347
+ }
1348
+
1349
+ print STDERR "exec: $cmd\n";
1350
+ if (defined $___JOBS && $___JOBS > 0 && $argvlen==5) {
1351
+ safesystem("$qsubwrapper $pass_old_sge -command='$cmd' -queue-parameters=\"$queue_flags\" -stdout=$stdout -stderr=$stderr -jidfile=$jidfile -prevjid=$prevjid" )
1352
+ or die "ERROR: Failed to submit '$cmd' (via $qsubwrapper)";
1353
+ }
1354
+ elsif (defined $___JOBS && $___JOBS > 0 && $argvlen==4) {
1355
+ safesystem("$qsubwrapper $pass_old_sge -command='$cmd' -queue-parameters=\"$queue_flags\" -stdout=$stdout -stderr=$stderr -jidfile=$jidfile" )
1356
+ or die "ERROR: Failed to submit '$cmd' (via $qsubwrapper)";
1357
+ } else {
1358
+ safesystem("$cmd > $stdout 2> $stderr") or die "ERROR: Failed to run '$cmd'.";
1359
+ }
1360
+ }
1361
+
1362
+ sub exit_submit {
1363
+
1364
+ my $argvlen = @_;
1365
+ my $cmd = undef;
1366
+ my $stdout = undef;
1367
+ my $stderr = undef;
1368
+ my $jidfile = undef;
1369
+ my $pidfile = undef;
1370
+ my $prevjid = undef;
1371
+ my $prevjidarraysize = 0;
1372
+ my @prevjidarray = ();
1373
+ my $pid = undef;
1374
+ my $qsubcmd="";
1375
+ my $hj="";
1376
+
1377
+ # if supply 4 arguments, then submit new job
1378
+ # if supply 5 arguments, wait for the previous job to finish
1379
+ if ($argvlen == 2) {
1380
+ ($stdout,$stderr) = @_;
1381
+ } elsif ($argvlen == 4){
1382
+ ($stdout,$stderr,$jidfile,$pidfile) = @_;
1383
+ } elsif ($argvlen == 5){
1384
+ ($stdout,$stderr,$jidfile,$pidfile,$prevjid) = @_;
1385
+ }
1386
+
1387
+ # parse prevjid ########################
1388
+ $prevjid =~ s/^\s+|\s+$//g;
1389
+ @prevjidarray = split(/\s+/,$prevjid);
1390
+ $prevjidarraysize = scalar(@prevjidarray);
1391
+ ########################################
1392
+
1393
+
1394
+ # print STDERR "exec: $stdout\n";
1395
+
1396
+ # read pid from file, and draft exit script ##################
1397
+ chomp ($pid=`tail -n 1 $pidfile`);
1398
+ open (OUT, ">exitjob$pid.sh");
1399
+
1400
+ my $scriptheader="\#\!/bin/bash\n\#\$ -S /bin/sh\n# Both lines are needed to invoke base\n#the above line is ignored by qsub, unless parameter \"-b yes\" is set!\n\n";
1401
+ $scriptheader .="uname -a\n\n";
1402
+ $scriptheader .="cd $___WORKING_DIR\n\n";
1403
+
1404
+ print OUT $scriptheader;
1405
+
1406
+ print OUT "if $qsubwrapper_exit -stdout=$stdout -stderr=$stderr -jidfile=$jidfile -pidfile=$pidfile > exitjob$pid.out 2> exitjob$pid.err ; then
1407
+ echo 'succeeded'
1408
+ else
1409
+ echo failed with exit status \$\?
1410
+ die=1
1411
+ fi
1412
+ ";
1413
+ print OUT "\n\n";
1414
+
1415
+ close (OUT);
1416
+ # setting permissions of the script
1417
+ chmod(oct(755),"exitjob$pid.sh");
1418
+ ##############################################################
1419
+
1420
+
1421
+ if (defined $___JOBS && $___JOBS > 0 && $argvlen==5) {
1422
+ if (defined $prevjid && $prevjid!=-1 && $prevjidarraysize == 1){
1423
+ $hj = "-hold_jid $prevjid";
1424
+ } elsif (defined $prevjid && $prevjidarraysize > 1){
1425
+ $hj = "-hold_jid " . join(" -hold_jid ", @prevjidarray);
1426
+ }
1427
+ $qsubcmd="qsub $queue_flags -o /dev/null -e /dev/null -V $hj exitjob$pid.sh > exitjob$pid.log 2>&1";
1428
+ safesystem($qsubcmd) or die "ERROR: Failed to exit-submit $pid (via $qsubwrapper_exit)";
1429
+ } elsif (defined $___JOBS && $___JOBS > 0 && $argvlen==4) {
1430
+ $qsubcmd="qsub $queue_flags -o /dev/null -e /dev/null -V exitjob$pid.sh > exitjob$pid.log 2>&1";
1431
+ safesystem($qsubcmd) or die "ERROR: Failed to exit-submit $pid (via $qsubwrapper_exit)";
1432
+ } else {
1433
+ safesystem("rm $stdout") or die "ERROR: Failed to remove '$stdout'.";
1434
+ safesystem("rm $stderr") or die "ERROR: Failed to remove '$stderr'.";
1435
+ }
1436
+ }
1437
+
1438
+
1439
+
1440
+
1441
+
1442
+
1443
+
1444
+ sub create_extractor_script()
1445
+ {
1446
+ my ($cmd, $outdir) = @_;
1447
+ my $script_path = File::Spec->catfile($outdir, "extractor.sh");
1448
+
1449
+ open my $out, '>', $script_path
1450
+ or die "Couldn't open $script_path for writing: $!\n";
1451
+ print $out "#!/bin/bash\n";
1452
+ print $out "cd $outdir\n";
1453
+ print $out "$cmd\n";
1454
+ close($out);
1455
+
1456
+ `chmod +x $script_path`;
1457
+
1458
+ return $script_path;
1459
+ }
1460
+
1461
+
1462
+ sub submit_or_exec_thu_host {
1463
+ # use Net::OpenSSH::Compat::Perl;
1464
+
1465
+ my $argvlen = @_;
1466
+ my $submithost = undef;
1467
+ my $run = -1;
1468
+ my $idx = "";
1469
+ my $batch_and_join = "";
1470
+ my $my_username = undef;
1471
+ my $cmd = undef;
1472
+ my $qsubwrapcmd = undef;
1473
+ my $stdout = undef;
1474
+ my $stderr = undef;
1475
+ my $jidfile = undef;
1476
+ my $prevjid = undef;
1477
+
1478
+ my $qsubname = undef;
1479
+
1480
+ # if supply 7 arguments, exec without submit
1481
+ # if supply 8 arguments, then submit new job
1482
+ # if supply 9 arguments, wait for the previous job to finish
1483
+ if ($argvlen == 7){
1484
+ ($submithost,$run,$idx,$cmd,$batch_and_join,$stdout,$stderr) = @_;
1485
+ } elsif ($argvlen == 8){
1486
+ ($submithost,$run,$idx,$cmd,$batch_and_join,$stdout,$stderr,$jidfile) = @_;
1487
+ } elsif ($argvlen == 9){
1488
+ ($submithost,$run,$idx,$cmd,$batch_and_join,$stdout,$stderr,$jidfile,$prevjid) = @_;
1489
+ }
1490
+
1491
+
1492
+
1493
+ # chomp($my_username = `whoami`);
1494
+ # my $ssh = Net::OpenSSH::Compat::Perl->new($submithost, debug=>0);
1495
+ #
1496
+ # print STDERR "submithost = $submithost\n";
1497
+ # print STDERR "my username = $my_username\n";
1498
+ # print STDERR "qusbwrapper at = $qsubwrapper\n";
1499
+ #
1500
+ # $ssh->login("$my_username",`cat /home/$my_username/accpw`);
1501
+ my $ssh = Net::OpenSSH::Compat::Perl->new($submithost, debug=>0);
1502
+
1503
+ print STDERR "submithost = $submithost\n";
1504
+ print STDERR "qusbwrapper at = $qsubwrapper\n";
1505
+
1506
+ $ssh->login();
1507
+
1508
+ #### extra for mert-moses-sge-nosync.pl ####
1509
+ if ($qsubprefix eq ""){
1510
+ $qsubname = $stdout;
1511
+ } else {
1512
+ $qsubname = $qsubprefix;
1513
+ }
1514
+ my $queueparameters = $queue_flags;
1515
+ ############################################
1516
+
1517
+ # $cmd="qsub $queueparameters $batch_and_join -o $qsubout$idx -e $qsuberr$idx -N $qsubname$idx ${jobscript}${idx}.bash > ${jobscript}${idx}.log 2>&1";
1518
+ # -o qsubout
1519
+ # -e qsuberr
1520
+ if ($argvlen == 9) {
1521
+ $qsubwrapcmd = "$qsubwrapper -command='$cmd' -queue-parameter=\"$queueparameters $batch_and_join\" -qsub-prefix='$qsubname$idx' -stdout=$stdout -stderr=$stderr -jidfile=$jidfile -prevjid='$prevjid'";
1522
+ } elsif ($argvlen == 8) {
1523
+ # $qsubwrapcmd = "$qsubwrapper -command='${jobscript}${idx}.bash' -queue-parameter=\"$queueparameters $batch_and_join\" -qsub-prefix='$qsubname$idx' -stdout=$stdout -stderr=$stderr -jidfile=$jidfile";
1524
+ $qsubwrapcmd = "$qsubwrapper -command='$cmd' -queue-parameter=\"$queueparameters $batch_and_join\" -qsub-prefix='$qsubname$idx' -stdout=$stdout -stderr=$stderr -jidfile=$jidfile";
1525
+ }
1526
+ print STDERR "Executing $qsubwrapcmd in $___WORKING_DIR\n";
1527
+ $ssh->cmd("cd $___WORKING_DIR && $qsubwrapcmd");
1528
+
1529
+ }
1530
+
1531
+ sub exit_submit_thu_host {
1532
+
1533
+ my $argvlen = @_;
1534
+ my $submithost = undef;
1535
+ my $run = -1;
1536
+ my $idx = "";
1537
+ my $batch_and_join = "";
1538
+ my $my_username = undef;
1539
+ my $cmd = undef;
1540
+ my $stdout = undef;
1541
+ my $stderr = undef;
1542
+ my $jidfile = undef;
1543
+ my $pidfile = undef;
1544
+ my $prevjid = undef;
1545
+ my $prevjidarraysize = 0;
1546
+ my @prevjidarray = ();
1547
+ my $pid = undef;
1548
+ my $qsubcmd="";
1549
+ my $hj="";
1550
+
1551
+ # if supply 8 arguments, then submit new job
1552
+ # if supply 9 arguments, wait for the previous job to finish
1553
+ if ($argvlen == 6){
1554
+ ($submithost,$run,$idx,$batch_and_join,$stdout,$stderr) = @_;
1555
+ } elsif ($argvlen == 8){
1556
+ ($submithost,$run,$idx,$batch_and_join,$stdout,$stderr,$jidfile,$pidfile) = @_;
1557
+ } elsif ($argvlen == 9){
1558
+ ($submithost,$run,$idx,$batch_and_join,$stdout,$stderr,$jidfile,$pidfile,$prevjid) = @_;
1559
+ }
1560
+
1561
+ # parse prevjid ########################
1562
+ $prevjid =~ s/^\s+|\s+$//g;
1563
+ @prevjidarray = split(/\s+/,$prevjid);
1564
+ $prevjidarraysize = scalar(@prevjidarray);
1565
+ ########################################
1566
+
1567
+ #### extra for mert-moses-sge-nosync.pl ####
1568
+ my $queueparameters = $queue_flags;
1569
+ ############################################
1570
+
1571
+
1572
+
1573
+ # print STDERR "exec: $stdout\n";
1574
+
1575
+ # read pid from file, and draft exit script ##################
1576
+ chomp ($pid=`tail -n 1 $pidfile`);
1577
+ open (OUT, ">exitjob$pid.sh");
1578
+
1579
+ my $scriptheader="\#\!/bin/bash\n\#\$ -S /bin/sh\n# Both lines are needed to invoke base\n#the above line is ignored by qsub, unless parameter \"-b yes\" is set!\n\n";
1580
+ $scriptheader .="uname -a\n\n";
1581
+ $scriptheader .="cd $___WORKING_DIR\n\n";
1582
+
1583
+ print OUT $scriptheader;
1584
+
1585
+ print OUT "if $qsubwrapper_exit -submithost=$submithost -stdout=$stdout -stderr=$stderr -jidfile=$jidfile -pidfile=$pidfile > exitjob$pid.out 2> exitjob$pid.err ; then
1586
+ echo 'succeeded'
1587
+ else
1588
+ echo failed with exit status \$\?
1589
+ die=1
1590
+ fi
1591
+ ";
1592
+ print OUT "\n\n";
1593
+
1594
+ close (OUT);
1595
+ # setting permissions of the script
1596
+ chmod(oct(755),"exitjob$pid.sh");
1597
+ ##############################################################
1598
+
1599
+ # log in submit host #########################################
1600
+ # chomp($my_username = `whoami`);
1601
+ # my $ssh = Net::OpenSSH::Compat::Perl->new($submithost, debug=>0);
1602
+ #
1603
+ # print STDERR "submithost = $submithost\n";
1604
+ # print STDERR "my username = $my_username\n";
1605
+ # print STDERR "qusbwrapper at = $qsubwrapper\n";
1606
+ #
1607
+ # $ssh->login("$my_username",`cat /home/$my_username/accpw`);
1608
+ ##############################################################
1609
+ my $ssh = Net::OpenSSH::Compat::Perl->new($submithost, debug=>0);
1610
+
1611
+ print STDERR "submithost = $submithost\n";
1612
+ print STDERR "qusbwrapper at = $qsubwrapper\n";
1613
+
1614
+ $ssh->login();
1615
+
1616
+
1617
+ if ($argvlen==9) {
1618
+ if (defined $prevjid && $prevjid!=-1 && $prevjidarraysize == 1){
1619
+ $hj = "-hold_jid $prevjid";
1620
+ } elsif (defined $prevjid && $prevjidarraysize > 1){
1621
+ $hj = "-hold_jid " . join(" -hold_jid ", @prevjidarray);
1622
+ }
1623
+ $qsubcmd="qsub $queueparameters -o /dev/null -e /dev/null $hj exitjob$pid.sh > exitjob$pid.log 2>&1";
1624
+ $ssh->cmd("cd $___WORKING_DIR && $qsubcmd");
1625
+ } elsif ($argvlen==8) {
1626
+ $qsubcmd="qsub $queueparameters -o /dev/null -e /dev/null exitjob$pid.sh > exitjob$pid.log 2>&1";
1627
+ $ssh->cmd("cd $___WORKING_DIR && $qsubcmd");
1628
+ }
1629
+ print STDERR "Executing $qsubcmd in $___WORKING_DIR\n";
1630
+
1631
+ }
1632
+
1633
+
mosesdecoder/contrib/mert-sge-nosync/training/sge-nosync/cleartmpfiles.pl ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/perl
2
+
3
+
4
+ my @filename_id = "";
5
+ my $this_id = "";
6
+
7
+ # remove exitjob and forceexitjob
8
+ chomp(my @rddfile_list = `ls exitjob* forceexitjob*`);
9
+ foreach my $rddfile (@rddfile_list) {
10
+ unlink("$rddfile");
11
+ }
12
+
13
+ chomp(@filename_id = `ls *.id | grep -v 'clear'`);
14
+ open (OUT, "> all.id.all");
15
+ print OUT "==Combine log at ".`date`;
16
+ print OUT `tail -n +1 *.id`;
17
+ print OUT "==LOG combined ".`date`;
18
+ close(OUT);
19
+ foreach $this_id (@filename_id) {
20
+ # print OUT `cat $this_id`;
21
+ unlink("$this_id");
22
+ }
23
+
24
+ chomp (@filename_id = `ls *.id.pid | grep -v 'clear'`);
25
+ open (OUT, "> all.id.pid.all");
26
+ print OUT "==Combine log at ".`date`;
27
+ print OUT `tail -n +1 *.id.pid`;
28
+ print OUT "==Log combined ".`date`;
29
+ close(OUT);
30
+ foreach $this_id (@filename_id) {
31
+ # print OUT `cat $this_id`;
32
+ unlink("$this_id");
33
+ }
34
+
35
+
36
+
37
+ chomp(@filename_id = `ls *.out | grep -v 'clear'`);
38
+ open (OUT, "> all.out.all");
39
+ print OUT "==Combine log at ".`date`;
40
+ print OUT `tail -n +1 *.out`;
41
+ print OUT "==Log combined ".`date`;
42
+ close(OUT);
43
+ foreach $this_id (@filename_id) {
44
+ # print OUT `cat $this_id`;
45
+ unlink("$this_id");
46
+ }
47
+
48
+ chomp(@filename_id = `ls *.err | grep -v 'clear'`);
49
+ open (OUT, "> all.err.all");
50
+ print OUT "==Combine log at ".`date`;
51
+ print OUT `tail -n +1 *.err`;
52
+ print OUT "==Log combined ".`date`;
53
+ close(OUT);
54
+ foreach $this_id (@filename_id) {
55
+ # print OUT `cat $this_id`;
56
+ unlink("$this_id");
57
+ }
58
+
59
+ # waitall.sh which cannot be deleted inside moses-parallel-sge-nosync.pl
60
+ chomp(@filename_id = `ls *waitall.sh`);
61
+ foreach $this_id (@filename_id) {
62
+ unlink("$this_id");
63
+ }
64
+
mosesdecoder/contrib/mert-sge-nosync/training/sge-nosync/create-config-sge-nosync.pl ADDED
@@ -0,0 +1,426 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/perl -w
2
+
3
+ # $Id$
4
+ # after filter-mode-given-input.pl, process the feature list
5
+
6
+ # original code by Philipp Koehn
7
+ # changes by Ondrej Bojar
8
+ # adapted for hierarchical models by Phil Williams
9
+
10
+ use strict;
11
+
12
+ use FindBin qw($Bin);
13
+ use Getopt::Long;
14
+
15
+
16
+
17
+ my $SCRIPTS_ROOTDIR;
18
+ if (defined($ENV{"SCRIPTS_ROOTDIR"})) {
19
+ $SCRIPTS_ROOTDIR = $ENV{"SCRIPTS_ROOTDIR"};
20
+ } else {
21
+ $SCRIPTS_ROOTDIR = $Bin;
22
+ if ($SCRIPTS_ROOTDIR eq '') {
23
+ $SCRIPTS_ROOTDIR = dirname(__FILE__);
24
+ }
25
+ $SCRIPTS_ROOTDIR =~ s/\/training$//;
26
+ $ENV{"SCRIPTS_ROOTDIR"} = $SCRIPTS_ROOTDIR;
27
+ }
28
+
29
+
30
+ # moses.ini file uses FULL names for lambdas, while this training script
31
+ # internally (and on the command line) uses ABBR names.
32
+ my @ABBR_FULL_MAP = qw(d=weight-d lm=weight-l tm=weight-t w=weight-w
33
+ g=weight-generation lex=weight-lex I=weight-i);
34
+ my %ABBR2FULL = map {split/=/,$_,2} @ABBR_FULL_MAP;
35
+ my %FULL2ABBR = map {my ($a, $b) = split/=/,$_,2; ($b, $a);} @ABBR_FULL_MAP;
36
+
37
+
38
+
39
+ my $verbose = 0;
40
+ my $usage = 0; # request for --help
41
+
42
+
43
+
44
+
45
+ ##!# # consider phrases in input up to $MAX_LENGTH
46
+ ##!# # in other words, all phrase-tables will be truncated at least to 10 words per
47
+ ##!# # phrase.
48
+ ##!# my $MAX_LENGTH = 10;
49
+
50
+ # utilities
51
+ ##!# my $ZCAT = "gzip -cd";
52
+
53
+ # get optional parameters
54
+ ##!# my $opt_hierarchical = 0;
55
+ ##!# my $binarizer = undef;
56
+ ##!# my $opt_min_non_initial_rule_count = undef;
57
+ ##!# my $opt_gzip = 1; # gzip output files (so far only phrase-based ttable until someone tests remaining models and formats)
58
+
59
+ my $___RANGES = undef;
60
+ my $___ACTIVATE_FEATURES = undef; # comma-separated (or blank-separated) list of features to work on
61
+ # if undef work on all features
62
+ # (others are fixed to the starting values)
63
+ my $___DECODER_FLAGS = ""; # additional parametrs to pass to the decoder
64
+
65
+ my $devbleu = undef;
66
+ my $___WORKING_DIR = undef;
67
+ my $___DEV_F = undef;
68
+ my $run = undef; # either first or final
69
+ my $runid_final = undef;
70
+ my $runid_finalplus=0;
71
+ my $sparse_weights_file = undef;
72
+
73
+
74
+ # set 0 if input type is text, set 1 if input type is confusion network
75
+ my $___INPUTTYPE = 0;
76
+
77
+ my $___DECODER = undef; # required, pathname to the decoder executable
78
+ my $___CONFIG = undef; # required, pathname to startup ini file
79
+
80
+
81
+ GetOptions(
82
+ "activate-features=s" => \$___ACTIVATE_FEATURES, #comma-separated (or blank-separated) list of features to work on (others are fixed to the starting values)
83
+ "range=s@" => \$___RANGES,
84
+ "decoder-flags=s" => \$___DECODER_FLAGS,
85
+ "inputtype=i" => \$___INPUTTYPE,
86
+ "devbleu=s" => \$devbleu,
87
+ "sparse_weight_file=s" => \$sparse_weights_file,
88
+ "working-dir=s" => \$___WORKING_DIR,
89
+ ) or exit(1);
90
+
91
+ ##!# GetOptions(
92
+ ##!# "gzip!" => \$opt_gzip,
93
+ ##!# "Hierarchical" => \$opt_hierarchical,
94
+ ##!# "Binarizer=s" => \$binarizer,
95
+ ##!# "MinNonInitialRuleCount=i" => \$opt_min_non_initial_rule_count
96
+ ##!# ) or exit(1);
97
+
98
+
99
+ # the ?? required parameters can be supplied on the command line directly
100
+ # or using the --options
101
+ if (scalar @ARGV == 4) {
102
+ # required parameters: options
103
+ $___DEV_F = shift;
104
+ $___DECODER = shift;
105
+ $___CONFIG = shift;
106
+ $run = shift; # first or final
107
+ }
108
+
109
+ if ($usage || !defined $___DECODER || !defined $___CONFIG) {
110
+ print STDERR "usage: $0 \$___DECODER \$___CONFIG(decoder.ini)
111
+ Options:
112
+ --activate-features=STRING ... comma-separated list of features to optimize,
113
+ others are fixed to the starting values
114
+ default: optimize all features
115
+ example: tm_0,tm_4,d_0
116
+ --range=tm:0..1,-1..1 ... specify min and max value for some features
117
+ --range can be repeated as needed.
118
+ The order of the various --range specifications
119
+ is important only within a feature name.
120
+ E.g.:
121
+ --range=tm:0..1,-1..1 --range=tm:0..2
122
+ is identical to:
123
+ --range=tm:0..1,-1..1,0..2
124
+ but not to:
125
+ --range=tm:0..2 --range=tm:0..1,-1..1
126
+ --decoder-flags=STRING ... extra parameters for the decoder
127
+ --inputtype=[0|1|2] ... Handle different input types: (0 for text,
128
+ 1 for confusion network, 2 for lattices,
129
+ default is 0)
130
+ ";
131
+ exit 1;
132
+ }
133
+
134
+
135
+
136
+ ##!# # get command line parameters
137
+ ##!# my $dir = shift;
138
+ ##!# my $config = shift;
139
+ ##!# my $input = shift;
140
+
141
+ ##!# $dir = ensure_full_path($dir);
142
+
143
+ ############################################################
144
+ ############################################################
145
+ ############################################################
146
+
147
+ # main
148
+
149
+ # we run moses to check validity of moses.ini and to obtain all the feature
150
+ # names
151
+
152
+ if (($run eq "first")){
153
+ my $featlist = get_featlist_from_moses($___CONFIG,$___CONFIG,"first");
154
+ $featlist = insert_ranges_to_featlist($featlist, $___RANGES);
155
+ create_config($___CONFIG,"$___WORKING_DIR/run1.moses.ini",$featlist,1,(defined$devbleu?$devbleu:"--not-estimated--"),$sparse_weights_file);
156
+ } else { # $run eq "final"
157
+ chomp ($runid_final = `cat $___WORKING_DIR/finished_step.txt | tail -n 1`);
158
+ $runid_finalplus = $runid_final + 1;
159
+ `mv run${runid_finalplus}.moses.ini run_final.moses.ini`;
160
+ chomp ($devbleu = `cat $___WORKING_DIR/run_final.moses.ini | tail -n +3 | head -n 1 | gawk '{print \$3}'`);
161
+ my $featlist = get_featlist_from_moses($___CONFIG,"$___WORKING_DIR/run_final.moses.ini","final");
162
+ $featlist = insert_ranges_to_featlist($featlist, $___RANGES);
163
+ create_config($___CONFIG,"$___WORKING_DIR/moses.ini",$featlist,$runid_finalplus,$devbleu,$sparse_weights_file);
164
+ }
165
+
166
+ ##COPIED## Mark which features are disabled:
167
+ ##COPIED#if (defined $___ACTIVATE_FEATURES) {
168
+ ##COPIED# my %enabled = map { ($_, 1) } split /[, ]+/, $___ACTIVATE_FEATURES;
169
+ ##COPIED# my %cnt;
170
+ ##COPIED# for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
171
+ ##COPIED# my $name = $featlist->{"names"}->[$i];
172
+ ##COPIED# $cnt{$name} = 0 if !defined $cnt{$name};
173
+ ##COPIED# $featlist->{"enabled"}->[$i] = $enabled{$name."_".$cnt{$name}};
174
+ ##COPIED# $cnt{$name}++;
175
+ ##COPIED# }
176
+ ##COPIED#} else {
177
+ ##COPIED# # all enabled
178
+ ##COPIED# for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
179
+ ##COPIED# $featlist->{"enabled"}->[$i] = 1;
180
+ ##COPIED# }
181
+ ##COPIED#}
182
+ ##COPIED#
183
+ ##COPIED#print STDERR "MERT starting values and ranges for random generation:\n";
184
+ ##COPIED#for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
185
+ ##COPIED# my $name = $featlist->{"names"}->[$i];
186
+ ##COPIED# my $val = $featlist->{"values"}->[$i];
187
+ ##COPIED# my $min = $featlist->{"mins"}->[$i];
188
+ ##COPIED# my $max = $featlist->{"maxs"}->[$i];
189
+ ##COPIED# my $enabled = $featlist->{"enabled"}->[$i];
190
+ ##COPIED# printf STDERR " %5s = %7.3f", $name, $val;
191
+ ##COPIED# if ($enabled) {
192
+ ##COPIED# printf STDERR " (%5.2f .. %5.2f)\n", $min, $max;
193
+ ##COPIED# } else {
194
+ ##COPIED# print STDERR " --- inactive, not optimized ---\n";
195
+ ##COPIED# }
196
+ ##COPIED#}
197
+
198
+
199
+
200
+
201
+
202
+ sub get_featlist_from_moses {
203
+ # run moses with the given config file and return the list of features and
204
+ # their initial values
205
+ my $configfn = shift;
206
+ my $config_score = shift;
207
+ my $run = shift;
208
+
209
+ my $featlistfn = "";
210
+ if ($run eq 'first') {
211
+ $featlistfn = "./features.list"; # given feature list
212
+ } elsif ($run eq "final") {
213
+ $featlistfn = "./features.list.run_final";
214
+ }
215
+ if (-e $featlistfn) {
216
+ print STDERR "Using cached features list: $featlistfn\n";
217
+ } else {
218
+ print STDERR "Asking moses for feature names and values from $config_score\n";
219
+ my $cmd = "$___DECODER $___DECODER_FLAGS -config $config_score -inputtype $___INPUTTYPE -show-weights > $featlistfn";
220
+ print STDERR "$cmd\n"; #DEBUG
221
+ safesystem($cmd) or die "Failed to run moses with the config $config_score";
222
+ }
223
+
224
+ # read feature list
225
+ my @names = ();
226
+ my @startvalues = ();
227
+ open(INI,$featlistfn) or die "Can't read $featlistfn";
228
+ my $nr = 0;
229
+ my @errs = ();
230
+ while (<INI>) {
231
+ $nr++;
232
+ chomp;
233
+ /^(.+) (\S+) (\S+)$/ || die("invalid feature: $_");
234
+ my ($longname, $feature, $value) = ($1,$2,$3);
235
+ next if $value eq "sparse";
236
+ push @errs, "$featlistfn:$nr:Bad initial value of $feature: $value\n"
237
+ if $value !~ /^[+-]?[0-9.e]+$/;
238
+ push @errs, "$featlistfn:$nr:Unknown feature '$feature', please add it to \@ABBR_FULL_MAP\n"
239
+ if !defined $ABBR2FULL{$feature};
240
+ push @names, $feature;
241
+ push @startvalues, $value;
242
+ }
243
+ close INI;
244
+ if (scalar @errs) {
245
+ print STDERR join("", @errs);
246
+ exit 1;
247
+ }
248
+ return {"names"=>\@names, "values"=>\@startvalues};
249
+ }
250
+
251
+
252
+ sub insert_ranges_to_featlist {
253
+ my $featlist = shift;
254
+ my $ranges = shift;
255
+
256
+ $ranges = [] if !defined $ranges;
257
+
258
+ # first collect the ranges from options
259
+ my $niceranges;
260
+ foreach my $range (@$ranges) {
261
+ my $name = undef;
262
+ foreach my $namedpair (split /,/, $range) {
263
+ if ($namedpair =~ /^(.*?):/) {
264
+ $name = $1;
265
+ $namedpair =~ s/^.*?://;
266
+ die "Unrecognized name '$name' in --range=$range"
267
+ if !defined $ABBR2FULL{$name};
268
+ }
269
+ my ($min, $max) = split /\.\./, $namedpair;
270
+ die "Bad min '$min' in --range=$range" if $min !~ /^-?[0-9.]+$/;
271
+ die "Bad max '$max' in --range=$range" if $min !~ /^-?[0-9.]+$/;
272
+ die "No name given in --range=$range" if !defined $name;
273
+ push @{$niceranges->{$name}}, [$min, $max];
274
+ }
275
+ }
276
+
277
+ # now populate featlist
278
+ my $seen = undef;
279
+ for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
280
+ my $name = $featlist->{"names"}->[$i];
281
+ $seen->{$name} ++;
282
+ my $min = 0.0;
283
+ my $max = 1.0;
284
+ if (defined $niceranges->{$name}) {
285
+ my $minmax = shift @{$niceranges->{$name}};
286
+ ($min, $max) = @$minmax if defined $minmax;
287
+ }
288
+ $featlist->{"mins"}->[$i] = $min;
289
+ $featlist->{"maxs"}->[$i] = $max;
290
+ }
291
+ return $featlist;
292
+ }
293
+
294
+ sub safesystem {
295
+ print STDERR "Executing: @_\n";
296
+ system(@_);
297
+ if ($? == -1) {
298
+ print STDERR "Failed to execute: @_\n $!\n";
299
+ exit(1);
300
+ }
301
+ elsif ($? & 127) {
302
+ printf STDERR "Execution of: @_\n died with signal %d, %s coredump\n",
303
+ ($? & 127), ($? & 128) ? 'with' : 'without';
304
+ exit(1);
305
+ }
306
+ else {
307
+ my $exitcode = $? >> 8;
308
+ print STDERR "Exit code: $exitcode\n" if $exitcode;
309
+ return ! $exitcode;
310
+ }
311
+ }
312
+
313
+
314
+
315
+ sub create_config {
316
+ my $infn = shift; # source config
317
+ my $outfn = shift; # where to save the config
318
+ my $featlist = shift; # the lambdas we should write
319
+ my $iteration = shift; # just for verbosity
320
+ my $bleu_achieved = shift; # just for verbosity
321
+ my $sparse_weights_file = shift; # only defined when optimizing sparse features
322
+
323
+ my %P; # the hash of all parameters we wish to override
324
+
325
+ # first convert the command line parameters to the hash
326
+ { # ensure local scope of vars
327
+ my $parameter=undef;
328
+ print "Parsing --decoder-flags: |$___DECODER_FLAGS|\n";
329
+ $___DECODER_FLAGS =~ s/^\s*|\s*$//;
330
+ $___DECODER_FLAGS =~ s/\s+/ /;
331
+ foreach (split(/ /,$___DECODER_FLAGS)) {
332
+ if (/^\-([^\d].*)$/) {
333
+ $parameter = $1;
334
+ $parameter = $ABBR2FULL{$parameter} if defined($ABBR2FULL{$parameter});
335
+ }
336
+ else {
337
+ die "Found value with no -paramname before it: $_"
338
+ if !defined $parameter;
339
+ push @{$P{$parameter}},$_;
340
+ }
341
+ }
342
+ }
343
+
344
+ # First delete all weights params from the input, we're overwriting them.
345
+ # Delete both short and long-named version.
346
+ for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
347
+ my $name = $featlist->{"names"}->[$i];
348
+ delete($P{$name});
349
+ delete($P{$ABBR2FULL{$name}});
350
+ }
351
+
352
+ # Convert weights to elements in P
353
+ for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
354
+ my $name = $featlist->{"names"}->[$i];
355
+ my $val = $featlist->{"values"}->[$i];
356
+ $name = defined $ABBR2FULL{$name} ? $ABBR2FULL{$name} : $name;
357
+ # ensure long name
358
+ push @{$P{$name}}, $val;
359
+ }
360
+
361
+ if (defined($sparse_weights_file)) {
362
+ push @{$P{"weights-file"}}, $___WORKING_DIR."/".$sparse_weights_file;
363
+ }
364
+
365
+ # create new moses.ini decoder config file by cloning and overriding the original one
366
+ open(INI,$infn) or die "Can't read $infn";
367
+ delete($P{"config"}); # never output
368
+ print "Saving new config to: $outfn\n";
369
+ open(OUT,"> $outfn") or die "Can't write $outfn";
370
+ print OUT "# MERT optimized configuration\n";
371
+ print OUT "# decoder $___DECODER\n";
372
+ print OUT "# BLEU $bleu_achieved on dev $___DEV_F\n";
373
+ print OUT "# We were before running iteration $iteration\n";
374
+ print OUT "# finished ".`date`;
375
+ my $line = <INI>;
376
+ while(1) {
377
+ last unless $line;
378
+
379
+ # skip until hit [parameter]
380
+ if ($line !~ /^\[(.+)\]\s*$/) {
381
+ $line = <INI>;
382
+ print OUT $line if $line =~ /^\#/ || $line =~ /^\s+$/;
383
+ next;
384
+ }
385
+
386
+ # parameter name
387
+ my $parameter = $1;
388
+ $parameter = $ABBR2FULL{$parameter} if defined($ABBR2FULL{$parameter});
389
+ print OUT "[$parameter]\n";
390
+
391
+ # change parameter, if new values
392
+ if (defined($P{$parameter})) {
393
+ # write new values
394
+ foreach (@{$P{$parameter}}) {
395
+ print OUT $_."\n";
396
+ }
397
+ delete($P{$parameter});
398
+ # skip until new parameter, only write comments
399
+ while($line = <INI>) {
400
+ print OUT $line if $line =~ /^\#/ || $line =~ /^\s+$/;
401
+ last if $line =~ /^\[/;
402
+ last unless $line;
403
+ }
404
+ next;
405
+ }
406
+ # unchanged parameter, write old
407
+ while($line = <INI>) {
408
+ last if $line =~ /^\[/;
409
+ print OUT $line;
410
+ }
411
+ }
412
+
413
+ # write all additional parameters
414
+ foreach my $parameter (keys %P) {
415
+ print OUT "\n[$parameter]\n";
416
+ foreach (@{$P{$parameter}}) {
417
+ print OUT $_."\n";
418
+ }
419
+ }
420
+
421
+ close(INI);
422
+ close(OUT);
423
+ print STDERR "Saved: $outfn\n";
424
+ }
425
+
426
+
mosesdecoder/contrib/mert-sge-nosync/training/sge-nosync/moses-parallel-postdecode-sge-nosync.pl ADDED
@@ -0,0 +1,235 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/perl
2
+
3
+
4
+ my $logflag="";
5
+ my $logfile="";
6
+ my $alifile=undef;
7
+ my $nbestflag=0;
8
+ my $processid=0;
9
+ my $idxliststr="";
10
+ my $workingdir="";
11
+ my $inputfile="";
12
+ my $tmpdir="";
13
+ my $splitpfx="";
14
+ my $jobscript="";
15
+ my $qsubout="";
16
+ my $qsuberr="";
17
+ my $nbestfile=undef;
18
+ my $nbestlist=undef;
19
+ my $outnbest="";
20
+ my $lsamp_filename="";
21
+ my @idxlist=();
22
+
23
+
24
+ ###############################
25
+ # Script starts here
26
+
27
+ init();
28
+
29
+
30
+
31
+ #concatenating translations and removing temporary files
32
+ concatenate_1best();
33
+ concatenate_logs() if $logflag;
34
+ concatenate_ali() if defined $alifile;
35
+ concatenate_nbest() if $nbestflag;
36
+ safesystem("cat nbest$$ >> /dev/stdout") if $nbestlist[0] eq '-';
37
+
38
+
39
+ print STDERR "Not support searchgraphflag for sync mert\n" if $searchgraphflag;
40
+ # concatenate_searchgraph() if $searchgraphflag;
41
+ # safesystem("cat searchgraph$$ >> /dev/stdout") if $searchgraphlist eq '-';
42
+
43
+ print STDERR "Not support wordgraphflag for sync mert\n" if $searchgraphflag;
44
+ # concatenate_wordgraph() if $wordgraphflag;
45
+ # safesystem("cat wordgraph$$ >> /dev/stdout") if $wordgraphlist[0] eq '-';
46
+
47
+ remove_temporary_files();
48
+ ####
49
+ #### ### ending scripts in run_decoder() ##############
50
+ #### sanity_check_order_of_lambdas($featlist, $filename);
51
+ #### ## how to do return???
52
+ #### return ($filename, $lsamp_filename);
53
+ ######################################################
54
+
55
+
56
+
57
+
58
+ sub init(){
59
+ use strict;
60
+ use Getopt::Long qw(:config pass_through no_ignore_case permute);
61
+
62
+ GetOptions('alignment-output-file=s'=>\$alifile,
63
+ 'process-id=s'=>\$processid,
64
+ 'idxliststr=s'=>\$idxliststr,
65
+ 'logfile=s'=>\$logfile,
66
+ 'nbestfile=s'=>\$nbestfile,
67
+ 'outnbest=s'=>\$outnbest,
68
+ 'lsamp-filename=s'=>\$lsamp_filename,
69
+ 'input-file=s'=>\$inputfile
70
+ ) or exit(1);
71
+
72
+ if ($logfile){ $logflag=1; }
73
+
74
+ if (defined $nbestfile) { $nbestflag=1; }
75
+
76
+ $idxliststr =~ s/^\s+|\s+$//g;
77
+ @idxlist = split(/\s+/,$idxliststr);
78
+
79
+ my $pwdcmd = getPwdCmd();
80
+
81
+ $workingdir = `$pwdcmd`; chomp $workingdir;
82
+ $tmpdir="$workingdir/tmp$processid";
83
+ $splitpfx="split$processid";
84
+
85
+ $jobscript="$workingdir/job$processid";
86
+ $qsubout="$workingdir/out.job$processid";
87
+ $qsuberr="$workingdir/err.job$processid";
88
+
89
+ # print STDERR "$idxliststr\n";
90
+
91
+ }
92
+
93
+
94
+ sub concatenate_nbest(){
95
+ my $oldcode="";
96
+ my $newcode=-1;
97
+ my %inplength = ();
98
+ my $offset = 0;
99
+
100
+ # get the list of feature and set a fictitious string with zero scores
101
+ open (IN, "${nbestfile}.${splitpfx}$idxlist[0]");
102
+ my $str = <IN>;
103
+ chomp($str);
104
+ close(IN);
105
+ my ($code,$trans,$featurescores,$globalscore)=split(/\|\|\|/,$str);
106
+
107
+ my $emptytrans = " ";
108
+ my $emptyglobalscore = " 0.0";
109
+ my $emptyfeaturescores = $featurescores;
110
+ $emptyfeaturescores =~ s/[-0-9\.]+/0/g;
111
+
112
+ if ($outnbest eq '-'){ $outnbest="nbest$processid"; }
113
+
114
+ # my $outnbest=$nbestlist[0];
115
+ # if ($nbestlist[0] eq '-'){ $outnbest="nbest$$"; }
116
+
117
+ open (OUT, "> $outnbest");
118
+ foreach my $idx (@idxlist){
119
+
120
+ #computing the length of each input file
121
+ # print STDERR "this idx: $idx\n";
122
+
123
+ my @in=();
124
+ open (IN, "${inputfile}.${splitpfx}${idx}.trans");
125
+ @in=<IN>;
126
+ close(IN);
127
+ $inplength{$idx} = scalar(@in);
128
+
129
+ open (IN, "${nbestfile}.${splitpfx}${idx}");
130
+ while (<IN>){
131
+ my ($code,@extra)=split(/\|\|\|/,$_);
132
+ $code += $offset;
133
+ if ($code ne $oldcode){
134
+ # if there is a jump between two consecutive codes
135
+ # it means that an input sentence is not translated
136
+ # fill this hole with a "fictitious" list of translation
137
+ # comprising just one "emtpy translation" with zero scores
138
+ while ($code - $oldcode > 1){
139
+ $oldcode++;
140
+ print OUT join("\|\|\|",($oldcode,$emptytrans,$emptyfeaturescores,$emptyglobalscore)),"\n";
141
+ }
142
+ }
143
+ $oldcode=$code;
144
+ print OUT join("\|\|\|",($oldcode,@extra));
145
+ }
146
+ close(IN);
147
+ $offset += $inplength{$idx};
148
+
149
+ while ($offset - $oldcode > 1){
150
+ $oldcode++;
151
+ print OUT join("\|\|\|",($oldcode,$emptytrans,$emptyfeaturescores,$emptyglobalscore)),"\n";
152
+ }
153
+ }
154
+ close(OUT);
155
+ }
156
+
157
+
158
+ sub concatenate_1best(){
159
+ foreach my $idx (@idxlist){
160
+ # print STDERR "reading 1best file ${inputfile}.${splitpfx}$idx.trans\n";
161
+ my @in=();
162
+ open (IN, "${inputfile}.${splitpfx}${idx}.trans");
163
+ @in=<IN>;
164
+ # print STDERR "in array is : @in";
165
+ print STDOUT "@in";
166
+ close(IN);
167
+ }
168
+ }
169
+
170
+ sub concatenate_logs(){
171
+ open (OUT, "> ${logfile}");
172
+ foreach my $idx (@idxlist){
173
+ my @in=();
174
+ open (IN, "$qsubout$idx");
175
+ @in=<IN>;
176
+ print OUT "@in";
177
+ close(IN);
178
+ }
179
+ close(OUT);
180
+ }
181
+
182
+ sub concatenate_ali(){
183
+ open (OUT, "> ${alifile}");
184
+ foreach my $idx (@idxlist){
185
+ my @in=();
186
+ open (IN, "$alifile.$splitpfx$idx");
187
+ @in=<IN>;
188
+ print OUT "@in";
189
+ close(IN);
190
+ }
191
+ close(OUT);
192
+ }
193
+
194
+
195
+
196
+
197
+ # look for the correct pwdcmd (pwd by default, pawd if it exists)
198
+ # I assume that pwd always exists
199
+ sub getPwdCmd(){
200
+ my $pwdcmd="pwd";
201
+ my $a;
202
+ chomp($a=`which pawd | head -1 | awk '{print $1}'`);
203
+ if ($a && -e $a){ $pwdcmd=$a; }
204
+ return $pwdcmd;
205
+ }
206
+
207
+
208
+ sub remove_temporary_files(){
209
+ # removing temporary files
210
+ foreach my $idx (@idxlist){
211
+ unlink("${inputfile}.${splitpfx}${idx}.trans");
212
+ unlink("${inputfile}.${splitpfx}${idx}");
213
+ if (defined $alifile){ unlink("${alifile}.${splitpfx}${idx}"); }
214
+ if ($nbestflag){ unlink("${nbestfile}.${splitpfx}${idx}"); }
215
+ if ($searchgraphflag){ unlink("${searchgraphfile}.${splitpfx}${idx}"); }
216
+ if ($wordgraphflag){ unlink("${wordgraphfile}.${splitpfx}${idx}"); }
217
+
218
+ # print STDERR "Deleting ${jobscript}${idx}.bash\n";
219
+ unlink("${jobscript}${idx}.bash");
220
+ unlink("${jobscript}${idx}.log");
221
+ unlink("$qsubname.W.log");
222
+ unlink("$qsubout$idx");
223
+ unlink("$qsuberr$idx");
224
+ rmdir("$tmpdir");
225
+ }
226
+ # unlink("${jobscript}.sync_workaround_script.sh");
227
+ if ($nbestflag && $nbestlist[0] eq '-'){ unlink("${nbestfile}$$"); };
228
+ if ($searchgraphflag && $searchgraphlist eq '-'){ unlink("${searchgraphfile}$$"); };
229
+ if ($wordgraphflag && $wordgraphlist eq '-'){ unlink("${wordgraphfile}$$"); };
230
+ }
231
+
232
+
233
+
234
+
235
+
mosesdecoder/contrib/mert-sge-nosync/training/sge-nosync/poll-decoder.pl ADDED
@@ -0,0 +1,30 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/perl
2
+
3
+ use Getopt::Long qw(:config pass_through no_ignore_case permute);
4
+
5
+ my $poll_target = undef;
6
+ my $working_dir = undef;
7
+
8
+ GetOptions('poll-target=s'=> \$poll_target,
9
+ 'working-dir'=> \$working_dir
10
+ ) or exit(1);
11
+
12
+
13
+ if (defined $working_dir) {
14
+ chdir($working_dir);
15
+ }
16
+
17
+ my $cnt = 1;
18
+
19
+ print STDERR "Wait for file: $poll_target\n";
20
+
21
+ while (1) {
22
+ if (-e $poll_target){
23
+ print STDERR "\n File found!!\n";
24
+ last;
25
+ } else {
26
+ sleep(10);
27
+ print STDERR ".";
28
+ }
29
+ }
30
+
mosesdecoder/contrib/mert-sge-nosync/training/sge-nosync/process-featlist-sge-nosync.pl ADDED
@@ -0,0 +1,283 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/perl -w
2
+
3
+ # $Id$
4
+ # after filter-mode-given-input.pl, process the feature list
5
+
6
+ # original code by Philipp Koehn
7
+ # changes by Ondrej Bojar
8
+ # adapted for hierarchical models by Phil Williams
9
+
10
+ use strict;
11
+
12
+ use FindBin qw($Bin);
13
+ use Getopt::Long;
14
+
15
+
16
+
17
+ my $SCRIPTS_ROOTDIR;
18
+ if (defined($ENV{"SCRIPTS_ROOTDIR"})) {
19
+ $SCRIPTS_ROOTDIR = $ENV{"SCRIPTS_ROOTDIR"};
20
+ } else {
21
+ $SCRIPTS_ROOTDIR = $Bin;
22
+ if ($SCRIPTS_ROOTDIR eq '') {
23
+ $SCRIPTS_ROOTDIR = dirname(__FILE__);
24
+ }
25
+ $SCRIPTS_ROOTDIR =~ s/\/training$//;
26
+ $ENV{"SCRIPTS_ROOTDIR"} = $SCRIPTS_ROOTDIR;
27
+ }
28
+
29
+
30
+ # moses.ini file uses FULL names for lambdas, while this training script
31
+ # internally (and on the command line) uses ABBR names.
32
+ my @ABBR_FULL_MAP = qw(d=weight-d lm=weight-l tm=weight-t w=weight-w
33
+ g=weight-generation lex=weight-lex I=weight-i);
34
+ my %ABBR2FULL = map {split/=/,$_,2} @ABBR_FULL_MAP;
35
+ my %FULL2ABBR = map {my ($a, $b) = split/=/,$_,2; ($b, $a);} @ABBR_FULL_MAP;
36
+
37
+
38
+
39
+ my $verbose = 0;
40
+ my $usage = 0; # request for --help
41
+
42
+
43
+
44
+
45
+ ##!# # consider phrases in input up to $MAX_LENGTH
46
+ ##!# # in other words, all phrase-tables will be truncated at least to 10 words per
47
+ ##!# # phrase.
48
+ ##!# my $MAX_LENGTH = 10;
49
+
50
+ # utilities
51
+ ##!# my $ZCAT = "gzip -cd";
52
+
53
+ # get optional parameters
54
+ ##!# my $opt_hierarchical = 0;
55
+ ##!# my $binarizer = undef;
56
+ ##!# my $opt_min_non_initial_rule_count = undef;
57
+ ##!# my $opt_gzip = 1; # gzip output files (so far only phrase-based ttable until someone tests remaining models and formats)
58
+
59
+ my $___RANGES = undef;
60
+ my $___ACTIVATE_FEATURES = undef; # comma-separated (or blank-separated) list of features to work on
61
+ # if undef work on all features
62
+ # (others are fixed to the starting values)
63
+ my $___DECODER_FLAGS = ""; # additional parametrs to pass to the decoder
64
+
65
+ # set 0 if input type is text, set 1 if input type is confusion network
66
+ my $___INPUTTYPE = 0;
67
+
68
+ my $___DECODER = undef; # required, pathname to the decoder executable
69
+ my $___CONFIG = undef; # required, pathname to startup ini file
70
+
71
+
72
+ GetOptions(
73
+ "activate-features=s" => \$___ACTIVATE_FEATURES, #comma-separated (or blank-separated) list of features to work on (others are fixed to the starting values)
74
+ "range=s@" => \$___RANGES,
75
+ "decoder-flags=s" => \$___DECODER_FLAGS,
76
+ "inputtype=i" => \$___INPUTTYPE
77
+ ) or exit(1);
78
+
79
+ ##!# GetOptions(
80
+ ##!# "gzip!" => \$opt_gzip,
81
+ ##!# "Hierarchical" => \$opt_hierarchical,
82
+ ##!# "Binarizer=s" => \$binarizer,
83
+ ##!# "MinNonInitialRuleCount=i" => \$opt_min_non_initial_rule_count
84
+ ##!# ) or exit(1);
85
+
86
+
87
+ # the ?? required parameters can be supplied on the command line directly
88
+ # or using the --options
89
+ if (scalar @ARGV == 2) {
90
+ # required parameters: options
91
+ $___DECODER = shift;
92
+ $___CONFIG = shift;
93
+ }
94
+
95
+ if ($usage || !defined $___DECODER || !defined $___CONFIG) {
96
+ print STDERR "usage: $0 \$___DECODER \$___CONFIG(decoder.ini)
97
+ Options:
98
+ --activate-features=STRING ... comma-separated list of features to optimize,
99
+ others are fixed to the starting values
100
+ default: optimize all features
101
+ example: tm_0,tm_4,d_0
102
+ --range=tm:0..1,-1..1 ... specify min and max value for some features
103
+ --range can be repeated as needed.
104
+ The order of the various --range specifications
105
+ is important only within a feature name.
106
+ E.g.:
107
+ --range=tm:0..1,-1..1 --range=tm:0..2
108
+ is identical to:
109
+ --range=tm:0..1,-1..1,0..2
110
+ but not to:
111
+ --range=tm:0..2 --range=tm:0..1,-1..1
112
+ --decoder-flags=STRING ... extra parameters for the decoder
113
+ --inputtype=[0|1|2] ... Handle different input types: (0 for text,
114
+ 1 for confusion network, 2 for lattices,
115
+ default is 0)
116
+ ";
117
+ exit 1;
118
+ }
119
+
120
+
121
+
122
+ ##!# # get command line parameters
123
+ ##!# my $dir = shift;
124
+ ##!# my $config = shift;
125
+ ##!# my $input = shift;
126
+
127
+ ##!# $dir = ensure_full_path($dir);
128
+
129
+ ############################################################
130
+ ############################################################
131
+ ############################################################
132
+
133
+ # main
134
+
135
+ # we run moses to check validity of moses.ini and to obtain all the feature
136
+ # names
137
+ my $featlist = get_featlist_from_moses($___CONFIG);
138
+ $featlist = insert_ranges_to_featlist($featlist, $___RANGES);
139
+
140
+
141
+ # Mark which features are disabled:
142
+ if (defined $___ACTIVATE_FEATURES) {
143
+ my %enabled = map { ($_, 1) } split /[, ]+/, $___ACTIVATE_FEATURES;
144
+ my %cnt;
145
+ for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
146
+ my $name = $featlist->{"names"}->[$i];
147
+ $cnt{$name} = 0 if !defined $cnt{$name};
148
+ $featlist->{"enabled"}->[$i] = $enabled{$name."_".$cnt{$name}};
149
+ $cnt{$name}++;
150
+ }
151
+ } else {
152
+ # all enabled
153
+ for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
154
+ $featlist->{"enabled"}->[$i] = 1;
155
+ }
156
+ }
157
+
158
+ print STDERR "MERT starting values and ranges for random generation:\n";
159
+ for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
160
+ my $name = $featlist->{"names"}->[$i];
161
+ my $val = $featlist->{"values"}->[$i];
162
+ my $min = $featlist->{"mins"}->[$i];
163
+ my $max = $featlist->{"maxs"}->[$i];
164
+ my $enabled = $featlist->{"enabled"}->[$i];
165
+ printf STDERR " %5s = %7.3f", $name, $val;
166
+ if ($enabled) {
167
+ printf STDERR " (%5.2f .. %5.2f)\n", $min, $max;
168
+ } else {
169
+ print STDERR " --- inactive, not optimized ---\n";
170
+ }
171
+ }
172
+
173
+
174
+
175
+
176
+
177
+ sub get_featlist_from_moses {
178
+ # run moses with the given config file and return the list of features and
179
+ # their initial values
180
+ my $configfn = shift;
181
+ my $featlistfn = "./features.list";
182
+ if (-e $featlistfn) {
183
+ print STDERR "Using cached features list: $featlistfn\n";
184
+ } else {
185
+ print STDERR "Asking moses for feature names and values from $___CONFIG\n";
186
+ my $cmd = "$___DECODER $___DECODER_FLAGS -config $configfn -inputtype $___INPUTTYPE -show-weights > $featlistfn";
187
+ print STDERR "$cmd\n"; #DEBUG
188
+ safesystem($cmd) or die "Failed to run moses with the config $configfn";
189
+ }
190
+
191
+ # read feature list
192
+ my @names = ();
193
+ my @startvalues = ();
194
+ open(INI,$featlistfn) or die "Can't read $featlistfn";
195
+ my $nr = 0;
196
+ my @errs = ();
197
+ while (<INI>) {
198
+ $nr++;
199
+ chomp;
200
+ /^(.+) (\S+) (\S+)$/ || die("invalid feature: $_");
201
+ my ($longname, $feature, $value) = ($1,$2,$3);
202
+ next if $value eq "sparse";
203
+ push @errs, "$featlistfn:$nr:Bad initial value of $feature: $value\n"
204
+ if $value !~ /^[+-]?[0-9.e]+$/;
205
+ push @errs, "$featlistfn:$nr:Unknown feature '$feature', please add it to \@ABBR_FULL_MAP\n"
206
+ if !defined $ABBR2FULL{$feature};
207
+ push @names, $feature;
208
+ push @startvalues, $value;
209
+ }
210
+ close INI;
211
+ if (scalar @errs) {
212
+ print STDERR join("", @errs);
213
+ exit 1;
214
+ }
215
+ return {"names"=>\@names, "values"=>\@startvalues};
216
+ }
217
+
218
+
219
+ sub insert_ranges_to_featlist {
220
+ my $featlist = shift;
221
+ my $ranges = shift;
222
+
223
+ $ranges = [] if !defined $ranges;
224
+
225
+ # first collect the ranges from options
226
+ my $niceranges;
227
+ foreach my $range (@$ranges) {
228
+ my $name = undef;
229
+ foreach my $namedpair (split /,/, $range) {
230
+ if ($namedpair =~ /^(.*?):/) {
231
+ $name = $1;
232
+ $namedpair =~ s/^.*?://;
233
+ die "Unrecognized name '$name' in --range=$range"
234
+ if !defined $ABBR2FULL{$name};
235
+ }
236
+ my ($min, $max) = split /\.\./, $namedpair;
237
+ die "Bad min '$min' in --range=$range" if $min !~ /^-?[0-9.]+$/;
238
+ die "Bad max '$max' in --range=$range" if $min !~ /^-?[0-9.]+$/;
239
+ die "No name given in --range=$range" if !defined $name;
240
+ push @{$niceranges->{$name}}, [$min, $max];
241
+ }
242
+ }
243
+
244
+ # now populate featlist
245
+ my $seen = undef;
246
+ for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
247
+ my $name = $featlist->{"names"}->[$i];
248
+ $seen->{$name} ++;
249
+ my $min = 0.0;
250
+ my $max = 1.0;
251
+ if (defined $niceranges->{$name}) {
252
+ my $minmax = shift @{$niceranges->{$name}};
253
+ ($min, $max) = @$minmax if defined $minmax;
254
+ }
255
+ $featlist->{"mins"}->[$i] = $min;
256
+ $featlist->{"maxs"}->[$i] = $max;
257
+ }
258
+ return $featlist;
259
+ }
260
+
261
+ sub safesystem {
262
+ print STDERR "Executing: @_\n";
263
+ system(@_);
264
+ if ($? == -1) {
265
+ print STDERR "Failed to execute: @_\n $!\n";
266
+ exit(1);
267
+ }
268
+ elsif ($? & 127) {
269
+ printf STDERR "Execution of: @_\n died with signal %d, %s coredump\n",
270
+ ($? & 127), ($? & 128) ? 'with' : 'without';
271
+ exit(1);
272
+ }
273
+ else {
274
+ my $exitcode = $? >> 8;
275
+ print STDERR "Exit code: $exitcode\n" if $exitcode;
276
+ return ! $exitcode;
277
+ }
278
+ }
279
+
280
+
281
+
282
+
283
+
mosesdecoder/contrib/mert-sge-nosync/training/sge-nosync/process-moses-result-sge-nosync.pl ADDED
@@ -0,0 +1,1377 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #! /usr/bin/perl
2
+
3
+ # $Id$
4
+ # Usage:
5
+ # mert-moses.pl <foreign> <english> <decoder-executable> <decoder-config>
6
+ # For other options see below or run 'mert-moses.pl --help'
7
+
8
+ # Notes:
9
+ # <foreign> and <english> should be raw text files, one sentence per line
10
+ # <english> can be a prefix, in which case the files are <english>0, <english>1, etc. are used
11
+
12
+ # Excerpts from revision history
13
+
14
+ # Sept 2011 multi-threaded mert (Barry Haddow)
15
+ # 3 Aug 2011 Added random directions, historic best, pairwise ranked (PK)
16
+ # Jul 2011 simplifications (Ondrej Bojar)
17
+ # -- rely on moses' -show-weights instead of parsing moses.ini
18
+ # ... so moses is also run once *before* mert starts, checking
19
+ # the model to some extent
20
+ # -- got rid of the 'triples' mess;
21
+ # use --range to supply bounds for random starting values:
22
+ # --range tm:-3..3 --range lm:-3..3
23
+ # 5 Aug 2009 Handling with different reference length policies (shortest, average, closest) for BLEU
24
+ # and case-sensistive/insensitive evaluation (Nicola Bertoldi)
25
+ # 5 Jun 2008 Forked previous version to support new mert implementation.
26
+ # 13 Feb 2007 Better handling of default values for lambda, now works with multiple
27
+ # models and lexicalized reordering
28
+ # 11 Oct 2006 Handle different input types through parameter --inputype=[0|1]
29
+ # (0 for text, 1 for confusion network, default is 0) (Nicola Bertoldi)
30
+ # 10 Oct 2006 Allow skip of filtering of phrase tables (--no-filter-phrase-table)
31
+ # useful if binary phrase tables are used (Nicola Bertoldi)
32
+ # 28 Aug 2006 Use either closest or average or shortest (default) reference
33
+ # length as effective reference length
34
+ # Use either normalization or not (default) of texts (Nicola Bertoldi)
35
+ # 31 Jul 2006 move gzip run*.out to avoid failure wit restartings
36
+ # adding default paths
37
+ # 29 Jul 2006 run-filter, score-nbest and mert run on the queue (Nicola; Ondrej had to type it in again)
38
+ # 28 Jul 2006 attempt at foolproof usage, strong checking of input validity, merged the parallel and nonparallel version (Ondrej Bojar)
39
+ # 27 Jul 2006 adding the safesystem() function to handle with process failure
40
+ # 22 Jul 2006 fixed a bug about handling relative path of configuration file (Nicola Bertoldi)
41
+ # 21 Jul 2006 adapted for Moses-in-parallel (Nicola Bertoldi)
42
+ # 18 Jul 2006 adapted for Moses and cleaned up (PK)
43
+ # 21 Jan 2005 unified various versions, thorough cleanup (DWC)
44
+ # now indexing accumulated n-best list solely by feature vectors
45
+ # 14 Dec 2004 reimplemented find_threshold_points in C (NMD)
46
+ # 25 Oct 2004 Use either average or shortest (default) reference
47
+ # length as effective reference length (DWC)
48
+ # 13 Oct 2004 Use alternative decoders (DWC)
49
+ # Original version by Philipp Koehn
50
+
51
+ use strict;
52
+ use Net::OpenSSH::Compat::Perl;
53
+
54
+ use FindBin qw($Bin);
55
+ use File::Basename;
56
+ use File::Path;
57
+ use File::Spec;
58
+ use Cwd;
59
+
60
+ my $SCRIPTS_ROOTDIR = $Bin;
61
+ $SCRIPTS_ROOTDIR =~ s/\/training$//;
62
+ $SCRIPTS_ROOTDIR = $ENV{"SCRIPTS_ROOTDIR"} if defined($ENV{"SCRIPTS_ROOTDIR"});
63
+
64
+ ## We preserve this bit of comments to keep the traditional weight ranges.
65
+ # "w" => [ [ 0.0, -1.0, 1.0 ] ], # word penalty
66
+ # "d" => [ [ 1.0, 0.0, 2.0 ] ], # lexicalized reordering model
67
+ # "lm" => [ [ 1.0, 0.0, 2.0 ] ], # language model
68
+ # "g" => [ [ 1.0, 0.0, 2.0 ], # generation model
69
+ # [ 1.0, 0.0, 2.0 ] ],
70
+ # "tm" => [ [ 0.3, 0.0, 0.5 ], # translation model
71
+ # [ 0.2, 0.0, 0.5 ],
72
+ # [ 0.3, 0.0, 0.5 ],
73
+ # [ 0.2, 0.0, 0.5 ],
74
+ # [ 0.0,-1.0, 1.0 ] ], # ... last weight is phrase penalty
75
+ # "lex"=> [ [ 0.1, 0.0, 0.2 ] ], # global lexical model
76
+ # "I" => [ [ 0.0,-1.0, 1.0 ] ], # input lattice scores
77
+
78
+
79
+
80
+ # moses.ini file uses FULL names for lambdas, while this training script
81
+ # internally (and on the command line) uses ABBR names.
82
+ my @ABBR_FULL_MAP = qw(d=weight-d lm=weight-l tm=weight-t w=weight-w
83
+ g=weight-generation lex=weight-lex I=weight-i);
84
+ my %ABBR2FULL = map {split/=/,$_,2} @ABBR_FULL_MAP;
85
+ my %FULL2ABBR = map {my ($a, $b) = split/=/,$_,2; ($b, $a);} @ABBR_FULL_MAP;
86
+
87
+ my $minimum_required_change_in_weights = 0.00001;
88
+ # stop if no lambda changes more than this
89
+
90
+ my $verbose = 0;
91
+ my $usage = 0; # request for --help
92
+
93
+ # We assume that if you don't specify working directory,
94
+ # we set the default is set to `pwd`/mert-work
95
+ # my $___WORKING_DIR = File::Spec->catfile(Cwd::getcwd(), "mert-work");
96
+ my $___WORKING_DIR = undef;
97
+ my $___DEV_E = undef;
98
+ my $___DEV_F = undef; # required, input text to decode
99
+ my $___DECODER = undef; # required, pathname to the decoder executable
100
+ my $___CONFIG = undef; # required, pathname to startup ini file
101
+ my $___N_BEST_LIST_SIZE = 100;
102
+ my $___LATTICE_SAMPLES = 0;
103
+ my $queue_flags = "-hard"; # extra parameters for parallelizer
104
+ # the -l ws0ssmt was relevant only to JHU 2006 workshop
105
+ my $___JOBS = undef; # if parallel, number of jobs to use (undef or 0 -> serial)
106
+ my $___DECODER_FLAGS = ""; # additional parametrs to pass to the decoder
107
+ my $continue = 0; # should we try to continue from the last saved step?
108
+ my $skip_decoder = 0; # and should we skip the first decoder run (assuming we got interrupted during mert)
109
+ my $___FILTER_PHRASE_TABLE = 1; # filter phrase table
110
+ my $___PREDICTABLE_SEEDS = 0;
111
+ my $___START_WITH_HISTORIC_BESTS = 0; # use best settings from all previous iterations as starting points [Foster&Kuhn,2009]
112
+ my $___RANDOM_DIRECTIONS = 0; # search in random directions only
113
+ my $___NUM_RANDOM_DIRECTIONS = 0; # number of random directions, also works with default optimizer [Cer&al.,2008]
114
+ my $___PAIRWISE_RANKED_OPTIMIZER = 0; # use Hopkins&May[2011]
115
+ my $___PRO_STARTING_POINT = 0; # get a starting point from pairwise ranked optimizer
116
+ my $___RANDOM_RESTARTS = 20;
117
+ my $___HISTORIC_INTERPOLATION = 0; # interpolate optimize weights with previous iteration's weights [Hopkins&May,2011,5.4.3]
118
+ my $__THREADS = 0;
119
+ my $run = 0;
120
+ my $nextrun = 0;
121
+ my $submithost = "";
122
+
123
+
124
+ # Parameter for effective reference length when computing BLEU score
125
+ # Default is to use shortest reference
126
+ # Use "--shortest" to use shortest reference length
127
+ # Use "--average" to use average reference length
128
+ # Use "--closest" to use closest reference length
129
+ # Only one between --shortest, --average and --closest can be set
130
+ # If more than one choice the defualt (--shortest) is used
131
+ my $___SHORTEST = 0;
132
+ my $___AVERAGE = 0;
133
+ my $___CLOSEST = 0;
134
+
135
+ # Use "--nocase" to compute case-insensitive scores
136
+ my $___NOCASE = 0;
137
+
138
+ # Use "--nonorm" to non normalize translation before computing scores
139
+ my $___NONORM = 0;
140
+
141
+ # set 0 if input type is text, set 1 if input type is confusion network
142
+ my $___INPUTTYPE = 0;
143
+
144
+
145
+ my $mertdir = undef; # path to new mert directory
146
+ my $mertargs = undef; # args to pass through to mert & extractor
147
+ my $mertmertargs = undef; # args to pass through to mert only
148
+ my $extractorargs = undef; # args to pass through to extractor only
149
+ my $filtercmd = undef; # path to filter-model-given-input.pl
150
+ my $filterfile = undef;
151
+ my $qsubwrapper = undef;
152
+ my $qsubwrapper_exit = undef;
153
+ my $moses_parallel_cmd = undef;
154
+ my $old_sge = 0; # assume sge<6.0
155
+ my $___CONFIG_ORIG = undef; # pathname to startup ini file before filtering
156
+ my $___ACTIVATE_FEATURES = undef; # comma-separated (or blank-separated) list of features to work on
157
+ # if undef work on all features
158
+ # (others are fixed to the starting values)
159
+ my $___RANGES = undef;
160
+ my $prev_aggregate_nbl_size = -1; # number of previous step to consider when loading data (default =-1)
161
+ # -1 means all previous, i.e. from iteration 1
162
+ # 0 means no previous data, i.e. from actual iteration
163
+ # 1 means 1 previous data , i.e. from the actual iteration and from the previous one
164
+ # and so on
165
+ my $maximum_iterations = 25;
166
+
167
+ #####################
168
+ my $processfeatlistcmd = undef;
169
+ my $processfeatlistargs = undef;
170
+ my $createconfigcmd = undef;
171
+ my $createconfigargs = undef;
172
+ my $decoderargs = undef;
173
+ #####################
174
+
175
+ use Getopt::Long;
176
+ GetOptions(
177
+ "working-dir=s" => \$___WORKING_DIR,
178
+ "input=s" => \$___DEV_F,
179
+ "inputtype=i" => \$___INPUTTYPE,
180
+ "refs=s" => \$___DEV_E,
181
+ "decoder=s" => \$___DECODER,
182
+ "config=s" => \$___CONFIG,
183
+ "nbest=i" => \$___N_BEST_LIST_SIZE,
184
+ "lattice-samples=i" => \$___LATTICE_SAMPLES,
185
+ "queue-flags=s" => \$queue_flags,
186
+ "jobs=i" => \$___JOBS,
187
+ "decoder-flags=s" => \$___DECODER_FLAGS,
188
+ "continue" => \$continue,
189
+ "skip-decoder" => \$skip_decoder,
190
+ "shortest" => \$___SHORTEST,
191
+ "average" => \$___AVERAGE,
192
+ "closest" => \$___CLOSEST,
193
+ "nocase" => \$___NOCASE,
194
+ "nonorm" => \$___NONORM,
195
+ "help" => \$usage,
196
+ "verbose" => \$verbose,
197
+ "mertdir=s" => \$mertdir,
198
+ "mertargs=s" => \$mertargs,
199
+ "extractorargs=s" => \$extractorargs,
200
+ "mertmertargs=s" => \$mertmertargs,
201
+ "rootdir=s" => \$SCRIPTS_ROOTDIR,
202
+ "filtercmd=s" => \$filtercmd, # allow to override the default location
203
+ "filterfile=s" => \$filterfile, # input to filtering script (useful for lattices/confnets)
204
+ "qsubwrapper=s" => \$qsubwrapper, # allow to override the default location
205
+ "mosesparallelcmd=s" => \$moses_parallel_cmd, # allow to override the default location
206
+ "old-sge" => \$old_sge, #passed to moses-parallel
207
+ "filter-phrase-table!" => \$___FILTER_PHRASE_TABLE, # (dis)allow of phrase tables
208
+ "predictable-seeds" => \$___PREDICTABLE_SEEDS, # make random restarts deterministic
209
+ "historic-bests" => \$___START_WITH_HISTORIC_BESTS, # use best settings from all previous iterations as starting points
210
+ "random-directions" => \$___RANDOM_DIRECTIONS, # search only in random directions
211
+ "run=i" => \$run,
212
+ "number-of-random-directions=i" => \$___NUM_RANDOM_DIRECTIONS, # number of random directions
213
+ "random-restarts=i" => \$___RANDOM_RESTARTS, # number of random restarts
214
+ "activate-features=s" => \$___ACTIVATE_FEATURES, #comma-separated (or blank-separated) list of features to work on (others are fixed to the starting values)
215
+ "range=s@" => \$___RANGES,
216
+ "submithost=s" => \$submithost,
217
+ "prev-aggregate-nbestlist=i" => \$prev_aggregate_nbl_size, #number of previous step to consider when loading data (default =-1, i.e. all previous)
218
+ "maximum-iterations=i" => \$maximum_iterations,
219
+ "pairwise-ranked" => \$___PAIRWISE_RANKED_OPTIMIZER,
220
+ "pro-starting-point" => \$___PRO_STARTING_POINT,
221
+ "historic-interpolation=f" => \$___HISTORIC_INTERPOLATION,
222
+ "threads=i" => \$__THREADS
223
+ ) or exit(1);
224
+
225
+ # the 4 required parameters can be supplied on the command line directly
226
+ # or using the --options
227
+ if (scalar @ARGV == 3) {
228
+ # required parameters: input_file references_basename decoder_executable
229
+ $___DEV_F = shift;
230
+ $___DECODER = shift;
231
+ $___CONFIG = shift;
232
+ }
233
+
234
+
235
+
236
+ if ($usage || !defined $___DECODER || !defined $___CONFIG || !defined $___DEV_F) {
237
+ print STDERR "usage: $0 input-text decoder-executable decoder.ini
238
+ Options:
239
+ --working-dir=mert-dir ... where all the files are created
240
+ --nbest=100 ... how big nbestlist to generate
241
+ --lattice-samples ... how many lattice samples (Chatterjee & Cancedda, emnlp 2010)
242
+ --jobs=N ... set this to anything to run moses in parallel
243
+ --mosesparallelcmd=STR ... use a different script instead of moses-parallel
244
+ --queue-flags=STRING ... anything you with to pass to qsub, eg.
245
+ '-l ws06osssmt=true'. The default is: '-hard'
246
+ To reset the parameters, please use
247
+ --queue-flags=' '
248
+ (i.e. a space between the quotes).
249
+ --decoder-flags=STRING ... extra parameters for the decoder
250
+ --continue ... continue from the last successful iteration
251
+ --skip-decoder ... skip the decoder run for the first time,
252
+ assuming that we got interrupted during
253
+ optimization
254
+ --shortest --average --closest
255
+ ... Use shortest/average/closest reference length
256
+ as effective reference length (mutually exclusive)
257
+ --nocase ... Do not preserve case information; i.e.
258
+ case-insensitive evaluation (default is false).
259
+ --nonorm ... Do not use text normalization (flag is not active,
260
+ i.e. text is NOT normalized)
261
+ --filtercmd=STRING ... path to filter-model-given-input.pl
262
+ --filterfile=STRING ... path to alternative to input-text for filtering
263
+ model. useful for lattice decoding
264
+ --rootdir=STRING ... where do helpers reside (if not given explicitly)
265
+ --mertdir=STRING ... path to new mert implementation
266
+ --mertargs=STRING ... extra args for both extractor and mert
267
+ --extractorargs=STRING ... extra args for extractor only
268
+ --mertmertargs=STRING ... extra args for mert only
269
+ --scorenbestcmd=STRING ... path to score-nbest.py
270
+ --old-sge ... passed to parallelizers, assume Grid Engine < 6.0
271
+ --inputtype=[0|1|2] ... Handle different input types: (0 for text,
272
+ 1 for confusion network, 2 for lattices,
273
+ default is 0)
274
+ --no-filter-phrase-table ... disallow filtering of phrase tables
275
+ (useful if binary phrase tables are available)
276
+ --random-restarts=INT ... number of random restarts (default: 20)
277
+ --predictable-seeds ... provide predictable seeds to mert so that random
278
+ restarts are the same on every run
279
+ --range=tm:0..1,-1..1 ... specify min and max value for some features
280
+ --range can be repeated as needed.
281
+ The order of the various --range specifications
282
+ is important only within a feature name.
283
+ E.g.:
284
+ --range=tm:0..1,-1..1 --range=tm:0..2
285
+ is identical to:
286
+ --range=tm:0..1,-1..1,0..2
287
+ but not to:
288
+ --range=tm:0..2 --range=tm:0..1,-1..1
289
+ --activate-features=STRING ... comma-separated list of features to optimize,
290
+ others are fixed to the starting values
291
+ default: optimize all features
292
+ example: tm_0,tm_4,d_0
293
+ --prev-aggregate-nbestlist=INT ... number of previous step to consider when
294
+ loading data (default = $prev_aggregate_nbl_size)
295
+ -1 means all previous, i.e. from iteration 1
296
+ 0 means no previous data, i.e. only the
297
+ current iteration
298
+ N means this and N previous iterations
299
+
300
+ --maximum-iterations=ITERS ... Maximum number of iterations. Default: $maximum_iterations
301
+ --random-directions ... search only in random directions
302
+ --number-of-random-directions=int ... number of random directions
303
+ (also works with regular optimizer, default: 0)
304
+ --pairwise-ranked ... Use PRO for optimisation (Hopkins and May, emnlp 2011)
305
+ --pro-starting-point ... Use PRO to get a starting point for MERT
306
+ --threads=NUMBER ... Use multi-threaded mert (must be compiled in).
307
+ --historic-interpolation ... Interpolate optimized weights with prior iterations' weight
308
+ (parameter sets factor [0;1] given to current weights)
309
+ ";
310
+ exit 1;
311
+ }
312
+
313
+
314
+ # Check validity of input parameters and set defaults if needed
315
+
316
+ print STDERR "Using SCRIPTS_ROOTDIR: $SCRIPTS_ROOTDIR\n";
317
+
318
+ # path of script for filtering phrase tables and running the decoder
319
+ $filtercmd="$SCRIPTS_ROOTDIR/training/filter-model-given-input.pl" if !defined $filtercmd;
320
+
321
+ if ( ! -x $filtercmd && ! $___FILTER_PHRASE_TABLE) {
322
+ print STDERR "Filtering command not found: $filtercmd.\n";
323
+ print STDERR "Use --filtercmd=PATH to specify a valid one or --no-filter-phrase-table\n";
324
+ exit 1;
325
+ }
326
+
327
+ # $qsubwrapper="$SCRIPTS_ROOTDIR/generic/qsub-wrapper.pl" if !defined $qsubwrapper;
328
+ $qsubwrapper = "$SCRIPTS_ROOTDIR/generic/qsub-wrapper-sge-nosync.pl" if !defined $qsubwrapper;
329
+
330
+ $qsubwrapper_exit = "$SCRIPTS_ROOTDIR/generic/qsub-wrapper-exit-sge-nosync.pl" if !defined $qsubwrapper_exit;
331
+
332
+ # $moses_parallel_cmd = "$SCRIPTS_ROOTDIR/generic/moses-parallel.pl"
333
+ # if !defined $moses_parallel_cmd;
334
+ $moses_parallel_cmd = "$SCRIPTS_ROOTDIR/generic/moses-parallel-sge-nosync.pl"
335
+ if !defined $moses_parallel_cmd;
336
+
337
+ if (!defined $mertdir) {
338
+ $mertdir = "$SCRIPTS_ROOTDIR/../mert";
339
+ print STDERR "Assuming --mertdir=$mertdir\n";
340
+ }
341
+
342
+ my $mert_extract_cmd = "$mertdir/extractor";
343
+ my $mert_mert_cmd = "$mertdir/mert";
344
+ my $mert_pro_cmd = "$mertdir/pro";
345
+
346
+ die "Not executable: $mert_extract_cmd" if ! -x $mert_extract_cmd;
347
+ die "Not executable: $mert_mert_cmd" if ! -x $mert_mert_cmd;
348
+ die "Not executable: $mert_pro_cmd" if ! -x $mert_pro_cmd;
349
+
350
+ my $pro_optimizer = "$mertdir/megam_i686.opt"; # or set to your installation
351
+ if (($___PAIRWISE_RANKED_OPTIMIZER || $___PRO_STARTING_POINT) && ! -x $pro_optimizer) {
352
+ print "did not find $pro_optimizer, installing it in $mertdir\n";
353
+ `cd $mertdir; wget http://www.cs.utah.edu/~hal/megam/megam_i686.opt.gz;`;
354
+ `gunzip $pro_optimizer.gz`;
355
+ `chmod +x $pro_optimizer`;
356
+ die("ERROR: Installation of megam_i686.opt failed! Install by hand from http://www.cs.utah.edu/~hal/megam/") unless -x $pro_optimizer;
357
+ }
358
+
359
+ $mertargs = "" if !defined $mertargs;
360
+
361
+ my $scconfig = undef;
362
+ if ($mertargs =~ /\-\-scconfig\s+(.+?)(\s|$)/){
363
+ $scconfig=$1;
364
+ $scconfig =~ s/\,/ /g;
365
+ $mertargs =~ s/\-\-scconfig\s+(.+?)(\s|$)//;
366
+ }
367
+
368
+ # handling reference lengh strategy
369
+ if (($___CLOSEST + $___AVERAGE + $___SHORTEST) > 1){
370
+ die "You can specify just ONE reference length strategy (closest or shortest or average) not both\n";
371
+ }
372
+
373
+ if ($___SHORTEST){
374
+ $scconfig .= " reflen:shortest";
375
+ }elsif ($___AVERAGE){
376
+ $scconfig .= " reflen:average";
377
+ }elsif ($___CLOSEST){
378
+ $scconfig .= " reflen:closest";
379
+ }
380
+
381
+ # handling case-insensitive flag
382
+ if ($___NOCASE) {
383
+ $scconfig .= " case:false";
384
+ }else{
385
+ $scconfig .= " case:true";
386
+ }
387
+ $scconfig =~ s/^\s+//;
388
+ $scconfig =~ s/\s+$//;
389
+ $scconfig =~ s/\s+/,/g;
390
+
391
+ $scconfig = "--scconfig $scconfig" if ($scconfig);
392
+
393
+ my $mert_extract_args=$mertargs;
394
+ $mert_extract_args .=" $scconfig";
395
+ $mert_extract_args .=" $extractorargs";
396
+
397
+ $mertmertargs = "" if !defined $mertmertargs;
398
+
399
+ my $mert_mert_args="$mertargs $mertmertargs";
400
+ $mert_mert_args =~ s/\-+(binary|b)\b//;
401
+ $mert_mert_args .=" $scconfig";
402
+ if ($___ACTIVATE_FEATURES){ $mert_mert_args .=" -o \"$___ACTIVATE_FEATURES\""; }
403
+
404
+ my ($just_cmd_filtercmd,$x) = split(/ /,$filtercmd);
405
+ die "Not executable: $just_cmd_filtercmd" if ! -x $just_cmd_filtercmd;
406
+ die "Not executable: $moses_parallel_cmd" if defined $___JOBS && ! -x $moses_parallel_cmd;
407
+ die "Not executable: $qsubwrapper" if defined $___JOBS && ! -x $qsubwrapper;
408
+ # die "Not executable: $___DECODER" if ! -x $___DECODER;
409
+
410
+ my $input_abs = ensure_full_path($___DEV_F);
411
+ die "File not found: $___DEV_F (interpreted as $input_abs)."
412
+ if ! -e $input_abs;
413
+ $___DEV_F = $input_abs;
414
+
415
+ # Option to pass to qsubwrapper and moses-parallel
416
+ my $pass_old_sge = $old_sge ? "-old-sge" : "";
417
+
418
+ my $decoder_abs = ensure_full_path($___DECODER);
419
+ die "File not executable: $___DECODER (interpreted as $decoder_abs)."
420
+ if ! -x $decoder_abs;
421
+ $___DECODER = $decoder_abs;
422
+
423
+
424
+ my $config_abs = ensure_full_path($___CONFIG);
425
+ die "File not found: $___CONFIG (interpreted as $config_abs)."
426
+ if ! -e $config_abs;
427
+ $___CONFIG = $config_abs;
428
+
429
+ # moses should use our config
430
+ if ($___DECODER_FLAGS =~ /(^|\s)-(config|f) /
431
+ || $___DECODER_FLAGS =~ /(^|\s)-(ttable-file|t) /
432
+ || $___DECODER_FLAGS =~ /(^|\s)-(distortion-file) /
433
+ || $___DECODER_FLAGS =~ /(^|\s)-(generation-file) /
434
+ || $___DECODER_FLAGS =~ /(^|\s)-(lmodel-file) /
435
+ || $___DECODER_FLAGS =~ /(^|\s)-(global-lexical-file) /
436
+ ) {
437
+ die "It is forbidden to supply any of -config, -ttable-file, -distortion-file, -generation-file or -lmodel-file in the --decoder-flags.\nPlease use only the --config option to give the config file that lists all the supplementary files.";
438
+ }
439
+
440
+ # as weights are normalized in the next steps (by cmert)
441
+ # normalize initial LAMBDAs, too
442
+ my $need_to_normalize = 0;
443
+
444
+ #store current directory and create the working directory (if needed)
445
+ my $cwd = `pawd 2>/dev/null`;
446
+ if(!$cwd){$cwd = `pwd`;}
447
+ chomp($cwd);
448
+
449
+ $___WORKING_DIR = $cwd if (!defined $___WORKING_DIR);
450
+ chomp $___WORKING_DIR;
451
+
452
+ # mkpath($___WORKING_DIR);
453
+
454
+ {
455
+ # open local scope
456
+
457
+ #chdir to the working directory
458
+ chdir($___WORKING_DIR) or die "Can't chdir to $___WORKING_DIR";
459
+
460
+ # fixed file names
461
+ my $mert_outfile = "mert.out";
462
+ my $mert_logfile = "mert.log";
463
+ my $weights_in_file = "init.opt";
464
+ my $weights_out_file = "weights.txt";
465
+
466
+ # set start run
467
+ my $start_run = 1;
468
+ my $bestpoint = undef;
469
+ my $devbleu = undef;
470
+ my $sparse_weights_file = undef;
471
+ my $jobid = -1;
472
+
473
+ my $prev_feature_file = undef;
474
+ my $prev_score_file = undef;
475
+ my $prev_init_file = undef;
476
+
477
+
478
+ #########################
479
+ # set jobid to trace different jobs
480
+ my $prevjid = undef;
481
+
482
+
483
+
484
+ ### load featlist when needed########
485
+ print STDERR "loading feat config ./run$run.moses.ini\n";
486
+ my $featlist = get_featlist_from_moses("./run$run.moses.ini");
487
+ $featlist = insert_ranges_to_featlist($featlist, $___RANGES);
488
+
489
+ # Mark which features are disabled:
490
+ if (defined $___ACTIVATE_FEATURES) {
491
+ my %enabled = map { ($_, 1) } split /[, ]+/, $___ACTIVATE_FEATURES;
492
+ my %cnt;
493
+ for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
494
+ my $name = $featlist->{"names"}->[$i];
495
+ $cnt{$name} = 0 if !defined $cnt{$name};
496
+ $featlist->{"enabled"}->[$i] = $enabled{$name."_".$cnt{$name}};
497
+ $cnt{$name}++;
498
+ }
499
+ } else {
500
+ # all enabled
501
+ for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
502
+ $featlist->{"enabled"}->[$i] = 1;
503
+ }
504
+ }
505
+
506
+ #####################################
507
+
508
+
509
+
510
+ my $oldallsorted = undef;
511
+ my $allsorted = undef;
512
+
513
+ my $nbest_file=undef;
514
+ my $lsamp_file=undef; #Lattice samples
515
+ my $orig_nbest_file=undef; # replaced if lattice sampling
516
+ my $cmd=undef;
517
+
518
+
519
+
520
+
521
+ my $base_feature_file = "features.dat";
522
+ my $base_score_file = "scores.dat";
523
+ my $feature_file = "run$run.${base_feature_file}";
524
+ my $score_file = "run$run.${base_score_file}";
525
+
526
+
527
+
528
+ # Create the initial weights file for mert: init.opt
529
+ foreach (@{$featlist->{"names"}}) {
530
+ print STDERR "feature list name: $_\n";
531
+ }
532
+
533
+ my @MIN = @{$featlist->{"mins"}};
534
+ my @MAX = @{$featlist->{"maxs"}};
535
+ my @CURR = @{$featlist->{"values"}};
536
+ my @NAME = @{$featlist->{"names"}};
537
+
538
+ open(OUT,"> $weights_in_file")
539
+ or die "Can't write $weights_in_file (WD now $___WORKING_DIR)";
540
+ print OUT join(" ", @CURR)."\n";
541
+ print OUT join(" ", @MIN)."\n"; # this is where we could pass MINS
542
+ print OUT join(" ", @MAX)."\n"; # this is where we could pass MAXS
543
+ close(OUT);
544
+ # print join(" ", @NAME)."\n";
545
+
546
+ print "CURR before MERT @CURR\n";
547
+
548
+ # make a backup copy labelled with this run number
549
+ safesystem("\\cp -f $weights_in_file run$run.$weights_in_file") or die;
550
+
551
+ my $DIM = scalar(@CURR); # number of lambdas
552
+
553
+ # run mert
554
+ $cmd = "$mert_mert_cmd -d $DIM $mert_mert_args";
555
+
556
+ my $mert_settings = " -n $___RANDOM_RESTARTS";
557
+ my $seed_settings = "";
558
+ if ($___PREDICTABLE_SEEDS) {
559
+ my $seed = $run * 1000;
560
+ $seed_settings .= " -r $seed";
561
+ }
562
+ $mert_settings .= $seed_settings;
563
+ if ($___RANDOM_DIRECTIONS) {
564
+ if ($___NUM_RANDOM_DIRECTIONS == 0) {
565
+ $mert_settings .= " -m 50";
566
+ }
567
+ $mert_settings .= " -t random-direction";
568
+ }
569
+ if ($___NUM_RANDOM_DIRECTIONS) {
570
+ $mert_settings .= " -m $___NUM_RANDOM_DIRECTIONS";
571
+ }
572
+ if ($__THREADS) {
573
+ $mert_settings .= " --threads $__THREADS";
574
+ }
575
+
576
+ ##############################
577
+ # construct prev_feature_file and prev_socre_file
578
+
579
+ my $firstrun;
580
+ if ($prev_aggregate_nbl_size==-1){
581
+ $firstrun=1;
582
+ }
583
+ else{
584
+ $firstrun=$run-$prev_aggregate_nbl_size+1;
585
+ $firstrun=($firstrun>0)?$firstrun:1;
586
+ }
587
+ ##############################
588
+
589
+ print "loading data from $firstrun to $run (prev_aggregate_nbl_size=$prev_aggregate_nbl_size)\n";
590
+ $prev_feature_file = undef;
591
+ $prev_score_file = undef;
592
+ $prev_init_file = undef;
593
+ for (my $i=$firstrun;$i<$run;$i++){
594
+ if (defined $prev_feature_file){
595
+ $prev_feature_file = "${prev_feature_file},run${i}.${base_feature_file}";
596
+ }
597
+ else{
598
+ $prev_feature_file = "run${i}.${base_feature_file}";
599
+ }
600
+ if (defined $prev_score_file){
601
+ $prev_score_file = "${prev_score_file},run${i}.${base_score_file}";
602
+ }
603
+ else{
604
+ $prev_score_file = "run${i}.${base_score_file}";
605
+ }
606
+ }
607
+
608
+ print STDERR "prev_feature_file is $prev_feature_file\n";
609
+ print STDERR "prev_score_files is $prev_score_file\n";
610
+ print STDERR "prev_init_files is undefined\n";
611
+ ############################
612
+
613
+
614
+ my $ffiles = "";
615
+ my $scfiles = "";
616
+ if (defined $prev_feature_file) {
617
+ $ffiles = "$prev_feature_file,$feature_file";
618
+ }
619
+ else{
620
+ $ffiles = "$feature_file";
621
+ }
622
+ if (defined $prev_score_file) {
623
+ $scfiles = "$prev_score_file,$score_file";
624
+ }
625
+ else{
626
+ $scfiles = "$score_file";
627
+ }
628
+
629
+ my $file_settings = " --ffile $ffiles --scfile $scfiles";
630
+ my $pro_file_settings = "--ffile " . join( " --ffile ", split(/,/, $ffiles)) .
631
+ " --scfile " . join( " --scfile ", split(/,/, $scfiles));
632
+
633
+ if ($___START_WITH_HISTORIC_BESTS && defined $prev_init_file) {
634
+ $file_settings .= " --ifile $prev_init_file,run$run.$weights_in_file";
635
+ }
636
+ else{
637
+ $file_settings .= " --ifile run$run.$weights_in_file";
638
+ }
639
+
640
+ $cmd .= $file_settings;
641
+
642
+ # pro optimization
643
+ if ($___PAIRWISE_RANKED_OPTIMIZER) {
644
+ print STDERR "\$___PAIRWISE_RANKED_OPTIMIZER not supported in non-sync mode\n";
645
+ exit 1;
646
+ }
647
+ # first pro, then mert
648
+ elsif ($___PRO_STARTING_POINT) {
649
+ print STDERR "\$___PRO_STARTING_POINT not supported in non-sync mode\n";
650
+ exit 1;
651
+ # run pro...
652
+ my $pro_cmd = "$mert_pro_cmd $seed_settings $pro_file_settings -o run$run.pro.data ; $pro_optimizer -fvals -maxi 30 -nobias binary run$run.pro.data";
653
+ &submit_or_exec($pro_cmd,"run$run.pro.out","run$run.pro.err");
654
+ # ... get results ...
655
+ my %dummy;
656
+ ($bestpoint,$devbleu) = &get_weights_from_mert("run$run.pro.out","run$run.pro.err",scalar @{$featlist->{"names"}},\%dummy);
657
+ open(PRO_START,">run$run.init.pro");
658
+ print PRO_START $bestpoint."\n";
659
+ close(PRO_START);
660
+ # ... and run mert
661
+ $cmd =~ s/(--ifile \S+)/$1,run$run.init.pro/;
662
+ &submit_or_exec($cmd.$mert_settings,$mert_outfile,$mert_logfile);
663
+ }
664
+ # just mert
665
+ else {
666
+ print STDERR "I am running just MERT\n";
667
+ &submit_or_exec($cmd.$mert_settings,$mert_outfile,$mert_logfile);
668
+ }
669
+
670
+ die "Optimization failed, file $weights_out_file does not exist or is empty"
671
+ if ! -s $weights_out_file;
672
+
673
+ # backup copies
674
+ safesystem ("\\cp -f extract.err run$run.extract.err") or die;
675
+ safesystem ("\\cp -f extract.out run$run.extract.out") or die;
676
+ safesystem ("\\cp -f $mert_outfile run$run.$mert_outfile") or die;
677
+ safesystem ("\\cp -f $mert_logfile run$run.$mert_logfile") or die;
678
+ safesystem ("touch $mert_logfile run$run.$mert_logfile") or die;
679
+ safesystem ("\\cp -f $weights_out_file run$run.$weights_out_file") or die; # this one is needed for restarts, too
680
+
681
+ print "run $run end at ".`date`;
682
+
683
+ my %sparse_weights; # sparse features
684
+ ($bestpoint,$devbleu) = &get_weights_from_mert("run$run.$mert_outfile","run$run.$mert_logfile",scalar @{$featlist->{"names"}},\%sparse_weights);
685
+
686
+ die "Failed to parse mert.log, missed Best point there."
687
+ if !defined $bestpoint || !defined $devbleu;
688
+
689
+ print "($run) BEST at $run: $bestpoint => $devbleu at ".`date`;
690
+
691
+ # update my cache of lambda values
692
+ my @newweights = split /\s+/, $bestpoint;
693
+
694
+ # interpolate with prior's interation weight, if historic-interpolation is specified
695
+ if ($___HISTORIC_INTERPOLATION>0 && $run>3) {
696
+ my %historic_sparse_weights;
697
+ if (-e "run$run.sparse-weights") {
698
+ open(SPARSE,"run$run.sparse-weights");
699
+ while(<SPARSE>) {
700
+ chop;
701
+ my ($feature,$weight) = split;
702
+ $historic_sparse_weights{$feature} = $weight;
703
+ }
704
+ }
705
+ my $prev = $run-1;
706
+ my @historic_weights = split /\s+/, `cat run$prev.$weights_out_file`;
707
+ for(my $i=0;$i<scalar(@newweights);$i++) {
708
+ $newweights[$i] = $___HISTORIC_INTERPOLATION * $newweights[$i] + (1-$___HISTORIC_INTERPOLATION) * $historic_weights[$i];
709
+ }
710
+ print "interpolate with ".join(",",@historic_weights)." to ".join(",",@newweights);
711
+ foreach (keys %sparse_weights) {
712
+ $sparse_weights{$_} *= $___HISTORIC_INTERPOLATION;
713
+ #print STDERR "sparse_weights{$_} *= $___HISTORIC_INTERPOLATION -> $sparse_weights{$_}\n";
714
+ }
715
+ foreach (keys %historic_sparse_weights) {
716
+ $sparse_weights{$_} += (1-$___HISTORIC_INTERPOLATION) * $historic_sparse_weights{$_};
717
+ #print STDERR "sparse_weights{$_} += (1-$___HISTORIC_INTERPOLATION) * $historic_sparse_weights{$_} -> $sparse_weights{$_}\n";
718
+ }
719
+ }
720
+ if ($___HISTORIC_INTERPOLATION>0) {
721
+ open(WEIGHTS,">run$run.$weights_out_file");
722
+ print WEIGHTS join(" ",@newweights);
723
+ close(WEIGHTS);
724
+ }
725
+
726
+ $featlist->{"values"} = \@newweights;
727
+
728
+ if (scalar keys %sparse_weights) {
729
+ $sparse_weights_file = "run".($run+1).".sparse-weights";
730
+ open(SPARSE,">".$sparse_weights_file);
731
+ foreach my $feature (keys %sparse_weights) {
732
+ print SPARSE "$feature $sparse_weights{$feature}\n";
733
+ }
734
+ close(SPARSE);
735
+ }
736
+
737
+ ## additional stopping criterion: weights have not changed
738
+ my $shouldstop = 1;
739
+ print "CURR after MERT: @CURR\n";
740
+
741
+ for(my $i=0; $i<@CURR; $i++) {
742
+ die "Lost weight! mert reported fewer weights (@newweights) than we gave it (@CURR)"
743
+ if !defined $newweights[$i];
744
+ # print STDERR "$i Current weight : $CURR[$i]\n";
745
+ # print STDERR "$i New weight: $newweights[$i]\n";
746
+ if (abs($CURR[$i] - $newweights[$i]) >= $minimum_required_change_in_weights) {
747
+ $shouldstop = 0;
748
+ # last;
749
+ }
750
+ }
751
+
752
+
753
+ open F, "> finished_step.txt" or die "Can't mark finished step";
754
+ print F $run."\n";
755
+ close F;
756
+
757
+ ##################################################33
758
+ print "loading data from $prev_feature_file\n" if defined($prev_feature_file);
759
+ print "loading data from $prev_score_file\n" if defined($prev_score_file);
760
+ print "loading data from $prev_init_file\n" if defined($prev_init_file);
761
+
762
+
763
+ ### extra step to create config for next step ###################
764
+ $nextrun=$run+1;
765
+
766
+ create_config($___CONFIG, "./run$nextrun.moses.ini", $featlist, $nextrun, $devbleu, $sparse_weights_file);
767
+ #################################################################
768
+
769
+
770
+ if ($shouldstop) {
771
+ print STDERR "None of the weights changed more than $minimum_required_change_in_weights. Stopping.\n";
772
+
773
+ for (my $i=$run+1;$i<=$maximum_iterations;$i++){
774
+ kill_unnecessary_jobs($submithost,$i);
775
+ }
776
+ last; ## end while loop
777
+ }
778
+
779
+
780
+
781
+
782
+ } # end of local scope
783
+
784
+
785
+
786
+ sub kill_unnecessary_jobs {
787
+ my ($submithost,$iter_id) = @_;
788
+ my @sgepids = ();
789
+ my @processids = ();
790
+ my $jobid = "";
791
+ my $pidid = undef;
792
+ my $kill_target = "";
793
+ my $ssh = undef;
794
+
795
+ ## read all relevant jobid #########
796
+ chomp($jobid=`cat decode$iter_id.id decode$iter_id.POLL.id zipext$iter_id.id processmoses$iter_id.id`);
797
+
798
+ if ($jobid != "") {
799
+ @sgepids = split("\n",$jobid);
800
+ $kill_target = join(" ",@sgepids);
801
+ }
802
+ ####################################
803
+
804
+ if ($kill_target != "") {
805
+ chomp(my $my_username = `whoami`);
806
+ $ssh = Net::OpenSSH::Compat::Perl->new($submithost, debug=>0);
807
+
808
+ $ssh->login("$my_username",`cat /home/$my_username/accpw`);
809
+ $ssh->cmd("qdel $kill_target");
810
+ }
811
+
812
+
813
+
814
+ ## read relevant pid ###############
815
+ chomp($pidid=`ls decode$iter_id.id.pid decode$iter_id.POLL.id.pid zipext$iter_id.id.pid processmoses$iter_id.id.pid`);
816
+
817
+ if (defined $pidid) {
818
+ @processids = split("\n",$pidid);
819
+ }
820
+ ###################################
821
+
822
+
823
+ foreach my $kill_pidfile (@processids) {
824
+ print STDERR "Force delete process represented by $kill_pidfile\n";
825
+ &force_exit_submit_thu_host($submithost,$kill_pidfile);
826
+ }
827
+ ####################################
828
+
829
+
830
+
831
+
832
+ }
833
+
834
+ sub get_weights_from_mert {
835
+ my ($outfile,$logfile,$weight_count,$sparse_weights) = @_;
836
+ my ($bestpoint,$devbleu);
837
+
838
+ if ($___PAIRWISE_RANKED_OPTIMIZER || ($___PRO_STARTING_POINT && $logfile =~ /pro/)) {
839
+ open(IN,$outfile) or die "Can't open $outfile";
840
+ my (@WEIGHT,$sum);
841
+ for(my $i=0;$i<$weight_count;$i++) { push @WEIGHT, 0; }
842
+ while(<IN>) {
843
+ # regular features
844
+ if (/^F(\d+) ([\-\.\de]+)/) {
845
+ $WEIGHT[$1] = $2;
846
+ $sum += abs($2);
847
+ }
848
+ # sparse features
849
+ elsif(/^(.+_.+) ([\-\.\de]+)/) {
850
+ $$sparse_weights{$1} = $2;
851
+ }
852
+ }
853
+ $devbleu = "unknown";
854
+ foreach (@WEIGHT) { $_ /= $sum; }
855
+ foreach (keys %{$sparse_weights}) { $$sparse_weights{$_} /= $sum; }
856
+ $bestpoint = join(" ",@WEIGHT);
857
+ close IN;
858
+ }
859
+ else {
860
+ open(IN,$logfile) or die "Can't open $logfile";
861
+ while (<IN>) {
862
+ if (/Best point:\s*([\s\d\.\-e]+?)\s*=> ([\-\d\.]+)/) {
863
+ $bestpoint = $1;
864
+ $devbleu = $2;
865
+ last;
866
+ }
867
+ }
868
+ close IN;
869
+ }
870
+ return ($bestpoint,$devbleu);
871
+ }
872
+
873
+
874
+ sub insert_ranges_to_featlist {
875
+ my $featlist = shift;
876
+ my $ranges = shift;
877
+
878
+ $ranges = [] if !defined $ranges;
879
+
880
+ # first collect the ranges from options
881
+ my $niceranges;
882
+ foreach my $range (@$ranges) {
883
+ my $name = undef;
884
+ foreach my $namedpair (split /,/, $range) {
885
+ if ($namedpair =~ /^(.*?):/) {
886
+ $name = $1;
887
+ $namedpair =~ s/^.*?://;
888
+ die "Unrecognized name '$name' in --range=$range"
889
+ if !defined $ABBR2FULL{$name};
890
+ }
891
+ my ($min, $max) = split /\.\./, $namedpair;
892
+ die "Bad min '$min' in --range=$range" if $min !~ /^-?[0-9.]+$/;
893
+ die "Bad max '$max' in --range=$range" if $min !~ /^-?[0-9.]+$/;
894
+ die "No name given in --range=$range" if !defined $name;
895
+ push @{$niceranges->{$name}}, [$min, $max];
896
+ }
897
+ }
898
+
899
+ # now populate featlist
900
+ my $seen = undef;
901
+ for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
902
+ my $name = $featlist->{"names"}->[$i];
903
+ $seen->{$name} ++;
904
+ my $min = 0.0;
905
+ my $max = 1.0;
906
+ if (defined $niceranges->{$name}) {
907
+ my $minmax = shift @{$niceranges->{$name}};
908
+ ($min, $max) = @$minmax if defined $minmax;
909
+ }
910
+ $featlist->{"mins"}->[$i] = $min;
911
+ $featlist->{"maxs"}->[$i] = $max;
912
+ }
913
+ return $featlist;
914
+ }
915
+
916
+ sub sanity_check_order_of_lambdas {
917
+ my $featlist = shift;
918
+ my $filename_or_stream = shift;
919
+
920
+ my @expected_lambdas = @{$featlist->{"names"}};
921
+ my @got = get_order_of_scores_from_nbestlist($filename_or_stream);
922
+ die "Mismatched lambdas. Decoder returned @got, we expected @expected_lambdas"
923
+ if "@got" ne "@expected_lambdas";
924
+ }
925
+
926
+ sub get_featlist_from_moses {
927
+ # run moses with the given config file and return the list of features and
928
+ # their initial values
929
+
930
+ my $configfn = shift;
931
+ my $featlistfn = "./features.list.run${run}_end";
932
+ if (-e $featlistfn) {
933
+ print STDERR "Deleting featlistfn: $featlistfn\n";
934
+ }
935
+
936
+ print STDERR "Asking moses for feature names and values from $___CONFIG\n";
937
+ my $cmd = "$___DECODER $___DECODER_FLAGS -config $configfn -inputtype $___INPUTTYPE -show-weights > $featlistfn";
938
+ safesystem($cmd) or die "Failed to run moses with the config $configfn";
939
+
940
+
941
+
942
+
943
+ # read feature list
944
+ my @names = ();
945
+ my @startvalues = ();
946
+ open(INI,$featlistfn) or die "Can't read $featlistfn";
947
+ my $nr = 0;
948
+ my @errs = ();
949
+ while (<INI>) {
950
+ $nr++;
951
+ chomp;
952
+ /^(.+) (\S+) (\S+)$/ || die("invalid feature: $_");
953
+ my ($longname, $feature, $value) = ($1,$2,$3);
954
+ next if $value eq "sparse";
955
+ push @errs, "$featlistfn:$nr:Bad initial value of $feature: $value\n"
956
+ if $value !~ /^[+-]?[0-9.e]+$/;
957
+ push @errs, "$featlistfn:$nr:Unknown feature '$feature', please add it to \@ABBR_FULL_MAP\n"
958
+ if !defined $ABBR2FULL{$feature};
959
+ push @names, $feature;
960
+ push @startvalues, $value;
961
+ }
962
+ close INI;
963
+ if (scalar @errs) {
964
+ print STDERR join("", @errs);
965
+ exit 1;
966
+ }
967
+ return {"names"=>\@names, "values"=>\@startvalues};
968
+ }
969
+
970
+ sub get_order_of_scores_from_nbestlist {
971
+ # read the first line and interpret the ||| label: num num num label2: num ||| column in nbestlist
972
+ # return the score labels in order
973
+ my $fname_or_source = shift;
974
+ # print STDERR "Peeking at the beginning of nbestlist to get order of scores: $fname_or_source\n";
975
+ open IN, $fname_or_source or die "Failed to get order of scores from nbestlist '$fname_or_source'";
976
+ my $line = <IN>;
977
+ close IN;
978
+ die "Line empty in nbestlist '$fname_or_source'" if !defined $line;
979
+ my ($sent, $hypo, $scores, $total) = split /\|\|\|/, $line;
980
+ $scores =~ s/^\s*|\s*$//g;
981
+ die "No scores in line: $line" if $scores eq "";
982
+
983
+ my @order = ();
984
+ my $label = undef;
985
+ my $sparse = 0; # we ignore sparse features here
986
+ foreach my $tok (split /\s+/, $scores) {
987
+ if ($tok =~ /.+_.+:/) {
988
+ $sparse = 1;
989
+ } elsif ($tok =~ /^([a-z][0-9a-z]*):/i) {
990
+ $label = $1;
991
+ } elsif ($tok =~ /^-?[-0-9.e]+$/) {
992
+ if (!$sparse) {
993
+ # a score found, remember it
994
+ die "Found a score but no label before it! Bad nbestlist '$fname_or_source'!"
995
+ if !defined $label;
996
+ push @order, $label;
997
+ }
998
+ $sparse = 0;
999
+ } else {
1000
+ die "Not a label, not a score '$tok'. Failed to parse the scores string: '$scores' of nbestlist '$fname_or_source'";
1001
+ }
1002
+ }
1003
+ print STDERR "The decoder returns the scores in this order: @order\n";
1004
+ return @order;
1005
+ }
1006
+
1007
+
1008
+ sub safesystem {
1009
+ print STDERR "Executing: @_\n";
1010
+ system(@_);
1011
+ if ($? == -1) {
1012
+ print STDERR "Failed to execute: @_\n $!\n";
1013
+ exit(1);
1014
+ }
1015
+ elsif ($? & 127) {
1016
+ printf STDERR "Execution of: @_\n died with signal %d, %s coredump\n",
1017
+ ($? & 127), ($? & 128) ? 'with' : 'without';
1018
+ exit(1);
1019
+ }
1020
+ else {
1021
+ my $exitcode = $? >> 8;
1022
+ print STDERR "Exit code: $exitcode\n" if $exitcode;
1023
+ return ! $exitcode;
1024
+ }
1025
+ }
1026
+ sub ensure_full_path {
1027
+ my $PATH = shift;
1028
+ $PATH =~ s/\/nfsmnt//;
1029
+ return $PATH if $PATH =~ /^\//;
1030
+ my $dir = `pawd 2>/dev/null`;
1031
+ if(!$dir){$dir = `pwd`;}
1032
+ chomp($dir);
1033
+ $PATH = $dir."/".$PATH;
1034
+ $PATH =~ s/[\r\n]//g;
1035
+ $PATH =~ s/\/\.\//\//g;
1036
+ $PATH =~ s/\/+/\//g;
1037
+ my $sanity = 0;
1038
+ while($PATH =~ /\/\.\.\// && $sanity++<10) {
1039
+ $PATH =~ s/\/+/\//g;
1040
+ $PATH =~ s/\/[^\/]+\/\.\.\//\//g;
1041
+ }
1042
+ $PATH =~ s/\/[^\/]+\/\.\.$//;
1043
+ $PATH =~ s/\/+$//;
1044
+ $PATH =~ s/\/nfsmnt//;
1045
+ return $PATH;
1046
+ }
1047
+
1048
+ sub submit_or_exec {
1049
+
1050
+ my $argvlen = @_;
1051
+ my $cmd = undef;
1052
+ my $stdout = undef;
1053
+ my $stderr = undef;
1054
+ my $jidfile = undef;
1055
+ my $prevjid = undef;
1056
+
1057
+ # if supply 3 arguments, exec without submit
1058
+ # if supply 4 arguments, then submit new job
1059
+ # if supply 5 arguments, wait for the previous job to finish
1060
+ if ($argvlen == 3){
1061
+ ($cmd,$stdout,$stderr) = @_;
1062
+ } elsif ($argvlen == 4){
1063
+ ($cmd,$stdout,$stderr,$jidfile) = @_;
1064
+ } elsif ($argvlen == 5){
1065
+ ($cmd,$stdout,$stderr,$jidfile,$prevjid) = @_;
1066
+ }
1067
+
1068
+ print STDERR "exec: $cmd\n";
1069
+ if (defined $___JOBS && $___JOBS > 0 && $argvlen==5) {
1070
+ safesystem("$qsubwrapper $pass_old_sge -command='$cmd' -queue-parameters=\"$queue_flags\" -stdout=$stdout -stderr=$stderr -jidfile=$jidfile -prevjid=$prevjid" )
1071
+ or die "ERROR: Failed to submit '$cmd' (via $qsubwrapper)";
1072
+ }
1073
+ elsif (defined $___JOBS && $___JOBS > 0 && $argvlen==4) {
1074
+ safesystem("$qsubwrapper $pass_old_sge -command='$cmd' -queue-parameters=\"$queue_flags\" -stdout=$stdout -stderr=$stderr -jidfile=$jidfile" )
1075
+ or die "ERROR: Failed to submit '$cmd' (via $qsubwrapper)";
1076
+ } else {
1077
+ safesystem("$cmd > $stdout 2> $stderr") or die "ERROR: Failed to run '$cmd'.";
1078
+ }
1079
+ }
1080
+
1081
+ sub exit_submit {
1082
+
1083
+ my $argvlen = @_;
1084
+ my $cmd = undef;
1085
+ my $stdout = undef;
1086
+ my $stderr = undef;
1087
+ my $jidfile = undef;
1088
+ my $pidfile = undef;
1089
+ my $prevjid = undef;
1090
+ my $prevjidarraysize = 0;
1091
+ my @prevjidarray = ();
1092
+ my $pid = undef;
1093
+ my $qsubcmd="";
1094
+ my $hj="";
1095
+
1096
+ # if supply 4 arguments, then submit new job
1097
+ # if supply 5 arguments, wait for the previous job to finish
1098
+ if ($argvlen == 2) {
1099
+ ($stdout,$stderr) = @_;
1100
+ } elsif ($argvlen == 4){
1101
+ ($stdout,$stderr,$jidfile,$pidfile) = @_;
1102
+ } elsif ($argvlen == 5){
1103
+ ($stdout,$stderr,$jidfile,$pidfile,$prevjid) = @_;
1104
+ }
1105
+
1106
+ # parse prevjid ########################
1107
+ $prevjid =~ s/^\s+|\s+$//g;
1108
+ @prevjidarray = split(/\s+/,$prevjid);
1109
+ $prevjidarraysize = scalar(@prevjidarray);
1110
+ ########################################
1111
+
1112
+
1113
+ # print STDERR "exec: $stdout\n";
1114
+
1115
+ # read pid from file, and draft exit script ##################
1116
+ chomp ($pid=`tail -n 1 $pidfile`);
1117
+ open (OUT, ">exitjob$pid.sh");
1118
+
1119
+ my $scriptheader="\#\!/bin/bash\n\#\$ -S /bin/sh\n# Both lines are needed to invoke base\n#the above line is ignored by qsub, unless parameter \"-b yes\" is set!\n\n";
1120
+ $scriptheader .="uname -a\n\n";
1121
+ $scriptheader .="cd $___WORKING_DIR\n\n";
1122
+
1123
+ print OUT $scriptheader;
1124
+
1125
+ print OUT "if $qsubwrapper_exit -submithost=$submithost -stdout=$stdout -stderr=$stderr -jidfile=$jidfile -pidfile=$pidfile > exitjob$pid.out 2> exitjob$pid.err ; then
1126
+ echo 'succeeded'
1127
+ else
1128
+ echo failed with exit status \$\?
1129
+ die=1
1130
+ fi
1131
+ ";
1132
+ print OUT "\n\n";
1133
+
1134
+ close (OUT);
1135
+ # setting permissions of the script
1136
+ chmod(oct(755),"exitjob$pid.sh");
1137
+ ##############################################################
1138
+
1139
+
1140
+ if (defined $___JOBS && $___JOBS > 0 && $argvlen==5) {
1141
+ if (defined $prevjid && $prevjid!=-1 && $prevjidarraysize == 1){
1142
+ $hj = "-hold_jid $prevjid";
1143
+ } elsif (defined $prevjid && $prevjidarraysize > 1){
1144
+ $hj = "-hold_jid " . join(" -hold_jid ", @prevjidarray);
1145
+ }
1146
+ $qsubcmd="qsub $queue_flags -V $hj exitjob$pid.sh > exitjob$pid.log 2>&1";
1147
+ safesystem($qsubcmd) or die "ERROR: Failed to exit-submit $pid (via $qsubwrapper_exit)";
1148
+ } elsif (defined $___JOBS && $___JOBS > 0 && $argvlen==4) {
1149
+ $qsubcmd="qsub $queue_flags -V exitjob$pid.sh > exitjob$pid.log 2>&1";
1150
+ safesystem($qsubcmd) or die "ERROR: Failed to exit-submit $pid (via $qsubwrapper_exit)";
1151
+ } else {
1152
+ safesystem("rm $stdout") or die "ERROR: Failed to remove '$stdout'.";
1153
+ safesystem("rm $stderr") or die "ERROR: Failed to remove '$stderr'.";
1154
+ }
1155
+ }
1156
+
1157
+
1158
+
1159
+
1160
+
1161
+
1162
+
1163
+ sub create_extractor_script()
1164
+ {
1165
+ my ($cmd, $outdir) = @_;
1166
+ my $script_path = File::Spec->catfile($outdir, "extractor.sh");
1167
+
1168
+ open my $out, '>', $script_path
1169
+ or die "Couldn't open $script_path for writing: $!\n";
1170
+ print $out "#!/bin/bash\n";
1171
+ print $out "cd $outdir\n";
1172
+ print $out "$cmd\n";
1173
+ close($out);
1174
+
1175
+ `chmod +x $script_path`;
1176
+
1177
+ return $script_path;
1178
+ }
1179
+
1180
+
1181
+ sub create_config {
1182
+ my $infn = shift; # source config
1183
+ my $outfn = shift; # where to save the config
1184
+ my $featlist = shift; # the lambdas we should write
1185
+ my $iteration = shift; # just for verbosity
1186
+ my $bleu_achieved = shift; # just for verbosity
1187
+ my $sparse_weights_file = shift; # only defined when optimizing sparse features
1188
+
1189
+ my %P; # the hash of all parameters we wish to override
1190
+
1191
+ # first convert the command line parameters to the hash
1192
+ { # ensure local scope of vars
1193
+ my $parameter=undef;
1194
+ print "Parsing --decoder-flags: |$___DECODER_FLAGS|\n";
1195
+ $___DECODER_FLAGS =~ s/^\s*|\s*$//;
1196
+ $___DECODER_FLAGS =~ s/\s+/ /;
1197
+ foreach (split(/ /,$___DECODER_FLAGS)) {
1198
+ if (/^\-([^\d].*)$/) {
1199
+ $parameter = $1;
1200
+ $parameter = $ABBR2FULL{$parameter} if defined($ABBR2FULL{$parameter});
1201
+ }
1202
+ else {
1203
+ die "Found value with no -paramname before it: $_"
1204
+ if !defined $parameter;
1205
+ push @{$P{$parameter}},$_;
1206
+ }
1207
+ }
1208
+ }
1209
+
1210
+ # First delete all weights params from the input, we're overwriting them.
1211
+ # Delete both short and long-named version.
1212
+ for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
1213
+ my $name = $featlist->{"names"}->[$i];
1214
+ delete($P{$name});
1215
+ delete($P{$ABBR2FULL{$name}});
1216
+ }
1217
+
1218
+ # Convert weights to elements in P
1219
+ for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
1220
+ my $name = $featlist->{"names"}->[$i];
1221
+ my $val = $featlist->{"values"}->[$i];
1222
+ $name = defined $ABBR2FULL{$name} ? $ABBR2FULL{$name} : $name;
1223
+ # ensure long name
1224
+ push @{$P{$name}}, $val;
1225
+ }
1226
+
1227
+ if (defined($sparse_weights_file)) {
1228
+ push @{$P{"weights-file"}}, $___WORKING_DIR."/".$sparse_weights_file;
1229
+ }
1230
+
1231
+ # create new moses.ini decoder config file by cloning and overriding the original one
1232
+ open(INI,$infn) or die "Can't read $infn";
1233
+ delete($P{"config"}); # never output
1234
+ print "Saving new config to: $outfn\n";
1235
+ open(OUT,"> $outfn") or die "Can't write $outfn";
1236
+ print OUT "# MERT optimized configuration\n";
1237
+ print OUT "# decoder $___DECODER\n";
1238
+ print OUT "# BLEU $bleu_achieved on dev $___DEV_F\n";
1239
+ print OUT "# We were before running iteration $iteration\n";
1240
+ print OUT "# finished ".`date`;
1241
+ my $line = <INI>;
1242
+ while(1) {
1243
+ last unless $line;
1244
+
1245
+ # skip until hit [parameter]
1246
+ if ($line !~ /^\[(.+)\]\s*$/) {
1247
+ $line = <INI>;
1248
+ print OUT $line if $line =~ /^\#/ || $line =~ /^\s+$/;
1249
+ next;
1250
+ }
1251
+
1252
+ # parameter name
1253
+ my $parameter = $1;
1254
+ $parameter = $ABBR2FULL{$parameter} if defined($ABBR2FULL{$parameter});
1255
+ print OUT "[$parameter]\n";
1256
+
1257
+ # change parameter, if new values
1258
+ if (defined($P{$parameter})) {
1259
+ # write new values
1260
+ foreach (@{$P{$parameter}}) {
1261
+ print OUT $_."\n";
1262
+ }
1263
+ delete($P{$parameter});
1264
+ # skip until new parameter, only write comments
1265
+ while($line = <INI>) {
1266
+ print OUT $line if $line =~ /^\#/ || $line =~ /^\s+$/;
1267
+ last if $line =~ /^\[/;
1268
+ last unless $line;
1269
+ }
1270
+ next;
1271
+ }
1272
+ # unchanged parameter, write old
1273
+ while($line = <INI>) {
1274
+ last if $line =~ /^\[/;
1275
+ print OUT $line;
1276
+ }
1277
+ }
1278
+
1279
+ # write all additional parameters
1280
+ foreach my $parameter (keys %P) {
1281
+ print OUT "\n[$parameter]\n";
1282
+ foreach (@{$P{$parameter}}) {
1283
+ print OUT $_."\n";
1284
+ }
1285
+ }
1286
+
1287
+ close(INI);
1288
+ close(OUT);
1289
+ print STDERR "Saved: $outfn\n";
1290
+ }
1291
+
1292
+
1293
+
1294
+
1295
+ sub force_exit_submit_thu_host {
1296
+
1297
+ my $argvlen = @_;
1298
+ my $submithost = undef;
1299
+ my $run = -1;
1300
+ my $idx = "";
1301
+ my $batch_and_join = "";
1302
+ my $my_username = undef;
1303
+ my $cmd = undef;
1304
+ my $stdout = undef;
1305
+ my $stderr = undef;
1306
+ my $jidfile = undef;
1307
+ my $pidfile = undef;
1308
+ my $prevjid = undef;
1309
+ my $prevjidarraysize = 0;
1310
+ my @prevjidarray = ();
1311
+ my $pid = undef;
1312
+ my $qsubcmd="";
1313
+ my $hj="";
1314
+
1315
+ # if supply 8 arguments, then submit new job
1316
+ # if supply 9 arguments, wait for the previous job to finish
1317
+ ($submithost,$pidfile) = @_;
1318
+
1319
+ #if ($argvlen == 6){
1320
+ # ($submithost,$run,$idx,$batch_and_join,$stdout,$stderr) = @_;
1321
+ #} elsif ($argvlen == 8){
1322
+ # ($submithost,$run,$idx,$batch_and_join,$stdout,$stderr,$jidfile,$pidfile) = @_;
1323
+ #} elsif ($argvlen == 9){
1324
+ # ($submithost,$run,$idx,$batch_and_join,$stdout,$stderr,$jidfile,$pidfile,$prevjid) = @_;
1325
+ #}
1326
+
1327
+ # parse prevjid ########################
1328
+ #$prevjid =~ s/^\s+|\s+$//g;
1329
+ #@prevjidarray = split(/\s+/,$prevjid);
1330
+ $prevjidarraysize = scalar(@prevjidarray);
1331
+ ########################################
1332
+
1333
+ # print STDERR "exec: $stdout\n";
1334
+
1335
+ # read pid from file, and draft exit script ##################
1336
+ chomp ($pid=`tail -n 1 $pidfile`);
1337
+ open (OUT, ">forceexitjob$pid.sh");
1338
+
1339
+ my $scriptheader="\#\!/bin/bash\n\#\$ -S /bin/sh\n# Both lines are needed to invoke base\n#the above line is ignored by qsub, unless parameter \"-b yes\" is set!\n\n";
1340
+ $scriptheader .="uname -a\n\n";
1341
+ $scriptheader .="cd $___WORKING_DIR\n\n";
1342
+
1343
+ print OUT $scriptheader;
1344
+
1345
+ print OUT "if $qsubwrapper_exit -submithost=$submithost -force-delete=1 -pidfile=$pidfile > forceexitjob$pid.out 2> forceexitjob$pid.err ; then
1346
+ echo 'succeeded'
1347
+ else
1348
+ echo failed with exit status \$\?
1349
+ die=1
1350
+ fi
1351
+ ";
1352
+ print OUT "\n\n";
1353
+
1354
+ close (OUT);
1355
+ # setting permissions of the script
1356
+ chmod(oct(755),"forceexitjob$pid.sh");
1357
+ ##############################################################
1358
+ #
1359
+ # log in submit host #########################################
1360
+ # chomp(my $my_username = `whoami`);
1361
+ # my $ssh = Net::OpenSSH::Compat::Perl->new($submithost, debug=>0);
1362
+
1363
+ # $ssh->login("$my_username",`cat /home/$my_username/accpw`);
1364
+ ##############################################################
1365
+
1366
+
1367
+ # $qsubcmd="qsub $queue_flags -sync y -o /dev/null -e /dev/null forceexitjob$pid.sh > forceexitjob$pid.log 2>&1";
1368
+ # $ssh->cmd("cd $___WORKING_DIR && $qsubcmd");
1369
+ safesystem("./forceexitjob$pid.sh");
1370
+
1371
+ print STDERR "Executing $qsubcmd in $___WORKING_DIR\n";
1372
+
1373
+ }
1374
+
1375
+
1376
+
1377
+
mosesdecoder/contrib/mert-sge-nosync/training/sge-nosync/run-decoder-sge-nosync.pl ADDED
@@ -0,0 +1,271 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/perl -w
2
+
3
+ # $Id$
4
+ # after filter-mode-given-input.pl, process the feature list
5
+
6
+ # original code by Philipp Koehn
7
+ # changes by Ondrej Bojar
8
+ # adapted for hierarchical models by Phil Williams
9
+
10
+ use strict;
11
+
12
+ use FindBin qw($Bin);
13
+ use Getopt::Long;
14
+
15
+
16
+
17
+ my $SCRIPTS_ROOTDIR;
18
+ if (defined($ENV{"SCRIPTS_ROOTDIR"})) {
19
+ $SCRIPTS_ROOTDIR = $ENV{"SCRIPTS_ROOTDIR"};
20
+ } else {
21
+ $SCRIPTS_ROOTDIR = $Bin;
22
+ if ($SCRIPTS_ROOTDIR eq '') {
23
+ $SCRIPTS_ROOTDIR = dirname(__FILE__);
24
+ }
25
+ $SCRIPTS_ROOTDIR =~ s/\/training$//;
26
+ $ENV{"SCRIPTS_ROOTDIR"} = $SCRIPTS_ROOTDIR;
27
+ }
28
+
29
+
30
+ ##!# # moses.ini file uses FULL names for lambdas, while this training script
31
+ ##!# # internally (and on the command line) uses ABBR names.
32
+ ##!# my @ABBR_FULL_MAP = qw(d=weight-d lm=weight-l tm=weight-t w=weight-w
33
+ ##!# g=weight-generation lex=weight-lex I=weight-i);
34
+ ##!# my %ABBR2FULL = map {split/=/,$_,2} @ABBR_FULL_MAP;
35
+ ##!# my %FULL2ABBR = map {my ($a, $b) = split/=/,$_,2; ($b, $a);} @ABBR_FULL_MAP;
36
+
37
+
38
+ my $verbose = 0;
39
+ my $usage = 0; # request for --help
40
+
41
+
42
+
43
+
44
+ ##!# # consider phrases in input up to $MAX_LENGTH
45
+ ##!# # in other words, all phrase-tables will be truncated at least to 10 words per
46
+ ##!# # phrase.
47
+ ##!# my $MAX_LENGTH = 10;
48
+
49
+ # utilities
50
+ ##!# my $ZCAT = "gzip -cd";
51
+
52
+ # get optional parameters
53
+ ##!# my $opt_hierarchical = 0;
54
+ ##!# my $binarizer = undef;
55
+ ##!# my $opt_min_non_initial_rule_count = undef;
56
+ ##!# my $opt_gzip = 1; # gzip output files (so far only phrase-based ttable until someone tests remaining models and formats)
57
+
58
+ my $___RANGES = undef;
59
+ my $___ACTIVATE_FEATURES = undef; # comma-separated (or blank-separated) list of features to work on
60
+ # if undef work on all features
61
+ # (others are fixed to the starting values)
62
+ my $___DECODER_FLAGS = ""; # additional parametrs to pass to the decoder
63
+
64
+ # set 0 if input type is text, set 1 if input type is confusion network
65
+ my $___INPUTTYPE = 0;
66
+
67
+ my $___DECODER = undef; # required, pathname to the decoder executable
68
+ my $___CONFIG = undef; # required, pathname to startup ini file
69
+
70
+
71
+ GetOptions(
72
+ ##!# "activate-features=s" => \$___ACTIVATE_FEATURES, #comma-separated (or blank-separated) list of features to work on (others are fixed to the starting values)
73
+ ##!# "range=s@" => \$___RANGES,
74
+ ##!# "decoder-flags=s" => \$___DECODER_FLAGS,
75
+ ##!# "inputtype=i" => \$___INPUTTYPE
76
+ ""
77
+ ) or exit(1);
78
+
79
+
80
+
81
+ # the ?? required parameters can be supplied on the command line directly
82
+ # or using the --options
83
+ if (scalar @ARGV == 2) {
84
+ # required parameters: options
85
+ $___DECODER = shift;
86
+ $___CONFIG = shift;
87
+ }
88
+
89
+ if ($usage || !defined $___DECODER || !defined $___CONFIG) {
90
+ print STDERR "usage: $0 \$___DECODER \$___CONFIG(decoder.ini)
91
+ Options:
92
+ --activate-features=STRING ... comma-separated list of features to optimize,
93
+ others are fixed to the starting values
94
+ default: optimize all features
95
+ example: tm_0,tm_4,d_0
96
+ --range=tm:0..1,-1..1 ... specify min and max value for some features
97
+ --range can be repeated as needed.
98
+ The order of the various --range specifications
99
+ is important only within a feature name.
100
+ E.g.:
101
+ --range=tm:0..1,-1..1 --range=tm:0..2
102
+ is identical to:
103
+ --range=tm:0..1,-1..1,0..2
104
+ but not to:
105
+ --range=tm:0..2 --range=tm:0..1,-1..1
106
+ --decoder-flags=STRING ... extra parameters for the decoder
107
+ --inputtype=[0|1|2] ... Handle different input types: (0 for text,
108
+ 1 for confusion network, 2 for lattices,
109
+ default is 0)
110
+ ";
111
+ exit 1;
112
+ }
113
+
114
+
115
+
116
+
117
+ ############################################################
118
+ ############################################################
119
+ ############################################################
120
+
121
+ # main
122
+
123
+ # we run moses to check validity of moses.ini and to obtain all the feature
124
+ # names
125
+ my $featlist = get_featlist_from_moses($___CONFIG);
126
+ $featlist = insert_ranges_to_featlist($featlist, $___RANGES);
127
+
128
+
129
+ # Mark which features are disabled:
130
+ if (defined $___ACTIVATE_FEATURES) {
131
+ my %enabled = map { ($_, 1) } split /[, ]+/, $___ACTIVATE_FEATURES;
132
+ my %cnt;
133
+ for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
134
+ my $name = $featlist->{"names"}->[$i];
135
+ $cnt{$name} = 0 if !defined $cnt{$name};
136
+ $featlist->{"enabled"}->[$i] = $enabled{$name."_".$cnt{$name}};
137
+ $cnt{$name}++;
138
+ }
139
+ } else {
140
+ # all enabled
141
+ for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
142
+ $featlist->{"enabled"}->[$i] = 1;
143
+ }
144
+ }
145
+
146
+ print STDERR "MERT starting values and ranges for random generation:\n";
147
+ for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
148
+ my $name = $featlist->{"names"}->[$i];
149
+ my $val = $featlist->{"values"}->[$i];
150
+ my $min = $featlist->{"mins"}->[$i];
151
+ my $max = $featlist->{"maxs"}->[$i];
152
+ my $enabled = $featlist->{"enabled"}->[$i];
153
+ printf STDERR " %5s = %7.3f", $name, $val;
154
+ if ($enabled) {
155
+ printf STDERR " (%5.2f .. %5.2f)\n", $min, $max;
156
+ } else {
157
+ print STDERR " --- inactive, not optimized ---\n";
158
+ }
159
+ }
160
+
161
+
162
+
163
+
164
+
165
+ sub get_featlist_from_moses {
166
+ # run moses with the given config file and return the list of features and
167
+ # their initial values
168
+ my $configfn = shift;
169
+ my $featlistfn = "./features.list";
170
+ if (-e $featlistfn) {
171
+ print STDERR "Using cached features list: $featlistfn\n";
172
+ } else {
173
+ print STDERR "Asking moses for feature names and values from $___CONFIG\n";
174
+ my $cmd = "$___DECODER $___DECODER_FLAGS -config $configfn -inputtype $___INPUTTYPE -show-weights > $featlistfn";
175
+ print STDERR "$cmd\n"; #DEBUG
176
+ safesystem($cmd) or die "Failed to run moses with the config $configfn";
177
+ }
178
+
179
+ # read feature list
180
+ my @names = ();
181
+ my @startvalues = ();
182
+ open(INI,$featlistfn) or die "Can't read $featlistfn";
183
+ my $nr = 0;
184
+ my @errs = ();
185
+ while (<INI>) {
186
+ $nr++;
187
+ chomp;
188
+ /^(.+) (\S+) (\S+)$/ || die("invalid feature: $_");
189
+ my ($longname, $feature, $value) = ($1,$2,$3);
190
+ next if $value eq "sparse";
191
+ push @errs, "$featlistfn:$nr:Bad initial value of $feature: $value\n"
192
+ if $value !~ /^[+-]?[0-9.e]+$/;
193
+ push @errs, "$featlistfn:$nr:Unknown feature '$feature', please add it to \@ABBR_FULL_MAP\n"
194
+ if !defined $ABBR2FULL{$feature};
195
+ push @names, $feature;
196
+ push @startvalues, $value;
197
+ }
198
+ close INI;
199
+ if (scalar @errs) {
200
+ print STDERR join("", @errs);
201
+ exit 1;
202
+ }
203
+ return {"names"=>\@names, "values"=>\@startvalues};
204
+ }
205
+
206
+
207
+ sub insert_ranges_to_featlist {
208
+ my $featlist = shift;
209
+ my $ranges = shift;
210
+
211
+ $ranges = [] if !defined $ranges;
212
+
213
+ # first collect the ranges from options
214
+ my $niceranges;
215
+ foreach my $range (@$ranges) {
216
+ my $name = undef;
217
+ foreach my $namedpair (split /,/, $range) {
218
+ if ($namedpair =~ /^(.*?):/) {
219
+ $name = $1;
220
+ $namedpair =~ s/^.*?://;
221
+ die "Unrecognized name '$name' in --range=$range"
222
+ if !defined $ABBR2FULL{$name};
223
+ }
224
+ my ($min, $max) = split /\.\./, $namedpair;
225
+ die "Bad min '$min' in --range=$range" if $min !~ /^-?[0-9.]+$/;
226
+ die "Bad max '$max' in --range=$range" if $min !~ /^-?[0-9.]+$/;
227
+ die "No name given in --range=$range" if !defined $name;
228
+ push @{$niceranges->{$name}}, [$min, $max];
229
+ }
230
+ }
231
+
232
+ # now populate featlist
233
+ my $seen = undef;
234
+ for(my $i=0; $i<scalar(@{$featlist->{"names"}}); $i++) {
235
+ my $name = $featlist->{"names"}->[$i];
236
+ $seen->{$name} ++;
237
+ my $min = 0.0;
238
+ my $max = 1.0;
239
+ if (defined $niceranges->{$name}) {
240
+ my $minmax = shift @{$niceranges->{$name}};
241
+ ($min, $max) = @$minmax if defined $minmax;
242
+ }
243
+ $featlist->{"mins"}->[$i] = $min;
244
+ $featlist->{"maxs"}->[$i] = $max;
245
+ }
246
+ return $featlist;
247
+ }
248
+
249
+ sub safesystem {
250
+ print STDERR "Executing: @_\n";
251
+ system(@_);
252
+ if ($? == -1) {
253
+ print STDERR "Failed to execute: @_\n $!\n";
254
+ exit(1);
255
+ }
256
+ elsif ($? & 127) {
257
+ printf STDERR "Execution of: @_\n died with signal %d, %s coredump\n",
258
+ ($? & 127), ($? & 128) ? 'with' : 'without';
259
+ exit(1);
260
+ }
261
+ else {
262
+ my $exitcode = $? >> 8;
263
+ print STDERR "Exit code: $exitcode\n" if $exitcode;
264
+ return ! $exitcode;
265
+ }
266
+ }
267
+
268
+
269
+
270
+
271
+
mosesdecoder/contrib/mert-sge-nosync/training/sge-nosync/zipextract-decoder-result.pl ADDED
@@ -0,0 +1,832 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/perl -w
2
+ # $Id$
3
+ # Usage:
4
+ # mert-moses.pl <foreign> <english> <decoder-executable> <decoder-config>
5
+ # For other options see below or run 'mert-moses.pl --help'
6
+
7
+ # Notes:
8
+ # <foreign> and <english> should be raw text files, one sentence per line
9
+ # <english> can be a prefix, in which case the files are <english>0, <english>1, etc. are used
10
+
11
+ # Excerpts from revision history
12
+
13
+ # Sept 2011 multi-threaded mert (Barry Haddow)
14
+ # 3 Aug 2011 Added random directions, historic best, pairwise ranked (PK)
15
+ # Jul 2011 simplifications (Ondrej Bojar)
16
+ # -- rely on moses' -show-weights instead of parsing moses.ini
17
+ # ... so moses is also run once *before* mert starts, checking
18
+ # the model to some extent
19
+ # -- got rid of the 'triples' mess;
20
+ # use --range to supply bounds for random starting values:
21
+ # --range tm:-3..3 --range lm:-3..3
22
+ # 5 Aug 2009 Handling with different reference length policies (shortest, average, closest) for BLEU
23
+ # and case-sensistive/insensitive evaluation (Nicola Bertoldi)
24
+ # 5 Jun 2008 Forked previous version to support new mert implementation.
25
+ # 13 Feb 2007 Better handling of default values for lambda, now works with multiple
26
+ # models and lexicalized reordering
27
+ # 11 Oct 2006 Handle different input types through parameter --inputype=[0|1]
28
+ # (0 for text, 1 for confusion network, default is 0) (Nicola Bertoldi)
29
+ # 10 Oct 2006 Allow skip of filtering of phrase tables (--no-filter-phrase-table)
30
+ # useful if binary phrase tables are used (Nicola Bertoldi)
31
+ # 28 Aug 2006 Use either closest or average or shortest (default) reference
32
+ # length as effective reference length
33
+ # Use either normalization or not (default) of texts (Nicola Bertoldi)
34
+ # 31 Jul 2006 move gzip run*.out to avoid failure wit restartings
35
+ # adding default paths
36
+ # 29 Jul 2006 run-filter, score-nbest and mert run on the queue (Nicola; Ondrej had to type it in again)
37
+ # 28 Jul 2006 attempt at foolproof usage, strong checking of input validity, merged the parallel and nonparallel version (Ondrej Bojar)
38
+ # 27 Jul 2006 adding the safesystem() function to handle with process failure
39
+ # 22 Jul 2006 fixed a bug about handling relative path of configuration file (Nicola Bertoldi)
40
+ # 21 Jul 2006 adapted for Moses-in-parallel (Nicola Bertoldi)
41
+ # 18 Jul 2006 adapted for Moses and cleaned up (PK)
42
+ # 21 Jan 2005 unified various versions, thorough cleanup (DWC)
43
+ # now indexing accumulated n-best list solely by feature vectors
44
+ # 14 Dec 2004 reimplemented find_threshold_points in C (NMD)
45
+ # 25 Oct 2004 Use either average or shortest (default) reference
46
+ # length as effective reference length (DWC)
47
+ # 13 Oct 2004 Use alternative decoders (DWC)
48
+ # Original version by Philipp Koehn
49
+
50
+ use strict;
51
+ use FindBin qw($Bin);
52
+ use File::Basename;
53
+ use File::Path;
54
+ use File::Spec;
55
+ use Cwd;
56
+
57
+ my $SCRIPTS_ROOTDIR = $Bin;
58
+ $SCRIPTS_ROOTDIR =~ s/\/training$//;
59
+ $SCRIPTS_ROOTDIR = $ENV{"SCRIPTS_ROOTDIR"} if defined($ENV{"SCRIPTS_ROOTDIR"});
60
+
61
+ ## We preserve this bit of comments to keep the traditional weight ranges.
62
+ # "w" => [ [ 0.0, -1.0, 1.0 ] ], # word penalty
63
+ # "d" => [ [ 1.0, 0.0, 2.0 ] ], # lexicalized reordering model
64
+ # "lm" => [ [ 1.0, 0.0, 2.0 ] ], # language model
65
+ # "g" => [ [ 1.0, 0.0, 2.0 ], # generation model
66
+ # [ 1.0, 0.0, 2.0 ] ],
67
+ # "tm" => [ [ 0.3, 0.0, 0.5 ], # translation model
68
+ # [ 0.2, 0.0, 0.5 ],
69
+ # [ 0.3, 0.0, 0.5 ],
70
+ # [ 0.2, 0.0, 0.5 ],
71
+ # [ 0.0,-1.0, 1.0 ] ], # ... last weight is phrase penalty
72
+ # "lex"=> [ [ 0.1, 0.0, 0.2 ] ], # global lexical model
73
+ # "I" => [ [ 0.0,-1.0, 1.0 ] ], # input lattice scores
74
+
75
+
76
+
77
+ # moses.ini file uses FULL names for lambdas, while this training script
78
+ # internally (and on the command line) uses ABBR names.
79
+ my @ABBR_FULL_MAP = qw(d=weight-d lm=weight-l tm=weight-t w=weight-w
80
+ g=weight-generation lex=weight-lex I=weight-i);
81
+ my %ABBR2FULL = map {split/=/,$_,2} @ABBR_FULL_MAP;
82
+ my %FULL2ABBR = map {my ($a, $b) = split/=/,$_,2; ($b, $a);} @ABBR_FULL_MAP;
83
+
84
+ my $minimum_required_change_in_weights = 0.00001;
85
+ # stop if no lambda changes more than this
86
+
87
+ my $verbose = 0;
88
+ my $usage = 0; # request for --help
89
+
90
+ # We assume that if you don't specify working directory,
91
+ # we set the default is set to `pwd`/mert-work
92
+ #@@# my $___WORKING_DIR = File::Spec->catfile(Cwd::getcwd(), "mert-work");
93
+ my $___WORKING_DIR = undef;
94
+ my $___DEV_F = undef; # required, input text to decode
95
+ my $___DEV_E = undef; # required, basename of files with references
96
+ my $___DECODER = undef; # required, pathname to the decoder executable
97
+ my $___CONFIG = undef; # required, pathname to startup ini file
98
+ my $___N_BEST_LIST_SIZE = 100;
99
+ my $___LATTICE_SAMPLES = 0;
100
+ my $submithost = "";
101
+ my $queue_flags = "-hard"; # extra parameters for parallelizer
102
+ # the -l ws0ssmt was relevant only to JHU 2006 workshop
103
+ my $___JOBS = undef; # if parallel, number of jobs to use (undef or 0 -> serial)
104
+ my $___DECODER_FLAGS = ""; # additional parametrs to pass to the decoder
105
+ my $continue = 0; # should we try to continue from the last saved step?
106
+ my $skip_decoder = 0; # and should we skip the first decoder run (assuming we got interrupted during mert)
107
+ my $___FILTER_PHRASE_TABLE = 1; # filter phrase table
108
+ my $___PREDICTABLE_SEEDS = 0;
109
+ my $___START_WITH_HISTORIC_BESTS = 0; # use best settings from all previous iterations as starting points [Foster&Kuhn,2009]
110
+ my $___RANDOM_DIRECTIONS = 0; # search in random directions only
111
+ my $___NUM_RANDOM_DIRECTIONS = 0; # number of random directions, also works with default optimizer [Cer&al.,2008]
112
+ my $___PAIRWISE_RANKED_OPTIMIZER = 0; # use Hopkins&May[2011]
113
+ my $___PRO_STARTING_POINT = 0; # get a starting point from pairwise ranked optimizer
114
+ my $___RANDOM_RESTARTS = 20;
115
+ my $___HISTORIC_INTERPOLATION = 0; # interpolate optimize weights with previous iteration's weights [Hopkins&May,2011,5.4.3]
116
+ my $__THREADS = 0;
117
+ my $run = 0;
118
+
119
+ # Parameter for effective reference length when computing BLEU score
120
+ # Default is to use shortest reference
121
+ # Use "--shortest" to use shortest reference length
122
+ # Use "--average" to use average reference length
123
+ # Use "--closest" to use closest reference length
124
+ # Only one between --shortest, --average and --closest can be set
125
+ # If more than one choice the defualt (--shortest) is used
126
+ my $___SHORTEST = 0;
127
+ my $___AVERAGE = 0;
128
+ my $___CLOSEST = 0;
129
+
130
+ # Use "--nocase" to compute case-insensitive scores
131
+ my $___NOCASE = 0;
132
+
133
+ # Use "--nonorm" to non normalize translation before computing scores
134
+ my $___NONORM = 0;
135
+
136
+ # set 0 if input type is text, set 1 if input type is confusion network
137
+ my $___INPUTTYPE = 0;
138
+
139
+
140
+ my $mertdir = undef; # path to new mert directory
141
+ my $mertargs = undef; # args to pass through to mert & extractor
142
+ my $mertmertargs = undef; # args to pass through to mert only
143
+ my $extractorargs = undef; # args to pass through to extractor only
144
+ my $filtercmd = undef; # path to filter-model-given-input.pl
145
+ my $filterfile = undef;
146
+ my $qsubwrapper = undef;
147
+ my $qsubwrapper_exit = undef;
148
+ my $moses_parallel_cmd = undef;
149
+ my $old_sge = 0; # assume sge<6.0
150
+ my $___CONFIG_ORIG = undef; # pathname to startup ini file before filtering
151
+ my $___ACTIVATE_FEATURES = undef; # comma-separated (or blank-separated) list of features to work on
152
+ # if undef work on all features
153
+ # (others are fixed to the starting values)
154
+ my $___RANGES = undef;
155
+ my $prev_aggregate_nbl_size = -1; # number of previous step to consider when loading data (default =-1)
156
+ # -1 means all previous, i.e. from iteration 1
157
+ # 0 means no previous data, i.e. from actual iteration
158
+ # 1 means 1 previous data , i.e. from the actual iteration and from the previous one
159
+ # and so on
160
+ my $maximum_iterations = 25;
161
+
162
+ #####################
163
+ my $processfeatlistcmd = undef;
164
+ my $processfeatlistargs = undef;
165
+ my $createconfigcmd = undef;
166
+ my $createconfigargs = undef;
167
+ my $decoderargs = undef;
168
+ #####################
169
+
170
+ use Getopt::Long;
171
+ GetOptions(
172
+ "working-dir=s" => \$___WORKING_DIR,
173
+ "input=s" => \$___DEV_F,
174
+ "inputtype=i" => \$___INPUTTYPE,
175
+ "refs=s" => \$___DEV_E,
176
+ "decoder=s" => \$___DECODER,
177
+ "config=s" => \$___CONFIG,
178
+ "nbest=i" => \$___N_BEST_LIST_SIZE,
179
+ "lattice-samples=i" => \$___LATTICE_SAMPLES,
180
+ "submithost=s" => \$submithost,
181
+ "queue-flags=s" => \$queue_flags,
182
+ "jobs=i" => \$___JOBS,
183
+ "decoder-flags=s" => \$___DECODER_FLAGS,
184
+ "continue" => \$continue,
185
+ "skip-decoder" => \$skip_decoder,
186
+ "shortest" => \$___SHORTEST,
187
+ "average" => \$___AVERAGE,
188
+ "closest" => \$___CLOSEST,
189
+ "nocase" => \$___NOCASE,
190
+ "nonorm" => \$___NONORM,
191
+ "help" => \$usage,
192
+ "verbose" => \$verbose,
193
+ "mertdir=s" => \$mertdir,
194
+ "mertargs=s" => \$mertargs,
195
+ "extractorargs=s" => \$extractorargs,
196
+ "mertmertargs=s" => \$mertmertargs,
197
+ "rootdir=s" => \$SCRIPTS_ROOTDIR,
198
+ "filtercmd=s" => \$filtercmd, # allow to override the default location
199
+ "filterfile=s" => \$filterfile, # input to filtering script (useful for lattices/confnets)
200
+ "qsubwrapper=s" => \$qsubwrapper, # allow to override the default location
201
+ "mosesparallelcmd=s" => \$moses_parallel_cmd, # allow to override the default location
202
+ "old-sge" => \$old_sge, #passed to moses-parallel
203
+ "filter-phrase-table!" => \$___FILTER_PHRASE_TABLE, # (dis)allow of phrase tables
204
+ "predictable-seeds" => \$___PREDICTABLE_SEEDS, # make random restarts deterministic
205
+ "historic-bests" => \$___START_WITH_HISTORIC_BESTS, # use best settings from all previous iterations as starting points
206
+ "random-directions" => \$___RANDOM_DIRECTIONS, # search only in random directions
207
+ "run=i" => \$run,
208
+ "number-of-random-directions=i" => \$___NUM_RANDOM_DIRECTIONS, # number of random directions
209
+ "random-restarts=i" => \$___RANDOM_RESTARTS, # number of random restarts
210
+ "activate-features=s" => \$___ACTIVATE_FEATURES, #comma-separated (or blank-separated) list of features to work on (others are fixed to the starting values)
211
+ "range=s@" => \$___RANGES,
212
+ "prev-aggregate-nbestlist=i" => \$prev_aggregate_nbl_size, #number of previous step to consider when loading data (default =-1, i.e. all previous)
213
+ "maximum-iterations=i" => \$maximum_iterations,
214
+ "pairwise-ranked" => \$___PAIRWISE_RANKED_OPTIMIZER,
215
+ "pro-starting-point" => \$___PRO_STARTING_POINT,
216
+ "historic-interpolation=f" => \$___HISTORIC_INTERPOLATION,
217
+ "threads=i" => \$__THREADS
218
+ ) or exit(1);
219
+
220
+ # the 4 required parameters can be supplied on the command line directly
221
+ # or using the --options
222
+ if (scalar @ARGV == 2) {
223
+ # required parameters: input_file references_basename decoder_executable
224
+ # $___DEV_F = shift;
225
+ $___DEV_E = shift;
226
+ # $___DECODER = shift;
227
+ $___CONFIG = shift;
228
+ }
229
+
230
+ # if ($usage || !defined $___DEV_F || !defined $___DEV_E || !defined $___DECODER || !defined $___CONFIG) {
231
+ if ($usage || !defined $___CONFIG || !defined $___DEV_E ){
232
+ print STDERR "usage: $0 reference decoder.ini
233
+ Options:
234
+ --working-dir=mert-dir ... where all the files are created
235
+ --nbest=100 ... how big nbestlist to generate
236
+ --lattice-samples ... how many lattice samples (Chatterjee & Cancedda, emnlp 2010)
237
+ --jobs=N ... set this to anything to run moses in parallel
238
+ --mosesparallelcmd=STR ... use a different script instead of moses-parallel
239
+ --queue-flags=STRING ... anything you with to pass to qsub, eg.
240
+ '-l ws06osssmt=true'. The default is: '-hard'
241
+ To reset the parameters, please use
242
+ --queue-flags=' '
243
+ (i.e. a space between the quotes).
244
+ --decoder-flags=STRING ... extra parameters for the decoder
245
+ --continue ... continue from the last successful iteration
246
+ --skip-decoder ... skip the decoder run for the first time,
247
+ assuming that we got interrupted during
248
+ optimization
249
+ --shortest --average --closest
250
+ ... Use shortest/average/closest reference length
251
+ as effective reference length (mutually exclusive)
252
+ --nocase ... Do not preserve case information; i.e.
253
+ case-insensitive evaluation (default is false).
254
+ --nonorm ... Do not use text normalization (flag is not active,
255
+ i.e. text is NOT normalized)
256
+ --filtercmd=STRING ... path to filter-model-given-input.pl
257
+ --filterfile=STRING ... path to alternative to input-text for filtering
258
+ model. useful for lattice decoding
259
+ --rootdir=STRING ... where do helpers reside (if not given explicitly)
260
+ --mertdir=STRING ... path to new mert implementation
261
+ --mertargs=STRING ... extra args for both extractor and mert
262
+ --extractorargs=STRING ... extra args for extractor only
263
+ --mertmertargs=STRING ... extra args for mert only
264
+ --scorenbestcmd=STRING ... path to score-nbest.py
265
+ --old-sge ... passed to parallelizers, assume Grid Engine < 6.0
266
+ --inputtype=[0|1|2] ... Handle different input types: (0 for text,
267
+ 1 for confusion network, 2 for lattices,
268
+ default is 0)
269
+ --no-filter-phrase-table ... disallow filtering of phrase tables
270
+ (useful if binary phrase tables are available)
271
+ --random-restarts=INT ... number of random restarts (default: 20)
272
+ --predictable-seeds ... provide predictable seeds to mert so that random
273
+ restarts are the same on every run
274
+ --range=tm:0..1,-1..1 ... specify min and max value for some features
275
+ --range can be repeated as needed.
276
+ The order of the various --range specifications
277
+ is important only within a feature name.
278
+ E.g.:
279
+ --range=tm:0..1,-1..1 --range=tm:0..2
280
+ is identical to:
281
+ --range=tm:0..1,-1..1,0..2
282
+ but not to:
283
+ --range=tm:0..2 --range=tm:0..1,-1..1
284
+ --activate-features=STRING ... comma-separated list of features to optimize,
285
+ others are fixed to the starting values
286
+ default: optimize all features
287
+ example: tm_0,tm_4,d_0
288
+ --prev-aggregate-nbestlist=INT ... number of previous step to consider when
289
+ loading data (default = $prev_aggregate_nbl_size)
290
+ -1 means all previous, i.e. from iteration 1
291
+ 0 means no previous data, i.e. only the
292
+ current iteration
293
+ N means this and N previous iterations
294
+
295
+ --maximum-iterations=ITERS ... Maximum number of iterations. Default: $maximum_iterations
296
+ --random-directions ... search only in random directions
297
+ --number-of-random-directions=int ... number of random directions
298
+ (also works with regular optimizer, default: 0)
299
+ --pairwise-ranked ... Use PRO for optimisation (Hopkins and May, emnlp 2011)
300
+ --pro-starting-point ... Use PRO to get a starting point for MERT
301
+ --threads=NUMBER ... Use multi-threaded mert (must be compiled in).
302
+ --historic-interpolation ... Interpolate optimized weights with prior iterations' weight
303
+ (parameter sets factor [0;1] given to current weights)
304
+ ";
305
+ exit 1;
306
+ }
307
+
308
+
309
+ # Check validity of input parameters and set defaults if needed
310
+
311
+ print STDERR "Using SCRIPTS_ROOTDIR: $SCRIPTS_ROOTDIR\n";
312
+
313
+ # path of script for filtering phrase tables and running the decoder
314
+ $filtercmd="$SCRIPTS_ROOTDIR/training/filter-model-given-input.pl" if !defined $filtercmd;
315
+
316
+ if ( ! -x $filtercmd && ! $___FILTER_PHRASE_TABLE) {
317
+ print STDERR "Filtering command not found: $filtercmd.\n";
318
+ print STDERR "Use --filtercmd=PATH to specify a valid one or --no-filter-phrase-table\n";
319
+ exit 1;
320
+ }
321
+
322
+ # $qsubwrapper="$SCRIPTS_ROOTDIR/generic/qsub-wrapper.pl" if !defined $qsubwrapper;
323
+ $qsubwrapper = "$SCRIPTS_ROOTDIR/generic/qsub-wrapper-sge-nosync.pl" if !defined $qsubwrapper;
324
+
325
+ $qsubwrapper_exit = "$SCRIPTS_ROOTDIR/generic/qsub-wrapper-exit-sge-nosync.pl" if !defined $qsubwrapper_exit;
326
+
327
+ # $moses_parallel_cmd = "$SCRIPTS_ROOTDIR/generic/moses-parallel.pl"
328
+ # if !defined $moses_parallel_cmd;
329
+ $moses_parallel_cmd = "$SCRIPTS_ROOTDIR/generic/moses-parallel-sge-nosync.pl"
330
+ if !defined $moses_parallel_cmd;
331
+
332
+ if (!defined $mertdir) {
333
+ $mertdir = "$SCRIPTS_ROOTDIR/../mert";
334
+ print STDERR "Assuming --mertdir=$mertdir\n";
335
+ }
336
+
337
+ my $mert_extract_cmd = "$mertdir/extractor";
338
+ my $mert_mert_cmd = "$mertdir/mert";
339
+ my $mert_pro_cmd = "$mertdir/pro";
340
+
341
+ die "Not executable: $mert_extract_cmd" if ! -x $mert_extract_cmd;
342
+ die "Not executable: $mert_mert_cmd" if ! -x $mert_mert_cmd;
343
+ die "Not executable: $mert_pro_cmd" if ! -x $mert_pro_cmd;
344
+
345
+ my $pro_optimizer = "$mertdir/megam_i686.opt"; # or set to your installation
346
+ if (($___PAIRWISE_RANKED_OPTIMIZER || $___PRO_STARTING_POINT) && ! -x $pro_optimizer) {
347
+ print "did not find $pro_optimizer, installing it in $mertdir\n";
348
+ `cd $mertdir; wget http://www.cs.utah.edu/~hal/megam/megam_i686.opt.gz;`;
349
+ `gunzip $pro_optimizer.gz`;
350
+ `chmod +x $pro_optimizer`;
351
+ die("ERROR: Installation of megam_i686.opt failed! Install by hand from http://www.cs.utah.edu/~hal/megam/") unless -x $pro_optimizer;
352
+ }
353
+
354
+ $mertargs = "" if !defined $mertargs;
355
+
356
+ my $scconfig = undef;
357
+ if ($mertargs =~ /\-\-scconfig\s+(.+?)(\s|$)/){
358
+ $scconfig=$1;
359
+ $scconfig =~ s/\,/ /g;
360
+ $mertargs =~ s/\-\-scconfig\s+(.+?)(\s|$)//;
361
+ }
362
+
363
+ # handling reference lengh strategy
364
+ if (($___CLOSEST + $___AVERAGE + $___SHORTEST) > 1){
365
+ die "You can specify just ONE reference length strategy (closest or shortest or average) not both\n";
366
+ }
367
+
368
+ if ($___SHORTEST){
369
+ $scconfig .= " reflen:shortest";
370
+ }elsif ($___AVERAGE){
371
+ $scconfig .= " reflen:average";
372
+ }elsif ($___CLOSEST){
373
+ $scconfig .= " reflen:closest";
374
+ }
375
+
376
+ # handling case-insensitive flag
377
+ if ($___NOCASE) {
378
+ $scconfig .= " case:false";
379
+ }else{
380
+ $scconfig .= " case:true";
381
+ }
382
+ $scconfig =~ s/^\s+//;
383
+ $scconfig =~ s/\s+$//;
384
+ $scconfig =~ s/\s+/,/g;
385
+
386
+ $scconfig = "--scconfig $scconfig" if ($scconfig);
387
+
388
+ my $mert_extract_args=$mertargs;
389
+ $mert_extract_args .=" $scconfig";
390
+ $mert_extract_args .=" $extractorargs";
391
+
392
+ $mertmertargs = "" if !defined $mertmertargs;
393
+
394
+ my $mert_mert_args="$mertargs $mertmertargs";
395
+ $mert_mert_args =~ s/\-+(binary|b)\b//;
396
+ $mert_mert_args .=" $scconfig";
397
+ if ($___ACTIVATE_FEATURES){ $mert_mert_args .=" -o \"$___ACTIVATE_FEATURES\""; }
398
+
399
+ my ($just_cmd_filtercmd,$x) = split(/ /,$filtercmd);
400
+ die "Not executable: $just_cmd_filtercmd" if ! -x $just_cmd_filtercmd;
401
+ die "Not executable: $moses_parallel_cmd" if defined $___JOBS && ! -x $moses_parallel_cmd;
402
+ die "Not executable: $qsubwrapper" if defined $___JOBS && ! -x $qsubwrapper;
403
+ #@@# die "Not executable: $___DECODER" if ! -x $___DECODER;
404
+
405
+ #@@# my $input_abs = ensure_full_path($___DEV_F);
406
+ #@@# die "File not found: $___DEV_F (interpreted as $input_abs)."
407
+ #@@# if ! -e $input_abs;
408
+ #@@# $___DEV_F = $input_abs;
409
+
410
+ # Option to pass to qsubwrapper and moses-parallel
411
+ my $pass_old_sge = $old_sge ? "-old-sge" : "";
412
+
413
+ #@@# my $decoder_abs = ensure_full_path($___DECODER);
414
+ #@@# die "File not executable: $___DECODER (interpreted as $decoder_abs)."
415
+ #@@# if ! -x $decoder_abs;
416
+ #@@# $___DECODER = $decoder_abs;
417
+
418
+ my $ref_abs = ensure_full_path($___DEV_E);
419
+ # check if English dev set (reference translations) exist and store a list of all references
420
+ my @references;
421
+ if (-e $ref_abs) {
422
+ push @references, $ref_abs;
423
+ }
424
+ else {
425
+ # if multiple file, get a full list of the files
426
+ my $part = 0;
427
+ if (! -e $ref_abs."0" && -e $ref_abs.".ref0") {
428
+ $ref_abs .= ".ref";
429
+ }
430
+ while (-e $ref_abs.$part) {
431
+ push @references, $ref_abs.$part;
432
+ $part++;
433
+ }
434
+ die("Reference translations not found: $___DEV_E (interpreted as $ref_abs)") unless $part;
435
+ }
436
+
437
+ my $config_abs = ensure_full_path($___CONFIG);
438
+ die "File not found: $___CONFIG (interpreted as $config_abs)."
439
+ if ! -e $config_abs;
440
+ $___CONFIG = $config_abs;
441
+
442
+ # moses should use our config
443
+ if ($___DECODER_FLAGS =~ /(^|\s)-(config|f) /
444
+ || $___DECODER_FLAGS =~ /(^|\s)-(ttable-file|t) /
445
+ || $___DECODER_FLAGS =~ /(^|\s)-(distortion-file) /
446
+ || $___DECODER_FLAGS =~ /(^|\s)-(generation-file) /
447
+ || $___DECODER_FLAGS =~ /(^|\s)-(lmodel-file) /
448
+ || $___DECODER_FLAGS =~ /(^|\s)-(global-lexical-file) /
449
+ ) {
450
+ die "It is forbidden to supply any of -config, -ttable-file, -distortion-file, -generation-file or -lmodel-file in the --decoder-flags.\nPlease use only the --config option to give the config file that lists all the supplementary files.";
451
+ }
452
+
453
+ # as weights are normalized in the next steps (by cmert)
454
+ # normalize initial LAMBDAs, too
455
+ my $need_to_normalize = 1;
456
+
457
+ #store current directory and create the working directory (if needed)
458
+ my $cwd = `pawd 2>/dev/null`;
459
+ if(!$cwd){$cwd = `pwd`;}
460
+ chomp($cwd);
461
+
462
+ $___WORKING_DIR = $cwd if (!defined $___WORKING_DIR);
463
+ chomp $___WORKING_DIR;
464
+
465
+ print STDERR "working dir is $___WORKING_DIR\n";
466
+ #@@# mkpath($___WORKING_DIR);
467
+
468
+ {
469
+ # open local scope
470
+
471
+ #chdir to the working directory
472
+ chdir($___WORKING_DIR) or die "Can't chdir to $___WORKING_DIR";
473
+
474
+ # fixed file names
475
+ my $mert_outfile = "mert.out";
476
+ my $mert_logfile = "mert.log";
477
+ my $weights_in_file = "init.opt";
478
+ my $weights_out_file = "weights.txt";
479
+
480
+ # set start run
481
+ my $start_run = 1;
482
+ my $bestpoint = undef;
483
+ my $devbleu = undef;
484
+ my $sparse_weights_file = undef;
485
+ my $jobid = -1;
486
+
487
+ my $prev_feature_file = undef;
488
+ my $prev_score_file = undef;
489
+ my $prev_init_file = undef;
490
+
491
+
492
+ #########################
493
+ # set jobid to trace different jobs
494
+ my $prevjid = undef;
495
+
496
+
497
+
498
+ #### my $run=$start_run-1;
499
+
500
+ my $oldallsorted = undef;
501
+ my $allsorted = undef;
502
+
503
+ my $nbest_file=undef;
504
+ my $lsamp_file=undef; #Lattice samples
505
+ my $orig_nbest_file=undef; # replaced if lattice sampling
506
+ my $cmd=undef;
507
+
508
+
509
+
510
+
511
+
512
+ $nbest_file="run$run.best$___N_BEST_LIST_SIZE.out";
513
+ safesystem("gzip -f $nbest_file") or die "Failed to gzip run*out";
514
+ $nbest_file = $nbest_file.".gz";
515
+
516
+
517
+ # extract score statistics and features from the nbest lists
518
+ print STDERR "Scoring the nbestlist.\n";
519
+
520
+ my $base_feature_file = "features.dat";
521
+ my $base_score_file = "scores.dat";
522
+ my $feature_file = "run$run.${base_feature_file}";
523
+ my $score_file = "run$run.${base_score_file}";
524
+
525
+ $cmd = "$mert_extract_cmd $mert_extract_args --scfile $score_file --ffile $feature_file -r ".join(",", @references)." -n $nbest_file";
526
+ $cmd = create_extractor_script($cmd, $___WORKING_DIR);
527
+
528
+ &submit_or_exec($cmd,"extract.out","extract.err","extract.id");
529
+
530
+
531
+
532
+ } # end of local scope
533
+
534
+ sub get_weights_from_mert {
535
+ my ($outfile,$logfile,$weight_count,$sparse_weights) = @_;
536
+ my ($bestpoint,$devbleu);
537
+ if ($___PAIRWISE_RANKED_OPTIMIZER || ($___PRO_STARTING_POINT && $logfile =~ /pro/)) {
538
+ open(IN,$outfile) or die "Can't open $outfile";
539
+ my (@WEIGHT,$sum);
540
+ for(my $i=0;$i<$weight_count;$i++) { push @WEIGHT, 0; }
541
+ while(<IN>) {
542
+ # regular features
543
+ if (/^F(\d+) ([\-\.\de]+)/) {
544
+ $WEIGHT[$1] = $2;
545
+ $sum += abs($2);
546
+ }
547
+ # sparse features
548
+ elsif(/^(.+_.+) ([\-\.\de]+)/) {
549
+ $$sparse_weights{$1} = $2;
550
+ }
551
+ }
552
+ $devbleu = "unknown";
553
+ foreach (@WEIGHT) { $_ /= $sum; }
554
+ foreach (keys %{$sparse_weights}) { $$sparse_weights{$_} /= $sum; }
555
+ $bestpoint = join(" ",@WEIGHT);
556
+ close IN;
557
+ }
558
+ else {
559
+ open(IN,$logfile) or die "Can't open $logfile";
560
+ while (<IN>) {
561
+ if (/Best point:\s*([\s\d\.\-e]+?)\s*=> ([\-\d\.]+)/) {
562
+ $bestpoint = $1;
563
+ $devbleu = $2;
564
+ last;
565
+ }
566
+ }
567
+ close IN;
568
+ }
569
+ return ($bestpoint,$devbleu);
570
+ }
571
+
572
+
573
+
574
+ sub sanity_check_order_of_lambdas {
575
+ my $featlist = shift;
576
+ my $filename_or_stream = shift;
577
+
578
+ my @expected_lambdas = @{$featlist->{"names"}};
579
+ my @got = get_order_of_scores_from_nbestlist($filename_or_stream);
580
+ die "Mismatched lambdas. Decoder returned @got, we expected @expected_lambdas"
581
+ if "@got" ne "@expected_lambdas";
582
+ }
583
+
584
+ sub get_featlist_from_moses {
585
+ # run moses with the given config file and return the list of features and
586
+ # their initial values
587
+ my $configfn = shift;
588
+ my $featlistfn = "./features.list";
589
+ if (-e $featlistfn) {
590
+ print STDERR "Using cached features list: $featlistfn\n";
591
+ } else {
592
+ print STDERR "Asking moses for feature names and values from $___CONFIG\n";
593
+ my $cmd = "$___DECODER $___DECODER_FLAGS -config $configfn -inputtype $___INPUTTYPE -show-weights > $featlistfn";
594
+ safesystem($cmd) or die "Failed to run moses with the config $configfn";
595
+ }
596
+
597
+ # read feature list
598
+ my @names = ();
599
+ my @startvalues = ();
600
+ open(INI,$featlistfn) or die "Can't read $featlistfn";
601
+ my $nr = 0;
602
+ my @errs = ();
603
+ while (<INI>) {
604
+ $nr++;
605
+ chomp;
606
+ /^(.+) (\S+) (\S+)$/ || die("invalid feature: $_");
607
+ my ($longname, $feature, $value) = ($1,$2,$3);
608
+ next if $value eq "sparse";
609
+ push @errs, "$featlistfn:$nr:Bad initial value of $feature: $value\n"
610
+ if $value !~ /^[+-]?[0-9.e]+$/;
611
+ push @errs, "$featlistfn:$nr:Unknown feature '$feature', please add it to \@ABBR_FULL_MAP\n"
612
+ if !defined $ABBR2FULL{$feature};
613
+ push @names, $feature;
614
+ push @startvalues, $value;
615
+ }
616
+ close INI;
617
+ if (scalar @errs) {
618
+ print STDERR join("", @errs);
619
+ exit 1;
620
+ }
621
+ return {"names"=>\@names, "values"=>\@startvalues};
622
+ }
623
+
624
+ sub get_order_of_scores_from_nbestlist {
625
+ # read the first line and interpret the ||| label: num num num label2: num ||| column in nbestlist
626
+ # return the score labels in order
627
+ my $fname_or_source = shift;
628
+ # print STDERR "Peeking at the beginning of nbestlist to get order of scores: $fname_or_source\n";
629
+ open IN, $fname_or_source or die "Failed to get order of scores from nbestlist '$fname_or_source'";
630
+ my $line = <IN>;
631
+ close IN;
632
+ die "Line empty in nbestlist '$fname_or_source'" if !defined $line;
633
+ my ($sent, $hypo, $scores, $total) = split /\|\|\|/, $line;
634
+ $scores =~ s/^\s*|\s*$//g;
635
+ die "No scores in line: $line" if $scores eq "";
636
+
637
+ my @order = ();
638
+ my $label = undef;
639
+ my $sparse = 0; # we ignore sparse features here
640
+ foreach my $tok (split /\s+/, $scores) {
641
+ if ($tok =~ /.+_.+:/) {
642
+ $sparse = 1;
643
+ } elsif ($tok =~ /^([a-z][0-9a-z]*):/i) {
644
+ $label = $1;
645
+ } elsif ($tok =~ /^-?[-0-9.e]+$/) {
646
+ if (!$sparse) {
647
+ # a score found, remember it
648
+ die "Found a score but no label before it! Bad nbestlist '$fname_or_source'!"
649
+ if !defined $label;
650
+ push @order, $label;
651
+ }
652
+ $sparse = 0;
653
+ } else {
654
+ die "Not a label, not a score '$tok'. Failed to parse the scores string: '$scores' of nbestlist '$fname_or_source'";
655
+ }
656
+ }
657
+ print STDERR "The decoder returns the scores in this order: @order\n";
658
+ return @order;
659
+ }
660
+
661
+
662
+ sub safesystem {
663
+ print STDERR "Executing: @_\n";
664
+ system(@_);
665
+ if ($? == -1) {
666
+ print STDERR "Failed to execute: @_\n $!\n";
667
+ exit(1);
668
+ }
669
+ elsif ($? & 127) {
670
+ printf STDERR "Execution of: @_\n died with signal %d, %s coredump\n",
671
+ ($? & 127), ($? & 128) ? 'with' : 'without';
672
+ exit(1);
673
+ }
674
+ else {
675
+ my $exitcode = $? >> 8;
676
+ print STDERR "Exit code: $exitcode\n" if $exitcode;
677
+ return ! $exitcode;
678
+ }
679
+ }
680
+ sub ensure_full_path {
681
+ my $PATH = shift;
682
+ $PATH =~ s/\/nfsmnt//;
683
+ return $PATH if $PATH =~ /^\//;
684
+ my $dir = `pawd 2>/dev/null`;
685
+ if(!$dir){$dir = `pwd`;}
686
+ chomp($dir);
687
+ $PATH = $dir."/".$PATH;
688
+ $PATH =~ s/[\r\n]//g;
689
+ $PATH =~ s/\/\.\//\//g;
690
+ $PATH =~ s/\/+/\//g;
691
+ my $sanity = 0;
692
+ while($PATH =~ /\/\.\.\// && $sanity++<10) {
693
+ $PATH =~ s/\/+/\//g;
694
+ $PATH =~ s/\/[^\/]+\/\.\.\//\//g;
695
+ }
696
+ $PATH =~ s/\/[^\/]+\/\.\.$//;
697
+ $PATH =~ s/\/+$//;
698
+ $PATH =~ s/\/nfsmnt//;
699
+ return $PATH;
700
+ }
701
+
702
+ sub submit_or_exec {
703
+
704
+ my $argvlen = @_;
705
+ my $cmd = undef;
706
+ my $stdout = undef;
707
+ my $stderr = undef;
708
+ my $jidfile = undef;
709
+ my $prevjid = undef;
710
+
711
+ # if supply 3 arguments, exec without submit
712
+ # if supply 4 arguments, then submit new job
713
+ # if supply 5 arguments, wait for the previous job to finish
714
+ if ($argvlen == 3){
715
+ ($cmd,$stdout,$stderr) = @_;
716
+ } elsif ($argvlen == 4){
717
+ ($cmd,$stdout,$stderr,$jidfile) = @_;
718
+ } elsif ($argvlen == 5){
719
+ ($cmd,$stdout,$stderr,$jidfile,$prevjid) = @_;
720
+ }
721
+
722
+ print STDERR "exec: $cmd\n";
723
+ if (defined $___JOBS && $___JOBS > 0 && $argvlen==5) {
724
+ safesystem("$qsubwrapper $pass_old_sge -command='$cmd' -queue-parameters=\"$queue_flags\" -stdout=$stdout -stderr=$stderr -jidfile=$jidfile -prevjid=$prevjid" )
725
+ or die "ERROR: Failed to submit '$cmd' (via $qsubwrapper)";
726
+ }
727
+ elsif (defined $___JOBS && $___JOBS > 0 && $argvlen==4) {
728
+ safesystem("$qsubwrapper $pass_old_sge -command='$cmd' -queue-parameters=\"$queue_flags\" -stdout=$stdout -stderr=$stderr -jidfile=$jidfile" )
729
+ or die "ERROR: Failed to submit '$cmd' (via $qsubwrapper)";
730
+ } else {
731
+ safesystem("$cmd > $stdout 2> $stderr") or die "ERROR: Failed to run '$cmd'.";
732
+ }
733
+ }
734
+
735
+ sub exit_submit {
736
+
737
+ my $argvlen = @_;
738
+ my $cmd = undef;
739
+ my $stdout = undef;
740
+ my $stderr = undef;
741
+ my $jidfile = undef;
742
+ my $pidfile = undef;
743
+ my $prevjid = undef;
744
+ my $prevjidarraysize = 0;
745
+ my @prevjidarray = ();
746
+ my $pid = undef;
747
+ my $qsubcmd="";
748
+ my $hj="";
749
+
750
+ # if supply 4 arguments, then submit new job
751
+ # if supply 5 arguments, wait for the previous job to finish
752
+ if ($argvlen == 2) {
753
+ ($stdout,$stderr) = @_;
754
+ } elsif ($argvlen == 4){
755
+ ($stdout,$stderr,$jidfile,$pidfile) = @_;
756
+ } elsif ($argvlen == 5){
757
+ ($stdout,$stderr,$jidfile,$pidfile,$prevjid) = @_;
758
+ }
759
+
760
+ # parse prevjid ########################
761
+ $prevjid =~ s/^\s+|\s+$//g;
762
+ @prevjidarray = split(/\s+/,$prevjid);
763
+ $prevjidarraysize = scalar(@prevjidarray);
764
+ ########################################
765
+
766
+
767
+ # print STDERR "exec: $stdout\n";
768
+
769
+ # read pid from file, and draft exit script ##################
770
+ chomp ($pid=`tail -n 1 $pidfile`);
771
+ open (OUT, ">exitjob$pid.sh");
772
+
773
+ my $scriptheader="\#\!/bin/bash\n\#\$ -S /bin/sh\n# Both lines are needed to invoke base\n#the above line is ignored by qsub, unless parameter \"-b yes\" is set!\n\n";
774
+ $scriptheader .="uname -a\n\n";
775
+ $scriptheader .="cd $___WORKING_DIR\n\n";
776
+
777
+ print OUT $scriptheader;
778
+
779
+ print OUT "if $qsubwrapper_exit -submithost=$submithost -stdout=$stdout -stderr=$stderr -jidfile=$jidfile -pidfile=$pidfile > exitjob$pid.out 2> exitjob$pid.err ; then
780
+ echo 'succeeded'
781
+ else
782
+ echo failed with exit status \$\?
783
+ die=1
784
+ fi
785
+ ";
786
+ print OUT "\n\n";
787
+
788
+ close (OUT);
789
+ # setting permissions of the script
790
+ chmod(oct(755),"exitjob$pid.sh");
791
+ ##############################################################
792
+
793
+
794
+ if (defined $___JOBS && $___JOBS > 0 && $argvlen==5) {
795
+ if (defined $prevjid && $prevjid!=-1 && $prevjidarraysize == 1){
796
+ $hj = "-hold_jid $prevjid";
797
+ } elsif (defined $prevjid && $prevjidarraysize > 1){
798
+ $hj = "-hold_jid " . join(" -hold_jid ", @prevjidarray);
799
+ }
800
+ $qsubcmd="qsub $queue_flags -V $hj exitjob$pid.sh > exitjob$pid.log 2>&1";
801
+ safesystem($qsubcmd) or die "ERROR: Failed to exit-submit $pid (via $qsubwrapper_exit)";
802
+ } elsif (defined $___JOBS && $___JOBS > 0 && $argvlen==4) {
803
+ $qsubcmd="qsub $queue_flags -V exitjob$pid.sh > exitjob$pid.log 2>&1";
804
+ safesystem($qsubcmd) or die "ERROR: Failed to exit-submit $pid (via $qsubwrapper_exit)";
805
+ } else {
806
+ safesystem("rm $stdout") or die "ERROR: Failed to remove '$stdout'.";
807
+ safesystem("rm $stderr") or die "ERROR: Failed to remove '$stderr'.";
808
+ }
809
+ }
810
+
811
+
812
+
813
+
814
+
815
+
816
+
817
+ sub create_extractor_script()
818
+ {
819
+ my ($cmd, $outdir) = @_;
820
+ my $script_path = File::Spec->catfile($outdir, "extractor.sh");
821
+
822
+ open my $out, '>', $script_path
823
+ or die "Couldn't open $script_path for writing: $!\n";
824
+ print $out "#!/bin/bash\n";
825
+ print $out "cd $outdir\n";
826
+ print $out "$cmd\n";
827
+ close($out);
828
+
829
+ `chmod +x $script_path`;
830
+
831
+ return $script_path;
832
+ }
mosesdecoder/contrib/other-builds/CreateProbingPT/.cproject ADDED
@@ -0,0 +1,150 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
3
+ <storageModule moduleId="org.eclipse.cdt.core.settings">
4
+ <cconfiguration id="cdt.managedbuild.config.gnu.cross.exe.debug.1570028742">
5
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.cross.exe.debug.1570028742" moduleId="org.eclipse.cdt.core.settings" name="Debug">
6
+ <externalSettings/>
7
+ <extensions>
8
+ <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
9
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
10
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
11
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
12
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
13
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
14
+ </extensions>
15
+ </storageModule>
16
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
17
+ <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cross.exe.debug.1570028742" name="Debug" parent="cdt.managedbuild.config.gnu.cross.exe.debug">
18
+ <folderInfo id="cdt.managedbuild.config.gnu.cross.exe.debug.1570028742." name="/" resourcePath="">
19
+ <toolChain id="cdt.managedbuild.toolchain.gnu.base.1361406865" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.base">
20
+ <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.GNU_ELF" id="cdt.managedbuild.target.gnu.platform.base.2038870322" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
21
+ <builder buildPath="${workspace_loc:/CreateProbingPT}/Debug" id="cdt.managedbuild.target.gnu.builder.base.1431538614" keepEnvironmentInBuildfile="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.base"/>
22
+ <tool id="cdt.managedbuild.tool.gnu.archiver.base.894179" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
23
+ <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.1704234279" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
24
+ <option id="gnu.cpp.compiler.option.include.paths.2025368781" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
25
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc}/../..&quot;"/>
26
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc}/../../boost/include&quot;"/>
27
+ </option>
28
+ <option id="gnu.cpp.compiler.option.optimization.level.61306774" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
29
+ <option id="gnu.cpp.compiler.option.debugging.level.646262070" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
30
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1170646704" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
31
+ </tool>
32
+ <tool id="cdt.managedbuild.tool.gnu.c.compiler.base.865259344" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base">
33
+ <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.514456816" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
34
+ <option id="gnu.c.compiler.option.debugging.level.929105966" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.max" valueType="enumerated"/>
35
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1100342669" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
36
+ </tool>
37
+ <tool id="cdt.managedbuild.tool.gnu.c.linker.base.96768567" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base"/>
38
+ <tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.520966414" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base">
39
+ <option id="gnu.cpp.link.option.libs.1747377074" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" useByScannerDiscovery="false" valueType="libs">
40
+ <listOptionValue builtIn="false" value="moses"/>
41
+ <listOptionValue builtIn="false" value="probingpt"/>
42
+ <listOptionValue builtIn="false" value="util"/>
43
+ <listOptionValue builtIn="false" value="boost_filesystem"/>
44
+ <listOptionValue builtIn="false" value="boost_thread"/>
45
+ <listOptionValue builtIn="false" value="boost_iostreams"/>
46
+ <listOptionValue builtIn="false" value="boost_serialization"/>
47
+ <listOptionValue builtIn="false" value="boost_system"/>
48
+ <listOptionValue builtIn="false" value="boost_program_options"/>
49
+ <listOptionValue builtIn="false" value="z"/>
50
+ <listOptionValue builtIn="false" value="dl"/>
51
+ <listOptionValue builtIn="false" value="pthread"/>
52
+ <listOptionValue builtIn="false" value="rt"/>
53
+ </option>
54
+ <option id="gnu.cpp.link.option.paths.1438154686" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
55
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/moses/Debug&quot;"/>
56
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/probingpt/Debug&quot;"/>
57
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/util/Debug&quot;"/>
58
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/../../boost/lib64&quot;"/>
59
+ <listOptionValue builtIn="false" value="/opt/local/lib"/>
60
+ </option>
61
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.24035860" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
62
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
63
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
64
+ </inputType>
65
+ </tool>
66
+ <tool id="cdt.managedbuild.tool.gnu.assembler.base.1333610404" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base">
67
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.307327924" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
68
+ </tool>
69
+ </toolChain>
70
+ </folderInfo>
71
+ </configuration>
72
+ </storageModule>
73
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
74
+ </cconfiguration>
75
+ <cconfiguration id="cdt.managedbuild.config.gnu.cross.exe.release.1619501710">
76
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.cross.exe.release.1619501710" moduleId="org.eclipse.cdt.core.settings" name="Release">
77
+ <externalSettings/>
78
+ <extensions>
79
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
80
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
81
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
82
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
83
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
84
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
85
+ </extensions>
86
+ </storageModule>
87
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
88
+ <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cross.exe.release.1619501710" name="Release" parent="cdt.managedbuild.config.gnu.cross.exe.release">
89
+ <folderInfo id="cdt.managedbuild.config.gnu.cross.exe.release.1619501710." name="/" resourcePath="">
90
+ <toolChain id="cdt.managedbuild.toolchain.gnu.cross.exe.release.1969822952" name="Cross GCC" superClass="cdt.managedbuild.toolchain.gnu.cross.exe.release">
91
+ <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.targetPlatform.gnu.cross.1371996557" isAbstract="false" osList="all" superClass="cdt.managedbuild.targetPlatform.gnu.cross"/>
92
+ <builder buildPath="${workspace_loc:/CreateProbingPT}/Release" id="cdt.managedbuild.builder.gnu.cross.1372031461" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.builder.gnu.cross"/>
93
+ <tool id="cdt.managedbuild.tool.gnu.cross.c.compiler.492064703" name="Cross GCC Compiler" superClass="cdt.managedbuild.tool.gnu.cross.c.compiler">
94
+ <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.option.optimization.level.1156954368" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
95
+ <option id="gnu.c.compiler.option.debugging.level.15136302" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.none" valueType="enumerated"/>
96
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.199674880" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
97
+ </tool>
98
+ <tool id="cdt.managedbuild.tool.gnu.cross.cpp.compiler.291504447" name="Cross G++ Compiler" superClass="cdt.managedbuild.tool.gnu.cross.cpp.compiler">
99
+ <option id="gnu.cpp.compiler.option.optimization.level.1996596419" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
100
+ <option id="gnu.cpp.compiler.option.debugging.level.126290725" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
101
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.2087951440" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
102
+ </tool>
103
+ <tool id="cdt.managedbuild.tool.gnu.cross.c.linker.1394946632" name="Cross GCC Linker" superClass="cdt.managedbuild.tool.gnu.cross.c.linker"/>
104
+ <tool id="cdt.managedbuild.tool.gnu.cross.cpp.linker.253350906" name="Cross G++ Linker" superClass="cdt.managedbuild.tool.gnu.cross.cpp.linker">
105
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.720543399" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
106
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
107
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
108
+ </inputType>
109
+ </tool>
110
+ <tool id="cdt.managedbuild.tool.gnu.cross.archiver.1354920365" name="Cross GCC Archiver" superClass="cdt.managedbuild.tool.gnu.cross.archiver"/>
111
+ <tool id="cdt.managedbuild.tool.gnu.cross.assembler.1318834738" name="Cross GCC Assembler" superClass="cdt.managedbuild.tool.gnu.cross.assembler">
112
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.725479607" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
113
+ </tool>
114
+ </toolChain>
115
+ </folderInfo>
116
+ </configuration>
117
+ </storageModule>
118
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
119
+ </cconfiguration>
120
+ </storageModule>
121
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
122
+ <project id="CreateProbingPT.cdt.managedbuild.target.gnu.cross.exe.1649652220" name="Executable" projectType="cdt.managedbuild.target.gnu.cross.exe"/>
123
+ </storageModule>
124
+ <storageModule moduleId="scannerConfiguration">
125
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
126
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cross.exe.debug.1570028742;cdt.managedbuild.config.gnu.cross.exe.debug.1570028742.;cdt.managedbuild.tool.gnu.cross.cpp.compiler.345399823;cdt.managedbuild.tool.gnu.cpp.compiler.input.1025890847">
127
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
128
+ </scannerConfigBuildInfo>
129
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cross.exe.release.1619501710;cdt.managedbuild.config.gnu.cross.exe.release.1619501710.;cdt.managedbuild.tool.gnu.cross.cpp.compiler.291504447;cdt.managedbuild.tool.gnu.cpp.compiler.input.2087951440">
130
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
131
+ </scannerConfigBuildInfo>
132
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cross.exe.debug.1570028742;cdt.managedbuild.config.gnu.cross.exe.debug.1570028742.;cdt.managedbuild.tool.gnu.cross.c.compiler.1929025978;cdt.managedbuild.tool.gnu.c.compiler.input.1056616988">
133
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
134
+ </scannerConfigBuildInfo>
135
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cross.exe.release.1619501710;cdt.managedbuild.config.gnu.cross.exe.release.1619501710.;cdt.managedbuild.tool.gnu.cross.c.compiler.492064703;cdt.managedbuild.tool.gnu.c.compiler.input.199674880">
136
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
137
+ </scannerConfigBuildInfo>
138
+ </storageModule>
139
+ <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
140
+ <storageModule moduleId="refreshScope" versionNumber="2">
141
+ <configuration configurationName="Debug">
142
+ <resource resourceType="PROJECT" workspacePath="/CreateProbingPT"/>
143
+ </configuration>
144
+ <configuration configurationName="Release">
145
+ <resource resourceType="PROJECT" workspacePath="/CreateProbingPT"/>
146
+ </configuration>
147
+ </storageModule>
148
+ <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
149
+ <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
150
+ </cproject>
mosesdecoder/contrib/other-builds/CreateProbingPT/.project ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <projectDescription>
3
+ <name>CreateProbingPT</name>
4
+ <comment></comment>
5
+ <projects>
6
+ <project>moses</project>
7
+ <project>util</project>
8
+ </projects>
9
+ <buildSpec>
10
+ <buildCommand>
11
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
12
+ <triggers>clean,full,incremental,</triggers>
13
+ <arguments>
14
+ </arguments>
15
+ </buildCommand>
16
+ <buildCommand>
17
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
18
+ <triggers>full,incremental,</triggers>
19
+ <arguments>
20
+ </arguments>
21
+ </buildCommand>
22
+ </buildSpec>
23
+ <natures>
24
+ <nature>org.eclipse.cdt.core.cnature</nature>
25
+ <nature>org.eclipse.cdt.core.ccnature</nature>
26
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
27
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
28
+ </natures>
29
+ <linkedResources>
30
+ <link>
31
+ <name>CreateProbingPT.cpp</name>
32
+ <type>1</type>
33
+ <locationURI>PARENT-3-PROJECT_LOC/probingpt/CreateProbingPT.cpp</locationURI>
34
+ </link>
35
+ </linkedResources>
36
+ </projectDescription>
mosesdecoder/contrib/other-builds/MosesManagedDLL/ManagedMoses.cpp ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #include <msclr/marshal_cppstd.h>
2
+ #include "Moses2Wrapper.h"
3
+
4
+ using namespace System;
5
+ using namespace msclr::interop;
6
+
7
+ //TODO: include headers as per the build process
8
+ namespace Moses {
9
+ public ref class Moses2Wrapper
10
+ {
11
+ public:
12
+ Moses2Wrapper(String^ filePath) {
13
+ const std::string standardString = marshal_as<std::string>(filePath);
14
+ m_pWrapper = new Moses2::Moses2Wrapper(standardString);
15
+ }
16
+ ~Moses2Wrapper() { this->!Moses2Wrapper(); }
17
+ String^ Translate(String^ input, long requestId) {
18
+ const std::string standardString = marshal_as<std::string>(input);
19
+ std::string output = m_pWrapper->Translate(standardString, requestId);
20
+ String^ str = gcnew String(output.c_str());
21
+ return str;
22
+ }
23
+ protected:
24
+ !Moses2Wrapper() { delete m_pWrapper; m_pWrapper = nullptr; }
25
+ private:
26
+ Moses2::Moses2Wrapper *m_pWrapper;
27
+ };
28
+ }
mosesdecoder/contrib/other-builds/MosesManagedDLL/MosesManagedDLL.vcxproj ADDED
@@ -0,0 +1,170 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <ItemGroup Label="ProjectConfigurations">
4
+ <ProjectConfiguration Include="Debug|Win32">
5
+ <Configuration>Debug</Configuration>
6
+ <Platform>Win32</Platform>
7
+ </ProjectConfiguration>
8
+ <ProjectConfiguration Include="Release|Win32">
9
+ <Configuration>Release</Configuration>
10
+ <Platform>Win32</Platform>
11
+ </ProjectConfiguration>
12
+ <ProjectConfiguration Include="Debug|x64">
13
+ <Configuration>Debug</Configuration>
14
+ <Platform>x64</Platform>
15
+ </ProjectConfiguration>
16
+ <ProjectConfiguration Include="Release|x64">
17
+ <Configuration>Release</Configuration>
18
+ <Platform>x64</Platform>
19
+ </ProjectConfiguration>
20
+ </ItemGroup>
21
+ <PropertyGroup Label="Globals">
22
+ <VCProjectVersion>16.0</VCProjectVersion>
23
+ <Keyword>Win32Proj</Keyword>
24
+ <ProjectGuid>{5fb67144-27c9-4993-a084-e2097ffcc4fe}</ProjectGuid>
25
+ <RootNamespace>MosesManagedDLL</RootNamespace>
26
+ <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
27
+ </PropertyGroup>
28
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
29
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
30
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
31
+ <UseDebugLibraries>true</UseDebugLibraries>
32
+ <PlatformToolset>v142</PlatformToolset>
33
+ <CharacterSet>Unicode</CharacterSet>
34
+ </PropertyGroup>
35
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
36
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
37
+ <UseDebugLibraries>false</UseDebugLibraries>
38
+ <PlatformToolset>v142</PlatformToolset>
39
+ <WholeProgramOptimization>true</WholeProgramOptimization>
40
+ <CharacterSet>Unicode</CharacterSet>
41
+ </PropertyGroup>
42
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
43
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
44
+ <UseDebugLibraries>true</UseDebugLibraries>
45
+ <PlatformToolset>v142</PlatformToolset>
46
+ <CharacterSet>Unicode</CharacterSet>
47
+ <CLRSupport>true</CLRSupport>
48
+ </PropertyGroup>
49
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
50
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
51
+ <UseDebugLibraries>false</UseDebugLibraries>
52
+ <PlatformToolset>v142</PlatformToolset>
53
+ <WholeProgramOptimization>true</WholeProgramOptimization>
54
+ <CharacterSet>Unicode</CharacterSet>
55
+ </PropertyGroup>
56
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
57
+ <ImportGroup Label="ExtensionSettings">
58
+ </ImportGroup>
59
+ <ImportGroup Label="Shared">
60
+ </ImportGroup>
61
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
62
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
63
+ </ImportGroup>
64
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
65
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
66
+ </ImportGroup>
67
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
68
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
69
+ </ImportGroup>
70
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
71
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
72
+ </ImportGroup>
73
+ <PropertyGroup Label="UserMacros" />
74
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
75
+ <LinkIncremental>true</LinkIncremental>
76
+ </PropertyGroup>
77
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
78
+ <LinkIncremental>false</LinkIncremental>
79
+ </PropertyGroup>
80
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
81
+ <LinkIncremental>true</LinkIncremental>
82
+ </PropertyGroup>
83
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
84
+ <LinkIncremental>false</LinkIncremental>
85
+ </PropertyGroup>
86
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
87
+ <ClCompile>
88
+ <WarningLevel>Level3</WarningLevel>
89
+ <SDLCheck>true</SDLCheck>
90
+ <PreprocessorDefinitions>WIN32;_DEBUG;MOSESMANAGEDDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
91
+ <ConformanceMode>true</ConformanceMode>
92
+ <PrecompiledHeader>Use</PrecompiledHeader>
93
+ <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
94
+ </ClCompile>
95
+ <Link>
96
+ <SubSystem>Windows</SubSystem>
97
+ <GenerateDebugInformation>true</GenerateDebugInformation>
98
+ <EnableUAC>false</EnableUAC>
99
+ </Link>
100
+ </ItemDefinitionGroup>
101
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
102
+ <ClCompile>
103
+ <WarningLevel>Level3</WarningLevel>
104
+ <FunctionLevelLinking>true</FunctionLevelLinking>
105
+ <IntrinsicFunctions>true</IntrinsicFunctions>
106
+ <SDLCheck>true</SDLCheck>
107
+ <PreprocessorDefinitions>WIN32;NDEBUG;MOSESMANAGEDDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
108
+ <ConformanceMode>true</ConformanceMode>
109
+ <PrecompiledHeader>Use</PrecompiledHeader>
110
+ <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
111
+ </ClCompile>
112
+ <Link>
113
+ <SubSystem>Windows</SubSystem>
114
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
115
+ <OptimizeReferences>true</OptimizeReferences>
116
+ <GenerateDebugInformation>true</GenerateDebugInformation>
117
+ <EnableUAC>false</EnableUAC>
118
+ </Link>
119
+ </ItemDefinitionGroup>
120
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
121
+ <ClCompile>
122
+ <WarningLevel>Level3</WarningLevel>
123
+ <SDLCheck>true</SDLCheck>
124
+ <PreprocessorDefinitions>_DEBUG;MOSESMANAGEDDLL_EXPORTS;NO_COMPACT_TABLES;HAVE_CMPHXXX;MAX_NUM_FACTORS=4;KENLM_MAX_ORDER=6;_USE_MATH_DEFINES;NOMINMAX;WITH_THREADS;NO_PIPES;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
125
+ <ConformanceMode>false</ConformanceMode>
126
+ <PrecompiledHeader>NotUsing</PrecompiledHeader>
127
+ <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
128
+ <AdditionalIncludeDirectories>F:\boost_1_72_0;D:\moses-mstranslator;D:\xmlrpc-c-1.51.06\include;D:\moses-mstranslator\moses2</AdditionalIncludeDirectories>
129
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
130
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
131
+ </ClCompile>
132
+ <Link>
133
+ <SubSystem>Windows</SubSystem>
134
+ <GenerateDebugInformation>true</GenerateDebugInformation>
135
+ <EnableUAC>false</EnableUAC>
136
+ <AdditionalLibraryDirectories>D:\zlib-1.2.8\contrib\vstudio\vc11\x64\ZlibDllRelease;D:\xmlrpc-c-1.51.06\bin\Debug-Static-x64;C:\Users\sija\Downloads\2.0.2\bonitao-cmph-e5f83da\Debug;D:\zlib_1_2_8_msvc2015_64\msvc2015_64\lib\zlib;D:\mman-win32-master\x64\Release;F:\boost_1_72_0\lib64-msvc-14.2;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
137
+ <AdditionalDependencies>libxmlrpc.lib;libxmlrpc_server_abyss.lib;libxmlrpc_server.lib;libxmlrpc_abyss.lib;libxmlrpc_util.lib;libxmlrpc_xmlparse.lib;libxmlrpc_xmltok.lib;libxmlrpc++.lib;zlibwapi.lib;mman.lib;cmph.lib;%(AdditionalDependencies)</AdditionalDependencies>
138
+ </Link>
139
+ </ItemDefinitionGroup>
140
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
141
+ <ClCompile>
142
+ <WarningLevel>Level3</WarningLevel>
143
+ <FunctionLevelLinking>true</FunctionLevelLinking>
144
+ <IntrinsicFunctions>true</IntrinsicFunctions>
145
+ <SDLCheck>true</SDLCheck>
146
+ <PreprocessorDefinitions>NDEBUG;MOSESMANAGEDDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
147
+ <ConformanceMode>true</ConformanceMode>
148
+ <PrecompiledHeader>Use</PrecompiledHeader>
149
+ <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
150
+ </ClCompile>
151
+ <Link>
152
+ <SubSystem>Windows</SubSystem>
153
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
154
+ <OptimizeReferences>true</OptimizeReferences>
155
+ <GenerateDebugInformation>true</GenerateDebugInformation>
156
+ <EnableUAC>false</EnableUAC>
157
+ </Link>
158
+ </ItemDefinitionGroup>
159
+ <ItemGroup>
160
+ <ClCompile Include="ManagedMoses.cpp" />
161
+ </ItemGroup>
162
+ <ItemGroup>
163
+ <ProjectReference Include="..\moses2\moses2.vcxproj">
164
+ <Project>{b4304e97-d37f-4022-bd03-841a4faee398}</Project>
165
+ </ProjectReference>
166
+ </ItemGroup>
167
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
168
+ <ImportGroup Label="ExtensionTargets">
169
+ </ImportGroup>
170
+ </Project>
mosesdecoder/contrib/other-builds/MosesManagedDLL/MosesManagedDLL.vcxproj.filters ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <ItemGroup>
4
+ <Filter Include="Source Files">
5
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
6
+ <Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
7
+ </Filter>
8
+ <Filter Include="Header Files">
9
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
10
+ <Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
11
+ </Filter>
12
+ <Filter Include="Resource Files">
13
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
14
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
15
+ </Filter>
16
+ </ItemGroup>
17
+ <ItemGroup>
18
+ <ClCompile Include="ManagedMoses.cpp">
19
+ <Filter>Source Files</Filter>
20
+ </ClCompile>
21
+ </ItemGroup>
22
+ </Project>
mosesdecoder/contrib/other-builds/MosesWrapperTest/MosesWrapperTest.csproj ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
4
+ <PropertyGroup>
5
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
6
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
7
+ <ProjectGuid>{A2B603DB-F52E-4A83-BB61-F23D212E6482}</ProjectGuid>
8
+ <OutputType>Exe</OutputType>
9
+ <RootNamespace>MosesWrapperTest</RootNamespace>
10
+ <AssemblyName>MosesWrapperTest</AssemblyName>
11
+ <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
12
+ <FileAlignment>512</FileAlignment>
13
+ <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
14
+ <Deterministic>true</Deterministic>
15
+ <PublishUrl>publish\</PublishUrl>
16
+ <Install>true</Install>
17
+ <InstallFrom>Disk</InstallFrom>
18
+ <UpdateEnabled>false</UpdateEnabled>
19
+ <UpdateMode>Foreground</UpdateMode>
20
+ <UpdateInterval>7</UpdateInterval>
21
+ <UpdateIntervalUnits>Days</UpdateIntervalUnits>
22
+ <UpdatePeriodically>false</UpdatePeriodically>
23
+ <UpdateRequired>false</UpdateRequired>
24
+ <MapFileExtensions>true</MapFileExtensions>
25
+ <ApplicationRevision>0</ApplicationRevision>
26
+ <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
27
+ <IsWebBootstrapper>false</IsWebBootstrapper>
28
+ <UseApplicationTrust>false</UseApplicationTrust>
29
+ <BootstrapperEnabled>true</BootstrapperEnabled>
30
+ </PropertyGroup>
31
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
32
+ <PlatformTarget>x64</PlatformTarget>
33
+ <DebugSymbols>true</DebugSymbols>
34
+ <DebugType>full</DebugType>
35
+ <Optimize>false</Optimize>
36
+ <OutputPath>bin\Debug\</OutputPath>
37
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
38
+ <ErrorReport>prompt</ErrorReport>
39
+ <WarningLevel>2</WarningLevel>
40
+ </PropertyGroup>
41
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
42
+ <PlatformTarget>AnyCPU</PlatformTarget>
43
+ <DebugType>pdbonly</DebugType>
44
+ <Optimize>true</Optimize>
45
+ <OutputPath>bin\Release\</OutputPath>
46
+ <DefineConstants>TRACE</DefineConstants>
47
+ <ErrorReport>prompt</ErrorReport>
48
+ <WarningLevel>4</WarningLevel>
49
+ </PropertyGroup>
50
+ <ItemGroup>
51
+ <Reference Include="System" />
52
+ <Reference Include="System.Core" />
53
+ <Reference Include="System.Xml.Linq" />
54
+ <Reference Include="System.Data.DataSetExtensions" />
55
+ <Reference Include="Microsoft.CSharp" />
56
+ <Reference Include="System.Data" />
57
+ <Reference Include="System.Net.Http" />
58
+ <Reference Include="System.Xml" />
59
+ </ItemGroup>
60
+ <ItemGroup>
61
+ <Compile Include="Program.cs" />
62
+ <Compile Include="Properties\AssemblyInfo.cs" />
63
+ </ItemGroup>
64
+ <ItemGroup>
65
+ <None Include="App.config" />
66
+ </ItemGroup>
67
+ <ItemGroup>
68
+ <ProjectReference Include="..\MosesManagedDLL\MosesManagedDLL.vcxproj">
69
+ <Project>{5fb67144-27c9-4993-a084-e2097ffcc4fe}</Project>
70
+ <Name>MosesManagedDLL</Name>
71
+ </ProjectReference>
72
+ </ItemGroup>
73
+ <ItemGroup>
74
+ <BootstrapperPackage Include=".NETFramework,Version=v4.7.2">
75
+ <Visible>False</Visible>
76
+ <ProductName>Microsoft .NET Framework 4.7.2 %28x86 and x64%29</ProductName>
77
+ <Install>true</Install>
78
+ </BootstrapperPackage>
79
+ <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
80
+ <Visible>False</Visible>
81
+ <ProductName>.NET Framework 3.5 SP1</ProductName>
82
+ <Install>false</Install>
83
+ </BootstrapperPackage>
84
+ </ItemGroup>
85
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
86
+ </Project>
mosesdecoder/contrib/other-builds/MosesWrapperTest/Program.cs ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ using System;
2
+ using System.Collections.Generic;
3
+ using System.Linq;
4
+ using System.Text;
5
+ using System.Threading.Tasks;
6
+ using Moses;
7
+ namespace MosesWrapperTest
8
+ {
9
+ class Program {
10
+
11
+ static void Main(string[] args)
12
+ {
13
+ Moses2Wrapper e = new Moses2Wrapper("D:/moses-mstranslator/test_sentence_with_candidates/moses_mspt.ini");
14
+ string mystring = e.Translate("फ ो ट ो ं @@@ ट ||| a ||| 0.5338410658500136 $$$ ट ||| c ||| 0.10587171128910133 $$$ ट ||| m ||| 0.7056508746775306 $$$ ं ||| l ||| 0.29237797398236876 $$$ ं ||| o ||| 0.4026301817948226 $$$ ं ||| r ||| 0.20594041196734436 $$$ फ ||| c ||| 0.46792456587433573 $$$ फ ||| g ||| 0.43855815762641204 $$$ फ ||| x ||| 0.7077570324853759 $$$ ो ||| h ||| 0.9869239425073358 $$$ ो ||| i ||| 0.6660016809625412 $$$ ो ||| h ||| 0.8425506301302961", 123456789);
15
+ Console.WriteLine(mystring);
16
+ return;
17
+ }
18
+ }
19
+ }
mosesdecoder/contrib/other-builds/OnDiskPt/.cproject ADDED
@@ -0,0 +1,140 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
3
+ <storageModule moduleId="org.eclipse.cdt.core.settings">
4
+ <cconfiguration id="cdt.managedbuild.config.gnu.macosx.exe.debug.846397978">
5
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.macosx.exe.debug.846397978" moduleId="org.eclipse.cdt.core.settings" name="Debug">
6
+ <externalSettings>
7
+ <externalSetting>
8
+ <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/OnDiskPt"/>
9
+ <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/OnDiskPt/Debug"/>
10
+ <entry flags="RESOLVED" kind="libraryFile" name="OnDiskPt" srcPrefixMapping="" srcRootPath=""/>
11
+ </externalSetting>
12
+ </externalSettings>
13
+ <extensions>
14
+ <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
15
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
16
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
17
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
18
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
19
+ </extensions>
20
+ </storageModule>
21
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
22
+ <configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.macosx.exe.debug.846397978" name="Debug" parent="cdt.managedbuild.config.gnu.macosx.exe.debug">
23
+ <folderInfo id="cdt.managedbuild.config.gnu.macosx.exe.debug.846397978." name="/" resourcePath="">
24
+ <toolChain id="cdt.managedbuild.toolchain.gnu.base.157856987" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.base">
25
+ <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.GNU_ELF" id="cdt.managedbuild.target.gnu.platform.base.1221655831" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
26
+ <builder buildPath="${workspace_loc:/OnDiskPt}/Debug" id="cdt.managedbuild.target.gnu.builder.base.1822256899" name="Gnu Make Builder.Debug" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.base"/>
27
+ <tool id="cdt.managedbuild.tool.gnu.archiver.base.2090920984" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
28
+ <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.1135838107" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
29
+ <option id="gnu.cpp.compiler.option.include.paths.1219317473" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
30
+ <listOptionValue builtIn="false" value="/opt/local/include"/>
31
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc}/../../boost/include&quot;"/>
32
+ <listOptionValue builtIn="false" value="${workspace_loc}/../../"/>
33
+ </option>
34
+ <option id="gnu.cpp.compiler.option.preprocessor.def.852929239" superClass="gnu.cpp.compiler.option.preprocessor.def" valueType="definedSymbols">
35
+ <listOptionValue builtIn="false" value="TRACE_ENABLE"/>
36
+ <listOptionValue builtIn="false" value="KENLM_MAX_ORDER=7"/>
37
+ <listOptionValue builtIn="false" value="HAVE_BOOST"/>
38
+ <listOptionValue builtIn="false" value="MAX_NUM_FACTORS=4"/>
39
+ <listOptionValue builtIn="false" value="WITH_THREADS"/>
40
+ </option>
41
+ <option id="gnu.cpp.compiler.option.optimization.level.612567238" superClass="gnu.cpp.compiler.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
42
+ <option id="gnu.cpp.compiler.option.debugging.level.551520195" superClass="gnu.cpp.compiler.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
43
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1156759208" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
44
+ </tool>
45
+ <tool id="cdt.managedbuild.tool.gnu.c.compiler.base.698983549" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base">
46
+ <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.67773025" superClass="gnu.c.compiler.option.optimization.level" valueType="enumerated"/>
47
+ <option id="gnu.c.compiler.option.debugging.level.1386893486" superClass="gnu.c.compiler.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>
48
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.85619112" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
49
+ </tool>
50
+ <tool id="cdt.managedbuild.tool.gnu.c.linker.base.856427480" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base"/>
51
+ <tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.519828719" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base"/>
52
+ <tool id="cdt.managedbuild.tool.gnu.assembler.base.1838269930" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base">
53
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.563285869" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
54
+ </tool>
55
+ </toolChain>
56
+ </folderInfo>
57
+ <fileInfo id="cdt.managedbuild.config.gnu.macosx.exe.debug.846397978.726316251" name="Main.h" rcbsApplicability="disable" resourcePath="Main.h" toolsToInvoke=""/>
58
+ <sourceEntries>
59
+ <entry excluding="Main.h|Main.cpp" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
60
+ </sourceEntries>
61
+ </configuration>
62
+ </storageModule>
63
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
64
+ </cconfiguration>
65
+ <cconfiguration id="cdt.managedbuild.config.macosx.exe.release.701931933">
66
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.macosx.exe.release.701931933" moduleId="org.eclipse.cdt.core.settings" name="Release">
67
+ <externalSettings/>
68
+ <extensions>
69
+ <extension id="org.eclipse.cdt.core.MachO64" point="org.eclipse.cdt.core.BinaryParser"/>
70
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
71
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
72
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
73
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
74
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
75
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
76
+ </extensions>
77
+ </storageModule>
78
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
79
+ <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.macosx.exe.release.701931933" name="Release" parent="cdt.managedbuild.config.macosx.exe.release">
80
+ <folderInfo id="cdt.managedbuild.config.macosx.exe.release.701931933." name="/" resourcePath="">
81
+ <toolChain id="cdt.managedbuild.toolchain.gnu.macosx.exe.release.5036266" name="MacOSX GCC" superClass="cdt.managedbuild.toolchain.gnu.macosx.exe.release">
82
+ <targetPlatform binaryParser="org.eclipse.cdt.core.MachO64;org.eclipse.cdt.core.ELF" id="cdt.managedbuild.target.gnu.platform.macosx.exe.release.396818757" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.macosx.exe.release"/>
83
+ <builder buildPath="${workspace_loc:/OnDiskPt/Release}" id="cdt.managedbuild.target.gnu.builder.macosx.exe.release.1081186575" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.macosx.exe.release"/>
84
+ <tool id="cdt.managedbuild.tool.macosx.c.linker.macosx.exe.release.894082374" name="MacOS X C Linker" superClass="cdt.managedbuild.tool.macosx.c.linker.macosx.exe.release"/>
85
+ <tool id="cdt.managedbuild.tool.macosx.cpp.linker.macosx.exe.release.640159085" name="MacOS X C++ Linker" superClass="cdt.managedbuild.tool.macosx.cpp.linker.macosx.exe.release">
86
+ <inputType id="cdt.managedbuild.tool.macosx.cpp.linker.input.1673993744" superClass="cdt.managedbuild.tool.macosx.cpp.linker.input">
87
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
88
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
89
+ </inputType>
90
+ </tool>
91
+ <tool id="cdt.managedbuild.tool.gnu.assembler.macosx.exe.release.596082362" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.macosx.exe.release">
92
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.851420859" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
93
+ </tool>
94
+ <tool id="cdt.managedbuild.tool.gnu.archiver.macosx.base.385722535" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.macosx.base"/>
95
+ <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.macosx.exe.release.983488413" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.macosx.exe.release">
96
+ <option id="gnu.cpp.compiler.macosx.exe.release.option.optimization.level.21058138" name="Optimization Level" superClass="gnu.cpp.compiler.macosx.exe.release.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
97
+ <option id="gnu.cpp.compiler.macosx.exe.release.option.debugging.level.1704184753" name="Debug Level" superClass="gnu.cpp.compiler.macosx.exe.release.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
98
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1034344194" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
99
+ </tool>
100
+ <tool id="cdt.managedbuild.tool.gnu.c.compiler.macosx.exe.release.1029035384" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.macosx.exe.release">
101
+ <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.macosx.exe.release.option.optimization.level.171488636" name="Optimization Level" superClass="gnu.c.compiler.macosx.exe.release.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
102
+ <option id="gnu.c.compiler.macosx.exe.release.option.debugging.level.843129626" name="Debug Level" superClass="gnu.c.compiler.macosx.exe.release.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.none" valueType="enumerated"/>
103
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1014721928" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
104
+ </tool>
105
+ </toolChain>
106
+ </folderInfo>
107
+ </configuration>
108
+ </storageModule>
109
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
110
+ </cconfiguration>
111
+ </storageModule>
112
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
113
+ <project id="OnDiskPt.cdt.managedbuild.target.macosx.exe.542902806" name="Executable" projectType="cdt.managedbuild.target.macosx.exe"/>
114
+ </storageModule>
115
+ <storageModule moduleId="scannerConfiguration">
116
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
117
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.macosx.exe.release.701931933;cdt.managedbuild.config.macosx.exe.release.701931933.;cdt.managedbuild.tool.gnu.c.compiler.macosx.exe.release.1029035384;cdt.managedbuild.tool.gnu.c.compiler.input.1014721928">
118
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
119
+ </scannerConfigBuildInfo>
120
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.macosx.exe.debug.846397978;cdt.managedbuild.config.gnu.macosx.exe.debug.846397978.;cdt.managedbuild.tool.gnu.c.compiler.macosx.exe.debug.1161943634;cdt.managedbuild.tool.gnu.c.compiler.input.1925590121">
121
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
122
+ </scannerConfigBuildInfo>
123
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.macosx.exe.debug.846397978;cdt.managedbuild.config.gnu.macosx.exe.debug.846397978.;cdt.managedbuild.tool.gnu.cpp.compiler.macosx.exe.debug.2001028511;cdt.managedbuild.tool.gnu.cpp.compiler.input.1930757481">
124
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
125
+ </scannerConfigBuildInfo>
126
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.macosx.exe.release.701931933;cdt.managedbuild.config.macosx.exe.release.701931933.;cdt.managedbuild.tool.gnu.cpp.compiler.macosx.exe.release.983488413;cdt.managedbuild.tool.gnu.cpp.compiler.input.1034344194">
127
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
128
+ </scannerConfigBuildInfo>
129
+ </storageModule>
130
+ <storageModule moduleId="refreshScope" versionNumber="2">
131
+ <configuration configurationName="Release">
132
+ <resource resourceType="PROJECT" workspacePath="/OnDiskPt"/>
133
+ </configuration>
134
+ <configuration configurationName="Debug">
135
+ <resource resourceType="PROJECT" workspacePath="/OnDiskPt"/>
136
+ </configuration>
137
+ </storageModule>
138
+ <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
139
+ <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
140
+ </cproject>
mosesdecoder/contrib/other-builds/OnDiskPt/.project ADDED
@@ -0,0 +1,185 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <projectDescription>
3
+ <name>OnDiskPt</name>
4
+ <comment></comment>
5
+ <projects>
6
+ </projects>
7
+ <buildSpec>
8
+ <buildCommand>
9
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
10
+ <triggers>clean,full,incremental,</triggers>
11
+ <arguments>
12
+ <dictionary>
13
+ <key>?name?</key>
14
+ <value></value>
15
+ </dictionary>
16
+ <dictionary>
17
+ <key>org.eclipse.cdt.make.core.append_environment</key>
18
+ <value>true</value>
19
+ </dictionary>
20
+ <dictionary>
21
+ <key>org.eclipse.cdt.make.core.autoBuildTarget</key>
22
+ <value>all</value>
23
+ </dictionary>
24
+ <dictionary>
25
+ <key>org.eclipse.cdt.make.core.buildArguments</key>
26
+ <value>-j3</value>
27
+ </dictionary>
28
+ <dictionary>
29
+ <key>org.eclipse.cdt.make.core.buildCommand</key>
30
+ <value>make</value>
31
+ </dictionary>
32
+ <dictionary>
33
+ <key>org.eclipse.cdt.make.core.buildLocation</key>
34
+ <value>${workspace_loc:/OnDiskPt/Debug}</value>
35
+ </dictionary>
36
+ <dictionary>
37
+ <key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
38
+ <value>clean</value>
39
+ </dictionary>
40
+ <dictionary>
41
+ <key>org.eclipse.cdt.make.core.contents</key>
42
+ <value>org.eclipse.cdt.make.core.activeConfigSettings</value>
43
+ </dictionary>
44
+ <dictionary>
45
+ <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
46
+ <value>false</value>
47
+ </dictionary>
48
+ <dictionary>
49
+ <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
50
+ <value>true</value>
51
+ </dictionary>
52
+ <dictionary>
53
+ <key>org.eclipse.cdt.make.core.enableFullBuild</key>
54
+ <value>true</value>
55
+ </dictionary>
56
+ <dictionary>
57
+ <key>org.eclipse.cdt.make.core.fullBuildTarget</key>
58
+ <value>all</value>
59
+ </dictionary>
60
+ <dictionary>
61
+ <key>org.eclipse.cdt.make.core.stopOnError</key>
62
+ <value>true</value>
63
+ </dictionary>
64
+ <dictionary>
65
+ <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
66
+ <value>true</value>
67
+ </dictionary>
68
+ </arguments>
69
+ </buildCommand>
70
+ <buildCommand>
71
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
72
+ <triggers>full,incremental,</triggers>
73
+ <arguments>
74
+ </arguments>
75
+ </buildCommand>
76
+ </buildSpec>
77
+ <natures>
78
+ <nature>org.eclipse.cdt.core.cnature</nature>
79
+ <nature>org.eclipse.cdt.core.ccnature</nature>
80
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
81
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
82
+ </natures>
83
+ <linkedResources>
84
+ <link>
85
+ <name>Jamfile</name>
86
+ <type>1</type>
87
+ <locationURI>PARENT-3-PROJECT_LOC/OnDiskPt/Jamfile</locationURI>
88
+ </link>
89
+ <link>
90
+ <name>Main.cpp</name>
91
+ <type>1</type>
92
+ <locationURI>PARENT-3-PROJECT_LOC/OnDiskPt/Main.cpp</locationURI>
93
+ </link>
94
+ <link>
95
+ <name>Main.h</name>
96
+ <type>1</type>
97
+ <locationURI>PARENT-3-PROJECT_LOC/OnDiskPt/Main.h</locationURI>
98
+ </link>
99
+ <link>
100
+ <name>OnDiskWrapper.cpp</name>
101
+ <type>1</type>
102
+ <locationURI>PARENT-3-PROJECT_LOC/OnDiskPt/OnDiskWrapper.cpp</locationURI>
103
+ </link>
104
+ <link>
105
+ <name>OnDiskWrapper.h</name>
106
+ <type>1</type>
107
+ <locationURI>PARENT-3-PROJECT_LOC/OnDiskPt/OnDiskWrapper.h</locationURI>
108
+ </link>
109
+ <link>
110
+ <name>Phrase.cpp</name>
111
+ <type>1</type>
112
+ <locationURI>PARENT-3-PROJECT_LOC/OnDiskPt/Phrase.cpp</locationURI>
113
+ </link>
114
+ <link>
115
+ <name>Phrase.h</name>
116
+ <type>1</type>
117
+ <locationURI>PARENT-3-PROJECT_LOC/OnDiskPt/Phrase.h</locationURI>
118
+ </link>
119
+ <link>
120
+ <name>PhraseNode.cpp</name>
121
+ <type>1</type>
122
+ <locationURI>PARENT-3-PROJECT_LOC/OnDiskPt/PhraseNode.cpp</locationURI>
123
+ </link>
124
+ <link>
125
+ <name>PhraseNode.h</name>
126
+ <type>1</type>
127
+ <locationURI>PARENT-3-PROJECT_LOC/OnDiskPt/PhraseNode.h</locationURI>
128
+ </link>
129
+ <link>
130
+ <name>SourcePhrase.cpp</name>
131
+ <type>1</type>
132
+ <locationURI>PARENT-3-PROJECT_LOC/OnDiskPt/SourcePhrase.cpp</locationURI>
133
+ </link>
134
+ <link>
135
+ <name>SourcePhrase.h</name>
136
+ <type>1</type>
137
+ <locationURI>PARENT-3-PROJECT_LOC/OnDiskPt/SourcePhrase.h</locationURI>
138
+ </link>
139
+ <link>
140
+ <name>TargetPhrase.cpp</name>
141
+ <type>1</type>
142
+ <locationURI>PARENT-3-PROJECT_LOC/OnDiskPt/TargetPhrase.cpp</locationURI>
143
+ </link>
144
+ <link>
145
+ <name>TargetPhrase.h</name>
146
+ <type>1</type>
147
+ <locationURI>PARENT-3-PROJECT_LOC/OnDiskPt/TargetPhrase.h</locationURI>
148
+ </link>
149
+ <link>
150
+ <name>TargetPhraseCollection.cpp</name>
151
+ <type>1</type>
152
+ <locationURI>PARENT-3-PROJECT_LOC/OnDiskPt/TargetPhraseCollection.cpp</locationURI>
153
+ </link>
154
+ <link>
155
+ <name>TargetPhraseCollection.h</name>
156
+ <type>1</type>
157
+ <locationURI>PARENT-3-PROJECT_LOC/OnDiskPt/TargetPhraseCollection.h</locationURI>
158
+ </link>
159
+ <link>
160
+ <name>Vocab.cpp</name>
161
+ <type>1</type>
162
+ <locationURI>PARENT-3-PROJECT_LOC/OnDiskPt/Vocab.cpp</locationURI>
163
+ </link>
164
+ <link>
165
+ <name>Vocab.h</name>
166
+ <type>1</type>
167
+ <locationURI>PARENT-3-PROJECT_LOC/OnDiskPt/Vocab.h</locationURI>
168
+ </link>
169
+ <link>
170
+ <name>Word.cpp</name>
171
+ <type>1</type>
172
+ <locationURI>PARENT-3-PROJECT_LOC/OnDiskPt/Word.cpp</locationURI>
173
+ </link>
174
+ <link>
175
+ <name>Word.h</name>
176
+ <type>1</type>
177
+ <locationURI>PARENT-3-PROJECT_LOC/OnDiskPt/Word.h</locationURI>
178
+ </link>
179
+ <link>
180
+ <name>queryOnDiskPt.cpp</name>
181
+ <type>1</type>
182
+ <locationURI>PARENT-3-PROJECT_LOC/OnDiskPt/queryOnDiskPt.cpp</locationURI>
183
+ </link>
184
+ </linkedResources>
185
+ </projectDescription>
mosesdecoder/contrib/other-builds/OnDiskPt/OnDiskPt.project ADDED
@@ -0,0 +1,140 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <CodeLite_Project Name="OnDiskPt" InternalType="Library">
3
+ <Plugins>
4
+ <Plugin Name="CMakePlugin">
5
+ <![CDATA[[{
6
+ "name": "Debug",
7
+ "enabled": false,
8
+ "buildDirectory": "build",
9
+ "sourceDirectory": "$(ProjectPath)",
10
+ "generator": "",
11
+ "buildType": "",
12
+ "arguments": [],
13
+ "parentProject": ""
14
+ }]]]>
15
+ </Plugin>
16
+ <Plugin Name="qmake">
17
+ <![CDATA[00010001N0005Debug000000000000]]>
18
+ </Plugin>
19
+ </Plugins>
20
+ <Description/>
21
+ <Dependencies/>
22
+ <VirtualDirectory Name="src"/>
23
+ <VirtualDirectory Name="include"/>
24
+ <VirtualDirectory Name="OnDiskPt">
25
+ <File Name="../../../OnDiskPt/Main.cpp"/>
26
+ <File Name="../../../OnDiskPt/Main.h"/>
27
+ <File Name="../../../OnDiskPt/OnDiskQuery.cpp"/>
28
+ <File Name="../../../OnDiskPt/OnDiskQuery.h"/>
29
+ <File Name="../../../OnDiskPt/OnDiskWrapper.cpp"/>
30
+ <File Name="../../../OnDiskPt/OnDiskWrapper.h"/>
31
+ <File Name="../../../OnDiskPt/Phrase.cpp"/>
32
+ <File Name="../../../OnDiskPt/Phrase.h"/>
33
+ <File Name="../../../OnDiskPt/PhraseNode.cpp"/>
34
+ <File Name="../../../OnDiskPt/PhraseNode.h"/>
35
+ <File Name="../../../OnDiskPt/queryOnDiskPt.cpp"/>
36
+ <File Name="../../../OnDiskPt/SourcePhrase.cpp"/>
37
+ <File Name="../../../OnDiskPt/SourcePhrase.h"/>
38
+ <File Name="../../../OnDiskPt/TargetPhrase.cpp"/>
39
+ <File Name="../../../OnDiskPt/TargetPhrase.h"/>
40
+ <File Name="../../../OnDiskPt/TargetPhraseCollection.cpp"/>
41
+ <File Name="../../../OnDiskPt/TargetPhraseCollection.h"/>
42
+ <File Name="../../../OnDiskPt/Vocab.cpp"/>
43
+ <File Name="../../../OnDiskPt/Vocab.h"/>
44
+ <File Name="../../../OnDiskPt/Word.cpp"/>
45
+ <File Name="../../../OnDiskPt/Word.h"/>
46
+ </VirtualDirectory>
47
+ <Dependencies Name="Debug"/>
48
+ <Dependencies Name="Release"/>
49
+ <Settings Type="Static Library">
50
+ <GlobalSettings>
51
+ <Compiler Options="" C_Options="" Assembler="">
52
+ <IncludePath Value="."/>
53
+ </Compiler>
54
+ <Linker Options="">
55
+ <LibraryPath Value="."/>
56
+ </Linker>
57
+ <ResourceCompiler Options=""/>
58
+ </GlobalSettings>
59
+ <Configuration Name="Debug" CompilerType="GCC" DebuggerType="LLDB Debugger" Type="Static Library" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append">
60
+ <Compiler Options="-g" C_Options="-g" Assembler="" Required="yes" PreCompiledHeader="" PCHInCommandLine="no" PCHFlags="" PCHFlagsPolicy="0">
61
+ <IncludePath Value="."/>
62
+ <IncludePath Value="../../.."/>
63
+ <IncludePath Value="../../../phrase-extract"/>
64
+ <IncludePath Value="../../../boost/include"/>
65
+ <Preprocessor Value="MAX_NUM_FACTORS=4"/>
66
+ </Compiler>
67
+ <Linker Options="" Required="yes"/>
68
+ <ResourceCompiler Options="" Required="no"/>
69
+ <General OutputFile="$(IntermediateDirectory)/lib$(ProjectName).a" IntermediateDirectory="./Debug" Command="" CommandArguments="" UseSeparateDebugArgs="no" DebugArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes" IsGUIProgram="no" IsEnabled="yes"/>
70
+ <Environment EnvVarSetName="&lt;Use Defaults&gt;" DbgSetName="&lt;Use Defaults&gt;">
71
+ <![CDATA[]]>
72
+ </Environment>
73
+ <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath="" IsExtended="yes">
74
+ <DebuggerSearchPaths/>
75
+ <PostConnectCommands/>
76
+ <StartupCommands/>
77
+ </Debugger>
78
+ <PreBuild/>
79
+ <PostBuild/>
80
+ <CustomBuild Enabled="no">
81
+ <RebuildCommand/>
82
+ <CleanCommand/>
83
+ <BuildCommand/>
84
+ <PreprocessFileCommand/>
85
+ <SingleFileCommand/>
86
+ <MakefileGenerationCommand/>
87
+ <ThirdPartyToolName/>
88
+ <WorkingDirectory/>
89
+ </CustomBuild>
90
+ <AdditionalRules>
91
+ <CustomPostBuild/>
92
+ <CustomPreBuild/>
93
+ </AdditionalRules>
94
+ <Completion EnableCpp11="no" EnableCpp14="no">
95
+ <ClangCmpFlagsC/>
96
+ <ClangCmpFlags/>
97
+ <ClangPP/>
98
+ <SearchPaths/>
99
+ </Completion>
100
+ </Configuration>
101
+ <Configuration Name="Release" CompilerType="clang( based on LLVM 3.5svn )" DebuggerType="LLDB Debugger" Type="Static Library" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append">
102
+ <Compiler Options="" C_Options="" Assembler="" Required="yes" PreCompiledHeader="" PCHInCommandLine="no" PCHFlags="" PCHFlagsPolicy="0">
103
+ <IncludePath Value="."/>
104
+ </Compiler>
105
+ <Linker Options="" Required="yes"/>
106
+ <ResourceCompiler Options="" Required="no"/>
107
+ <General OutputFile="$(IntermediateDirectory)/lib$(ProjectName).a" IntermediateDirectory="./Release" Command="" CommandArguments="" UseSeparateDebugArgs="no" DebugArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes" IsGUIProgram="no" IsEnabled="yes"/>
108
+ <Environment EnvVarSetName="&lt;Use Defaults&gt;" DbgSetName="&lt;Use Defaults&gt;">
109
+ <![CDATA[]]>
110
+ </Environment>
111
+ <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath="" IsExtended="yes">
112
+ <DebuggerSearchPaths/>
113
+ <PostConnectCommands/>
114
+ <StartupCommands/>
115
+ </Debugger>
116
+ <PreBuild/>
117
+ <PostBuild/>
118
+ <CustomBuild Enabled="no">
119
+ <RebuildCommand/>
120
+ <CleanCommand/>
121
+ <BuildCommand/>
122
+ <PreprocessFileCommand/>
123
+ <SingleFileCommand/>
124
+ <MakefileGenerationCommand/>
125
+ <ThirdPartyToolName/>
126
+ <WorkingDirectory/>
127
+ </CustomBuild>
128
+ <AdditionalRules>
129
+ <CustomPostBuild/>
130
+ <CustomPreBuild/>
131
+ </AdditionalRules>
132
+ <Completion EnableCpp11="no" EnableCpp14="no">
133
+ <ClangCmpFlagsC/>
134
+ <ClangCmpFlags/>
135
+ <ClangPP/>
136
+ <SearchPaths/>
137
+ </Completion>
138
+ </Configuration>
139
+ </Settings>
140
+ </CodeLite_Project>
mosesdecoder/contrib/other-builds/all.workspace ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <CodeLite_Workspace Name="all" Database="all.tags">
3
+ <Project Name="extract" Path="extract/extract.project" Active="No"/>
4
+ <Project Name="util" Path="util/util.project" Active="No"/>
5
+ <Project Name="extract-mixed-syntax" Path="extract-mixed-syntax/extract-mixed-syntax.project" Active="No"/>
6
+ <Project Name="lm" Path="lm/lm.project" Active="No"/>
7
+ <Project Name="OnDiskPt" Path="OnDiskPt/OnDiskPt.project" Active="No"/>
8
+ <Project Name="search" Path="search/search.project" Active="No"/>
9
+ <Project Name="moses-cmd" Path="moses-cmd/moses-cmd.project" Active="No"/>
10
+ <Project Name="score" Path="score/score.project" Active="No"/>
11
+ <Project Name="consolidate" Path="consolidate/consolidate.project" Active="No"/>
12
+ <Project Name="moses" Path="moses/moses.project" Active="No"/>
13
+ <Project Name="pruneGeneration" Path="pruneGeneration/pruneGeneration.project" Active="Yes"/>
14
+ <BuildMatrix>
15
+ <WorkspaceConfiguration Name="Debug" Selected="yes">
16
+ <Project Name="manual-label" ConfigName="Debug"/>
17
+ <Project Name="extract" ConfigName="Debug"/>
18
+ <Project Name="util" ConfigName="Debug"/>
19
+ <Project Name="extract-mixed-syntax" ConfigName="Debug"/>
20
+ <Project Name="lm" ConfigName="Debug"/>
21
+ <Project Name="OnDiskPt" ConfigName="Debug"/>
22
+ <Project Name="search" ConfigName="Debug"/>
23
+ <Project Name="moses-cmd" ConfigName="Debug"/>
24
+ <Project Name="score" ConfigName="Debug"/>
25
+ <Project Name="consolidate" ConfigName="Debug"/>
26
+ <Project Name="moses" ConfigName="Debug"/>
27
+ <Project Name="pruneGeneration" ConfigName="Debug"/>
28
+ </WorkspaceConfiguration>
29
+ <WorkspaceConfiguration Name="Release" Selected="yes">
30
+ <Project Name="manual-label" ConfigName="Release"/>
31
+ <Project Name="extract" ConfigName="Release"/>
32
+ <Project Name="util" ConfigName="Release"/>
33
+ <Project Name="extract-mixed-syntax" ConfigName="Release"/>
34
+ <Project Name="lm" ConfigName="Release"/>
35
+ <Project Name="OnDiskPt" ConfigName="Release"/>
36
+ <Project Name="search" ConfigName="Release"/>
37
+ <Project Name="moses-cmd" ConfigName="Release"/>
38
+ <Project Name="score" ConfigName="Release"/>
39
+ <Project Name="consolidate" ConfigName="Release"/>
40
+ <Project Name="moses" ConfigName="Release"/>
41
+ <Project Name="pruneGeneration" ConfigName="Release"/>
42
+ </WorkspaceConfiguration>
43
+ </BuildMatrix>
44
+ </CodeLite_Workspace>
mosesdecoder/contrib/other-builds/cmake/boost.example/CMakeLists.txt ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ cmake_minimum_required(VERSION 2.8)
2
+
3
+ find_package(Boost 1.36.0 REQUIRED COMPONENTS locale)
4
+
5
+ include_directories(${Boost_INCLUDE_DIRS})
6
+ add_executable(demo main.cpp)
7
+ target_link_libraries(demo ${Boost_LIBRARIES})
mosesdecoder/contrib/other-builds/consolidate/.cproject ADDED
@@ -0,0 +1,165 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
3
+ <storageModule moduleId="org.eclipse.cdt.core.settings">
4
+ <cconfiguration id="cdt.managedbuild.config.gnu.exe.debug.2091728208">
5
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.debug.2091728208" moduleId="org.eclipse.cdt.core.settings" name="Debug">
6
+ <externalSettings/>
7
+ <extensions>
8
+ <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
9
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
10
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
11
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
12
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
13
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
14
+ </extensions>
15
+ </storageModule>
16
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
17
+ <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.debug.2091728208" name="Debug" parent="cdt.managedbuild.config.gnu.exe.debug">
18
+ <folderInfo id="cdt.managedbuild.config.gnu.exe.debug.2091728208." name="/" resourcePath="">
19
+ <toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.69362991" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.debug">
20
+ <targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug.641760346" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/>
21
+ <builder buildPath="${workspace_loc:/consolidate}/Debug" id="cdt.managedbuild.target.gnu.builder.exe.debug.1286696537" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/>
22
+ <tool id="cdt.managedbuild.tool.gnu.archiver.base.1571215005" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
23
+ <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1626949654" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug">
24
+ <option id="gnu.cpp.compiler.exe.debug.option.optimization.level.1186248186" name="Optimization Level" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
25
+ <option id="gnu.cpp.compiler.exe.debug.option.debugging.level.1416850495" name="Debug Level" superClass="gnu.cpp.compiler.exe.debug.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
26
+ <option id="gnu.cpp.compiler.option.include.paths.534201039" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
27
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc}/../..&quot;"/>
28
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/../../boost/include&quot;"/>
29
+ </option>
30
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1468157552" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
31
+ </tool>
32
+ <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.debug.82249493" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.debug">
33
+ <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.exe.debug.option.optimization.level.83105790" name="Optimization Level" superClass="gnu.c.compiler.exe.debug.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
34
+ <option id="gnu.c.compiler.exe.debug.option.debugging.level.937329669" name="Debug Level" superClass="gnu.c.compiler.exe.debug.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.max" valueType="enumerated"/>
35
+ <option id="gnu.c.compiler.option.dialect.std.1673130461" superClass="gnu.c.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.c.compiler.dialect.c11" valueType="enumerated"/>
36
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.461173729" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
37
+ </tool>
38
+ <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.1950007837" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug"/>
39
+ <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug.110628197" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug">
40
+ <option id="gnu.cpp.link.option.libs.1393924562" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
41
+ <listOptionValue builtIn="false" value="moses"/>
42
+ <listOptionValue builtIn="false" value="search"/>
43
+ <listOptionValue builtIn="false" value="OnDiskPt"/>
44
+ <listOptionValue builtIn="false" value="lm"/>
45
+ <listOptionValue builtIn="false" value="util"/>
46
+ <listOptionValue builtIn="false" value="boost_iostreams"/>
47
+ <listOptionValue builtIn="false" value="boost_serialization"/>
48
+ <listOptionValue builtIn="false" value="boost_system"/>
49
+ <listOptionValue builtIn="false" value="boost_thread"/>
50
+ <listOptionValue builtIn="false" value="boost_filesystem"/>
51
+ <listOptionValue builtIn="false" value="boost_program_options"/>
52
+ <listOptionValue builtIn="false" value="pthread"/>
53
+ <listOptionValue builtIn="false" value="z"/>
54
+ <listOptionValue builtIn="false" value="bz2"/>
55
+ <listOptionValue builtIn="false" value="dl"/>
56
+ <listOptionValue builtIn="false" value="rt"/>
57
+ </option>
58
+ <option id="gnu.cpp.link.option.paths.1967422094" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
59
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/../../boost/lib64&quot;"/>
60
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/moses/Debug&quot;"/>
61
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/util/Debug&quot;"/>
62
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/search/Debug&quot;"/>
63
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/lm/Debug&quot;"/>
64
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/OnDiskPt/Debug&quot;"/>
65
+ <listOptionValue builtIn="false" value="/opt/local/lib"/>
66
+ </option>
67
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1093223502" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
68
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
69
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
70
+ </inputType>
71
+ </tool>
72
+ <tool id="cdt.managedbuild.tool.gnu.assembler.exe.debug.1334927727" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug">
73
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.197989377" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
74
+ </tool>
75
+ </toolChain>
76
+ </folderInfo>
77
+ <fileInfo id="cdt.managedbuild.config.gnu.exe.debug.2091728208.911524129" name="PropertiesConsolidator.cpp" rcbsApplicability="disable" resourcePath="PropertiesConsolidator.cpp" toolsToInvoke="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1626949654.741737356">
78
+ <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1626949654.741737356" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1626949654">
79
+ <option id="gnu.cpp.compiler.option.include.paths.858416673" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" valueType="includePath">
80
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/../../boost/include&quot;"/>
81
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc}/../..&quot;"/>
82
+ </option>
83
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.2042647079" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
84
+ </tool>
85
+ </fileInfo>
86
+ </configuration>
87
+ </storageModule>
88
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
89
+ </cconfiguration>
90
+ <cconfiguration id="cdt.managedbuild.config.gnu.exe.release.185559773">
91
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.release.185559773" moduleId="org.eclipse.cdt.core.settings" name="Release">
92
+ <externalSettings/>
93
+ <extensions>
94
+ <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
95
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
96
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
97
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
98
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
99
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
100
+ </extensions>
101
+ </storageModule>
102
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
103
+ <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.release.185559773" name="Release" parent="cdt.managedbuild.config.gnu.exe.release">
104
+ <folderInfo id="cdt.managedbuild.config.gnu.exe.release.185559773." name="/" resourcePath="">
105
+ <toolChain id="cdt.managedbuild.toolchain.gnu.exe.release.33298530" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.release">
106
+ <targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.release.1524270442" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.release"/>
107
+ <builder buildPath="${workspace_loc:/consolidate}/Release" id="cdt.managedbuild.target.gnu.builder.exe.release.1812036307" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.exe.release"/>
108
+ <tool id="cdt.managedbuild.tool.gnu.archiver.base.1942293389" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
109
+ <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.520681695" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release">
110
+ <option id="gnu.cpp.compiler.exe.release.option.optimization.level.649091161" name="Optimization Level" superClass="gnu.cpp.compiler.exe.release.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
111
+ <option id="gnu.cpp.compiler.exe.release.option.debugging.level.1279967053" name="Debug Level" superClass="gnu.cpp.compiler.exe.release.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
112
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.624630717" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
113
+ </tool>
114
+ <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.release.233526141" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.release">
115
+ <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.exe.release.option.optimization.level.1882834640" name="Optimization Level" superClass="gnu.c.compiler.exe.release.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
116
+ <option id="gnu.c.compiler.exe.release.option.debugging.level.1438334736" name="Debug Level" superClass="gnu.c.compiler.exe.release.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.none" valueType="enumerated"/>
117
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1338220126" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
118
+ </tool>
119
+ <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.release.2105674082" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.release"/>
120
+ <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.release.1531731895" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.release">
121
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.286541559" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
122
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
123
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
124
+ </inputType>
125
+ </tool>
126
+ <tool id="cdt.managedbuild.tool.gnu.assembler.exe.release.1075374533" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.release">
127
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.231041028" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
128
+ </tool>
129
+ </toolChain>
130
+ </folderInfo>
131
+ </configuration>
132
+ </storageModule>
133
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
134
+ </cconfiguration>
135
+ </storageModule>
136
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
137
+ <project id="consolidate.cdt.managedbuild.target.gnu.exe.1024637209" name="Executable" projectType="cdt.managedbuild.target.gnu.exe"/>
138
+ </storageModule>
139
+ <storageModule moduleId="scannerConfiguration">
140
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
141
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.2091728208;cdt.managedbuild.config.gnu.exe.debug.2091728208.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1626949654;cdt.managedbuild.tool.gnu.cpp.compiler.input.1468157552">
142
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
143
+ </scannerConfigBuildInfo>
144
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.2091728208;cdt.managedbuild.config.gnu.exe.debug.2091728208.;cdt.managedbuild.tool.gnu.c.compiler.exe.debug.82249493;cdt.managedbuild.tool.gnu.c.compiler.input.461173729">
145
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
146
+ </scannerConfigBuildInfo>
147
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.185559773;cdt.managedbuild.config.gnu.exe.release.185559773.;cdt.managedbuild.tool.gnu.c.compiler.exe.release.233526141;cdt.managedbuild.tool.gnu.c.compiler.input.1338220126">
148
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
149
+ </scannerConfigBuildInfo>
150
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.185559773;cdt.managedbuild.config.gnu.exe.release.185559773.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.520681695;cdt.managedbuild.tool.gnu.cpp.compiler.input.624630717">
151
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
152
+ </scannerConfigBuildInfo>
153
+ </storageModule>
154
+ <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
155
+ <storageModule moduleId="refreshScope" versionNumber="2">
156
+ <configuration configurationName="Release">
157
+ <resource resourceType="PROJECT" workspacePath="/consolidate"/>
158
+ </configuration>
159
+ <configuration configurationName="Debug">
160
+ <resource resourceType="PROJECT" workspacePath="/consolidate"/>
161
+ </configuration>
162
+ </storageModule>
163
+ <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
164
+ <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
165
+ </cproject>
mosesdecoder/contrib/other-builds/consolidate/.project ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <projectDescription>
3
+ <name>consolidate</name>
4
+ <comment></comment>
5
+ <projects>
6
+ <project>lm</project>
7
+ <project>moses</project>
8
+ <project>OnDiskPt</project>
9
+ <project>search</project>
10
+ <project>util</project>
11
+ </projects>
12
+ <buildSpec>
13
+ <buildCommand>
14
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
15
+ <triggers>clean,full,incremental,</triggers>
16
+ <arguments>
17
+ </arguments>
18
+ </buildCommand>
19
+ <buildCommand>
20
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
21
+ <triggers>full,incremental,</triggers>
22
+ <arguments>
23
+ </arguments>
24
+ </buildCommand>
25
+ </buildSpec>
26
+ <natures>
27
+ <nature>org.eclipse.cdt.core.cnature</nature>
28
+ <nature>org.eclipse.cdt.core.ccnature</nature>
29
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
30
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
31
+ </natures>
32
+ <linkedResources>
33
+ <link>
34
+ <name>InputFileStream.cpp</name>
35
+ <type>1</type>
36
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/InputFileStream.cpp</locationURI>
37
+ </link>
38
+ <link>
39
+ <name>InputFileStream.h</name>
40
+ <type>1</type>
41
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/InputFileStream.h</locationURI>
42
+ </link>
43
+ <link>
44
+ <name>OutputFileStream.cpp</name>
45
+ <type>1</type>
46
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/OutputFileStream.cpp</locationURI>
47
+ </link>
48
+ <link>
49
+ <name>OutputFileStream.h</name>
50
+ <type>1</type>
51
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/OutputFileStream.h</locationURI>
52
+ </link>
53
+ <link>
54
+ <name>PropertiesConsolidator.cpp</name>
55
+ <type>1</type>
56
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/PropertiesConsolidator.cpp</locationURI>
57
+ </link>
58
+ <link>
59
+ <name>PropertiesConsolidator.h</name>
60
+ <type>1</type>
61
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/PropertiesConsolidator.h</locationURI>
62
+ </link>
63
+ <link>
64
+ <name>consolidate-main.cpp</name>
65
+ <type>1</type>
66
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/consolidate-main.cpp</locationURI>
67
+ </link>
68
+ <link>
69
+ <name>tables-core.cpp</name>
70
+ <type>1</type>
71
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/tables-core.cpp</locationURI>
72
+ </link>
73
+ <link>
74
+ <name>tables-core.h</name>
75
+ <type>1</type>
76
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/tables-core.h</locationURI>
77
+ </link>
78
+ </linkedResources>
79
+ </projectDescription>
mosesdecoder/contrib/other-builds/consolidate/consolidate.project ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <CodeLite_Project Name="consolidate" InternalType="Console">
3
+ <Description/>
4
+ <Dependencies/>
5
+ <VirtualDirectory Name="src">
6
+ <File Name="../../../phrase-extract/consolidate-direct-main.cpp"/>
7
+ <File Name="../../../phrase-extract/InputFileStream.cpp"/>
8
+ <File Name="../../../phrase-extract/InputFileStream.h"/>
9
+ <File Name="../../../phrase-extract/OutputFileStream.cpp"/>
10
+ <File Name="../../../phrase-extract/OutputFileStream.h"/>
11
+ <File Name="../../../phrase-extract/PropertiesConsolidator.cpp"/>
12
+ <File Name="../../../phrase-extract/PropertiesConsolidator.h"/>
13
+ <File Name="../../../phrase-extract/tables-core.cpp"/>
14
+ <File Name="../../../phrase-extract/tables-core.h"/>
15
+ </VirtualDirectory>
16
+ <Settings Type="Executable">
17
+ <GlobalSettings>
18
+ <Compiler Options="" C_Options="" Assembler="">
19
+ <IncludePath Value="."/>
20
+ </Compiler>
21
+ <Linker Options="">
22
+ <LibraryPath Value="."/>
23
+ </Linker>
24
+ <ResourceCompiler Options=""/>
25
+ </GlobalSettings>
26
+ <Configuration Name="Debug" CompilerType="clang( based on LLVM 3.5svn )" DebuggerType="LLDB Debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append">
27
+ <Compiler Options="-g;-O0;-Wall" C_Options="-g;-O0;-Wall" Assembler="" Required="yes" PreCompiledHeader="" PCHInCommandLine="no" PCHFlags="" PCHFlagsPolicy="0">
28
+ <IncludePath Value="."/>
29
+ <IncludePath Value="../../.."/>
30
+ <IncludePath Value="../../../phrase-extract"/>
31
+ <IncludePath Value="../../../boost/include"/>
32
+ </Compiler>
33
+ <Linker Options="" Required="yes">
34
+ <LibraryPath Value="../../../boost/lib64"/>
35
+ <LibraryPath Value="../../../contrib/other-builds/lm/Debug"/>
36
+ <LibraryPath Value="../../../contrib/other-builds/moses/Debug"/>
37
+ <LibraryPath Value="../../../contrib/other-builds/OnDiskPt/Debug"/>
38
+ <LibraryPath Value="../../../contrib/other-builds/search/Debug"/>
39
+ <LibraryPath Value="../../../contrib/other-builds/util/Debug"/>
40
+ <Library Value="moses"/>
41
+ <Library Value="search"/>
42
+ <Library Value="OnDiskPt"/>
43
+ <Library Value="lm"/>
44
+ <Library Value="util"/>
45
+ <Library Value="boost_iostreams"/>
46
+ <Library Value="boost_serialization"/>
47
+ <Library Value="boost_system"/>
48
+ <Library Value="boost_thread"/>
49
+ <Library Value="boost_filesystem"/>
50
+ <Library Value="boost_program_options"/>
51
+ <Library Value="pthread"/>
52
+ <Library Value="z"/>
53
+ <Library Value="bz2"/>
54
+ <Library Value="dl"/>
55
+ <Library Value="rt"/>
56
+ </Linker>
57
+ <ResourceCompiler Options="" Required="no"/>
58
+ <General OutputFile="$(IntermediateDirectory)/$(ProjectName)" IntermediateDirectory="./Debug" Command="./$(ProjectName)" CommandArguments="" UseSeparateDebugArgs="no" DebugArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes" IsGUIProgram="no" IsEnabled="yes"/>
59
+ <Environment EnvVarSetName="&lt;Use Defaults&gt;" DbgSetName="&lt;Use Defaults&gt;">
60
+ <![CDATA[]]>
61
+ </Environment>
62
+ <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath="" IsExtended="no">
63
+ <DebuggerSearchPaths/>
64
+ <PostConnectCommands/>
65
+ <StartupCommands/>
66
+ </Debugger>
67
+ <PreBuild/>
68
+ <PostBuild/>
69
+ <CustomBuild Enabled="no">
70
+ <RebuildCommand/>
71
+ <CleanCommand/>
72
+ <BuildCommand/>
73
+ <PreprocessFileCommand/>
74
+ <SingleFileCommand/>
75
+ <MakefileGenerationCommand/>
76
+ <ThirdPartyToolName>None</ThirdPartyToolName>
77
+ <WorkingDirectory/>
78
+ </CustomBuild>
79
+ <AdditionalRules>
80
+ <CustomPostBuild/>
81
+ <CustomPreBuild/>
82
+ </AdditionalRules>
83
+ <Completion EnableCpp11="no">
84
+ <ClangCmpFlagsC/>
85
+ <ClangCmpFlags/>
86
+ <ClangPP/>
87
+ <SearchPaths/>
88
+ </Completion>
89
+ </Configuration>
90
+ <Configuration Name="Release" CompilerType="clang( based on LLVM 3.5svn )" DebuggerType="LLDB Debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append">
91
+ <Compiler Options="-O2;-Wall" C_Options="-O2;-Wall" Assembler="" Required="yes" PreCompiledHeader="" PCHInCommandLine="no" PCHFlags="" PCHFlagsPolicy="0">
92
+ <IncludePath Value="."/>
93
+ <Preprocessor Value="NDEBUG"/>
94
+ </Compiler>
95
+ <Linker Options="" Required="yes"/>
96
+ <ResourceCompiler Options="" Required="no"/>
97
+ <General OutputFile="$(IntermediateDirectory)/$(ProjectName)" IntermediateDirectory="./Release" Command="./$(ProjectName)" CommandArguments="" UseSeparateDebugArgs="no" DebugArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes" IsGUIProgram="no" IsEnabled="yes"/>
98
+ <Environment EnvVarSetName="&lt;Use Defaults&gt;" DbgSetName="&lt;Use Defaults&gt;">
99
+ <![CDATA[]]>
100
+ </Environment>
101
+ <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath="" IsExtended="no">
102
+ <DebuggerSearchPaths/>
103
+ <PostConnectCommands/>
104
+ <StartupCommands/>
105
+ </Debugger>
106
+ <PreBuild/>
107
+ <PostBuild/>
108
+ <CustomBuild Enabled="no">
109
+ <RebuildCommand/>
110
+ <CleanCommand/>
111
+ <BuildCommand/>
112
+ <PreprocessFileCommand/>
113
+ <SingleFileCommand/>
114
+ <MakefileGenerationCommand/>
115
+ <ThirdPartyToolName>None</ThirdPartyToolName>
116
+ <WorkingDirectory/>
117
+ </CustomBuild>
118
+ <AdditionalRules>
119
+ <CustomPostBuild/>
120
+ <CustomPreBuild/>
121
+ </AdditionalRules>
122
+ <Completion EnableCpp11="no">
123
+ <ClangCmpFlagsC/>
124
+ <ClangCmpFlags/>
125
+ <ClangPP/>
126
+ <SearchPaths/>
127
+ </Completion>
128
+ </Configuration>
129
+ </Settings>
130
+ <Dependencies Name="Debug">
131
+ <Project Name="util"/>
132
+ <Project Name="lm"/>
133
+ <Project Name="search"/>
134
+ <Project Name="OnDiskPt"/>
135
+ </Dependencies>
136
+ <Dependencies Name="Release"/>
137
+ </CodeLite_Project>
mosesdecoder/contrib/other-builds/extractor/.cproject ADDED
@@ -0,0 +1,144 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
3
+ <storageModule moduleId="org.eclipse.cdt.core.settings">
4
+ <cconfiguration id="cdt.managedbuild.config.gnu.exe.debug.1133345948">
5
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.debug.1133345948" moduleId="org.eclipse.cdt.core.settings" name="Debug">
6
+ <externalSettings/>
7
+ <extensions>
8
+ <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
9
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
10
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
11
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
12
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
13
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
14
+ </extensions>
15
+ </storageModule>
16
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
17
+ <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.debug.1133345948" name="Debug" parent="cdt.managedbuild.config.gnu.exe.debug">
18
+ <folderInfo id="cdt.managedbuild.config.gnu.exe.debug.1133345948." name="/" resourcePath="">
19
+ <toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.1405862229" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.debug">
20
+ <targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug.605722566" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/>
21
+ <builder buildPath="${workspace_loc:/extractor/Debug}" id="cdt.managedbuild.target.gnu.builder.exe.debug.238577912" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/>
22
+ <tool id="cdt.managedbuild.tool.gnu.archiver.base.1956867596" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
23
+ <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1512268277" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug">
24
+ <option id="gnu.cpp.compiler.exe.debug.option.optimization.level.2143789149" name="Optimization Level" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
25
+ <option id="gnu.cpp.compiler.exe.debug.option.debugging.level.285958391" name="Debug Level" superClass="gnu.cpp.compiler.exe.debug.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
26
+ <option id="gnu.cpp.compiler.option.include.paths.966722418" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
27
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc}/../../boost/include&quot;"/>
28
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc}/../../&quot;"/>
29
+ </option>
30
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1839105433" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
31
+ </tool>
32
+ <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.debug.554846982" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.debug">
33
+ <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.exe.debug.option.optimization.level.538786560" name="Optimization Level" superClass="gnu.c.compiler.exe.debug.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
34
+ <option id="gnu.c.compiler.exe.debug.option.debugging.level.2125704556" name="Debug Level" superClass="gnu.c.compiler.exe.debug.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.max" valueType="enumerated"/>
35
+ <option id="gnu.c.compiler.option.dialect.std.511347863" superClass="gnu.c.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.c.compiler.dialect.c11" valueType="enumerated"/>
36
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.100176353" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
37
+ </tool>
38
+ <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.1048685119" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug"/>
39
+ <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug.1295498016" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug">
40
+ <option id="gnu.cpp.link.option.paths.338150127" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
41
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/../../boost/lib64&quot;"/>
42
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/mert_lib/Debug&quot;"/>
43
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/util/Debug&quot;"/>
44
+ <listOptionValue builtIn="false" value="/opt/local/lib"/>
45
+ </option>
46
+ <option id="gnu.cpp.link.option.libs.585257079" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
47
+ <listOptionValue builtIn="false" value="mert_lib"/>
48
+ <listOptionValue builtIn="false" value="util"/>
49
+ <listOptionValue builtIn="false" value="boost_system"/>
50
+ <listOptionValue builtIn="false" value="boost_thread"/>
51
+ <listOptionValue builtIn="false" value="z"/>
52
+ <listOptionValue builtIn="false" value="pthread"/>
53
+ <listOptionValue builtIn="false" value="rt"/>
54
+ </option>
55
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.656319745" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
56
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
57
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
58
+ </inputType>
59
+ </tool>
60
+ <tool id="cdt.managedbuild.tool.gnu.assembler.exe.debug.1361889787" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug">
61
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.955209559" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
62
+ </tool>
63
+ </toolChain>
64
+ </folderInfo>
65
+ </configuration>
66
+ </storageModule>
67
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
68
+ </cconfiguration>
69
+ <cconfiguration id="cdt.managedbuild.config.gnu.exe.release.1385955159">
70
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.release.1385955159" moduleId="org.eclipse.cdt.core.settings" name="Release">
71
+ <externalSettings/>
72
+ <extensions>
73
+ <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
74
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
75
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
76
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
77
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
78
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
79
+ </extensions>
80
+ </storageModule>
81
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
82
+ <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.release.1385955159" name="Release" parent="cdt.managedbuild.config.gnu.exe.release">
83
+ <folderInfo id="cdt.managedbuild.config.gnu.exe.release.1385955159." name="/" resourcePath="">
84
+ <toolChain id="cdt.managedbuild.toolchain.gnu.exe.release.887500021" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.release">
85
+ <targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.release.1965146498" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.release"/>
86
+ <builder buildPath="${workspace_loc:/extractor/Release}" id="cdt.managedbuild.target.gnu.builder.exe.release.1583162909" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.exe.release"/>
87
+ <tool id="cdt.managedbuild.tool.gnu.archiver.base.141140356" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
88
+ <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.2048722912" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release">
89
+ <option id="gnu.cpp.compiler.exe.release.option.optimization.level.1971624451" name="Optimization Level" superClass="gnu.cpp.compiler.exe.release.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
90
+ <option id="gnu.cpp.compiler.exe.release.option.debugging.level.582466413" name="Debug Level" superClass="gnu.cpp.compiler.exe.release.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
91
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1466533418" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
92
+ </tool>
93
+ <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.release.328232610" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.release">
94
+ <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.exe.release.option.optimization.level.447164665" name="Optimization Level" superClass="gnu.c.compiler.exe.release.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
95
+ <option id="gnu.c.compiler.exe.release.option.debugging.level.28848417" name="Debug Level" superClass="gnu.c.compiler.exe.release.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.none" valueType="enumerated"/>
96
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1088446293" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
97
+ </tool>
98
+ <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.release.1134906841" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.release"/>
99
+ <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.release.450257401" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.release">
100
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.813260151" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
101
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
102
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
103
+ </inputType>
104
+ </tool>
105
+ <tool id="cdt.managedbuild.tool.gnu.assembler.exe.release.205332755" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.release">
106
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.337244768" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
107
+ </tool>
108
+ </toolChain>
109
+ </folderInfo>
110
+ </configuration>
111
+ </storageModule>
112
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
113
+ </cconfiguration>
114
+ </storageModule>
115
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
116
+ <project id="extractor.cdt.managedbuild.target.gnu.exe.1336860963" name="Executable" projectType="cdt.managedbuild.target.gnu.exe"/>
117
+ </storageModule>
118
+ <storageModule moduleId="scannerConfiguration">
119
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
120
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.1385955159;cdt.managedbuild.config.gnu.exe.release.1385955159.;cdt.managedbuild.tool.gnu.c.compiler.exe.release.328232610;cdt.managedbuild.tool.gnu.c.compiler.input.1088446293">
121
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
122
+ </scannerConfigBuildInfo>
123
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.1133345948;cdt.managedbuild.config.gnu.exe.debug.1133345948.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1512268277;cdt.managedbuild.tool.gnu.cpp.compiler.input.1839105433">
124
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
125
+ </scannerConfigBuildInfo>
126
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.1385955159;cdt.managedbuild.config.gnu.exe.release.1385955159.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.2048722912;cdt.managedbuild.tool.gnu.cpp.compiler.input.1466533418">
127
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
128
+ </scannerConfigBuildInfo>
129
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.1133345948;cdt.managedbuild.config.gnu.exe.debug.1133345948.;cdt.managedbuild.tool.gnu.c.compiler.exe.debug.554846982;cdt.managedbuild.tool.gnu.c.compiler.input.100176353">
130
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
131
+ </scannerConfigBuildInfo>
132
+ </storageModule>
133
+ <storageModule moduleId="refreshScope" versionNumber="2">
134
+ <configuration configurationName="Release">
135
+ <resource resourceType="PROJECT" workspacePath="/extractor"/>
136
+ </configuration>
137
+ <configuration configurationName="Debug">
138
+ <resource resourceType="PROJECT" workspacePath="/extractor"/>
139
+ </configuration>
140
+ </storageModule>
141
+ <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
142
+ <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
143
+ <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
144
+ </cproject>
mosesdecoder/contrib/other-builds/extractor/.project ADDED
@@ -0,0 +1,607 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <projectDescription>
3
+ <name>extractor</name>
4
+ <comment></comment>
5
+ <projects>
6
+ <project>mert_lib</project>
7
+ <project>util</project>
8
+ </projects>
9
+ <buildSpec>
10
+ <buildCommand>
11
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
12
+ <triggers>clean,full,incremental,</triggers>
13
+ <arguments>
14
+ <dictionary>
15
+ <key>?name?</key>
16
+ <value></value>
17
+ </dictionary>
18
+ <dictionary>
19
+ <key>org.eclipse.cdt.make.core.append_environment</key>
20
+ <value>true</value>
21
+ </dictionary>
22
+ <dictionary>
23
+ <key>org.eclipse.cdt.make.core.autoBuildTarget</key>
24
+ <value>all</value>
25
+ </dictionary>
26
+ <dictionary>
27
+ <key>org.eclipse.cdt.make.core.buildArguments</key>
28
+ <value></value>
29
+ </dictionary>
30
+ <dictionary>
31
+ <key>org.eclipse.cdt.make.core.buildCommand</key>
32
+ <value>make</value>
33
+ </dictionary>
34
+ <dictionary>
35
+ <key>org.eclipse.cdt.make.core.buildLocation</key>
36
+ <value>${workspace_loc:/extractor/Debug}</value>
37
+ </dictionary>
38
+ <dictionary>
39
+ <key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
40
+ <value>clean</value>
41
+ </dictionary>
42
+ <dictionary>
43
+ <key>org.eclipse.cdt.make.core.contents</key>
44
+ <value>org.eclipse.cdt.make.core.activeConfigSettings</value>
45
+ </dictionary>
46
+ <dictionary>
47
+ <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
48
+ <value>false</value>
49
+ </dictionary>
50
+ <dictionary>
51
+ <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
52
+ <value>true</value>
53
+ </dictionary>
54
+ <dictionary>
55
+ <key>org.eclipse.cdt.make.core.enableFullBuild</key>
56
+ <value>true</value>
57
+ </dictionary>
58
+ <dictionary>
59
+ <key>org.eclipse.cdt.make.core.fullBuildTarget</key>
60
+ <value>all</value>
61
+ </dictionary>
62
+ <dictionary>
63
+ <key>org.eclipse.cdt.make.core.stopOnError</key>
64
+ <value>true</value>
65
+ </dictionary>
66
+ <dictionary>
67
+ <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
68
+ <value>true</value>
69
+ </dictionary>
70
+ </arguments>
71
+ </buildCommand>
72
+ <buildCommand>
73
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
74
+ <triggers>full,incremental,</triggers>
75
+ <arguments>
76
+ </arguments>
77
+ </buildCommand>
78
+ </buildSpec>
79
+ <natures>
80
+ <nature>org.eclipse.cdt.core.cnature</nature>
81
+ <nature>org.eclipse.cdt.core.ccnature</nature>
82
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
83
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
84
+ </natures>
85
+ <linkedResources>
86
+ <link>
87
+ <name>InternalTree.cpp</name>
88
+ <type>1</type>
89
+ <locationURI>PARENT-3-PROJECT_LOC/mert/InternalTree.cpp</locationURI>
90
+ </link>
91
+ <link>
92
+ <name>InternalTree.h</name>
93
+ <type>1</type>
94
+ <locationURI>PARENT-3-PROJECT_LOC/mert/InternalTree.h</locationURI>
95
+ </link>
96
+ <link>
97
+ <name>bin</name>
98
+ <type>2</type>
99
+ <locationURI>virtual:/virtual</locationURI>
100
+ </link>
101
+ <link>
102
+ <name>extractor.cpp</name>
103
+ <type>1</type>
104
+ <locationURI>PARENT-3-PROJECT_LOC/mert/extractor.cpp</locationURI>
105
+ </link>
106
+ <link>
107
+ <name>bin/gcc-4.8</name>
108
+ <type>2</type>
109
+ <locationURI>virtual:/virtual</locationURI>
110
+ </link>
111
+ <link>
112
+ <name>bin/gcc-4.8/release</name>
113
+ <type>2</type>
114
+ <locationURI>virtual:/virtual</locationURI>
115
+ </link>
116
+ <link>
117
+ <name>bin/gcc-4.8/release/debug-symbols-on</name>
118
+ <type>2</type>
119
+ <locationURI>virtual:/virtual</locationURI>
120
+ </link>
121
+ <link>
122
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static</name>
123
+ <type>2</type>
124
+ <locationURI>virtual:/virtual</locationURI>
125
+ </link>
126
+ <link>
127
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi</name>
128
+ <type>2</type>
129
+ <locationURI>virtual:/virtual</locationURI>
130
+ </link>
131
+ <link>
132
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/BleuDocScorer.o</name>
133
+ <type>1</type>
134
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/BleuDocScorer.o</locationURI>
135
+ </link>
136
+ <link>
137
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/BleuScorer.o</name>
138
+ <type>1</type>
139
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/BleuScorer.o</locationURI>
140
+ </link>
141
+ <link>
142
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/BleuScorerTest.o</name>
143
+ <type>1</type>
144
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/BleuScorerTest.o</locationURI>
145
+ </link>
146
+ <link>
147
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/CderScorer.o</name>
148
+ <type>1</type>
149
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/CderScorer.o</locationURI>
150
+ </link>
151
+ <link>
152
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/Data.o</name>
153
+ <type>1</type>
154
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/Data.o</locationURI>
155
+ </link>
156
+ <link>
157
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/DataTest.o</name>
158
+ <type>1</type>
159
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/DataTest.o</locationURI>
160
+ </link>
161
+ <link>
162
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/FeatureArray.o</name>
163
+ <type>1</type>
164
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/FeatureArray.o</locationURI>
165
+ </link>
166
+ <link>
167
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/FeatureData.o</name>
168
+ <type>1</type>
169
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/FeatureData.o</locationURI>
170
+ </link>
171
+ <link>
172
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/FeatureDataIterator.o</name>
173
+ <type>1</type>
174
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/FeatureDataIterator.o</locationURI>
175
+ </link>
176
+ <link>
177
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/FeatureDataTest.o</name>
178
+ <type>1</type>
179
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/FeatureDataTest.o</locationURI>
180
+ </link>
181
+ <link>
182
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/FeatureStats.o</name>
183
+ <type>1</type>
184
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/FeatureStats.o</locationURI>
185
+ </link>
186
+ <link>
187
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/FileStream.o</name>
188
+ <type>1</type>
189
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/FileStream.o</locationURI>
190
+ </link>
191
+ <link>
192
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/GzFileBuf.o</name>
193
+ <type>1</type>
194
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/GzFileBuf.o</locationURI>
195
+ </link>
196
+ <link>
197
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/HypPackEnumerator.o</name>
198
+ <type>1</type>
199
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/HypPackEnumerator.o</locationURI>
200
+ </link>
201
+ <link>
202
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/InterpolatedScorer.o</name>
203
+ <type>1</type>
204
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/InterpolatedScorer.o</locationURI>
205
+ </link>
206
+ <link>
207
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/MeteorScorer.o</name>
208
+ <type>1</type>
209
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/MeteorScorer.o</locationURI>
210
+ </link>
211
+ <link>
212
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/MiraFeatureVector.o</name>
213
+ <type>1</type>
214
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/MiraFeatureVector.o</locationURI>
215
+ </link>
216
+ <link>
217
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/MiraWeightVector.o</name>
218
+ <type>1</type>
219
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/MiraWeightVector.o</locationURI>
220
+ </link>
221
+ <link>
222
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/NgramTest.o</name>
223
+ <type>1</type>
224
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/NgramTest.o</locationURI>
225
+ </link>
226
+ <link>
227
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/Optimizer.o</name>
228
+ <type>1</type>
229
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/Optimizer.o</locationURI>
230
+ </link>
231
+ <link>
232
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/OptimizerFactory.o</name>
233
+ <type>1</type>
234
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/OptimizerFactory.o</locationURI>
235
+ </link>
236
+ <link>
237
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/OptimizerFactoryTest.o</name>
238
+ <type>1</type>
239
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/OptimizerFactoryTest.o</locationURI>
240
+ </link>
241
+ <link>
242
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/PerScorer.o</name>
243
+ <type>1</type>
244
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/PerScorer.o</locationURI>
245
+ </link>
246
+ <link>
247
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/Permutation.o</name>
248
+ <type>1</type>
249
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/Permutation.o</locationURI>
250
+ </link>
251
+ <link>
252
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/PermutationScorer.o</name>
253
+ <type>1</type>
254
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/PermutationScorer.o</locationURI>
255
+ </link>
256
+ <link>
257
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/Point.o</name>
258
+ <type>1</type>
259
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/Point.o</locationURI>
260
+ </link>
261
+ <link>
262
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/PointTest.o</name>
263
+ <type>1</type>
264
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/PointTest.o</locationURI>
265
+ </link>
266
+ <link>
267
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/PreProcessFilter.o</name>
268
+ <type>1</type>
269
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/PreProcessFilter.o</locationURI>
270
+ </link>
271
+ <link>
272
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/ReferenceTest.o</name>
273
+ <type>1</type>
274
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/ReferenceTest.o</locationURI>
275
+ </link>
276
+ <link>
277
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/ScoreArray.o</name>
278
+ <type>1</type>
279
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/ScoreArray.o</locationURI>
280
+ </link>
281
+ <link>
282
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/ScoreData.o</name>
283
+ <type>1</type>
284
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/ScoreData.o</locationURI>
285
+ </link>
286
+ <link>
287
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/ScoreDataIterator.o</name>
288
+ <type>1</type>
289
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/ScoreDataIterator.o</locationURI>
290
+ </link>
291
+ <link>
292
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/ScoreStats.o</name>
293
+ <type>1</type>
294
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/ScoreStats.o</locationURI>
295
+ </link>
296
+ <link>
297
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/Scorer.o</name>
298
+ <type>1</type>
299
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/Scorer.o</locationURI>
300
+ </link>
301
+ <link>
302
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/ScorerFactory.o</name>
303
+ <type>1</type>
304
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/ScorerFactory.o</locationURI>
305
+ </link>
306
+ <link>
307
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/SemposOverlapping.o</name>
308
+ <type>1</type>
309
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/SemposOverlapping.o</locationURI>
310
+ </link>
311
+ <link>
312
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/SemposScorer.o</name>
313
+ <type>1</type>
314
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/SemposScorer.o</locationURI>
315
+ </link>
316
+ <link>
317
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/SentenceLevelScorer.o</name>
318
+ <type>1</type>
319
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/SentenceLevelScorer.o</locationURI>
320
+ </link>
321
+ <link>
322
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/SingletonTest.o</name>
323
+ <type>1</type>
324
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/SingletonTest.o</locationURI>
325
+ </link>
326
+ <link>
327
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/StatisticsBasedScorer.o</name>
328
+ <type>1</type>
329
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/StatisticsBasedScorer.o</locationURI>
330
+ </link>
331
+ <link>
332
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER</name>
333
+ <type>2</type>
334
+ <locationURI>virtual:/virtual</locationURI>
335
+ </link>
336
+ <link>
337
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TerScorer.o</name>
338
+ <type>1</type>
339
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TerScorer.o</locationURI>
340
+ </link>
341
+ <link>
342
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/ThreadPool.o</name>
343
+ <type>1</type>
344
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/ThreadPool.o</locationURI>
345
+ </link>
346
+ <link>
347
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/Timer.o</name>
348
+ <type>1</type>
349
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/Timer.o</locationURI>
350
+ </link>
351
+ <link>
352
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TimerTest.o</name>
353
+ <type>1</type>
354
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TimerTest.o</locationURI>
355
+ </link>
356
+ <link>
357
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/Util.o</name>
358
+ <type>1</type>
359
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/Util.o</locationURI>
360
+ </link>
361
+ <link>
362
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/UtilTest.o</name>
363
+ <type>1</type>
364
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/UtilTest.o</locationURI>
365
+ </link>
366
+ <link>
367
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/Vocabulary.o</name>
368
+ <type>1</type>
369
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/Vocabulary.o</locationURI>
370
+ </link>
371
+ <link>
372
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/VocabularyTest.o</name>
373
+ <type>1</type>
374
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/VocabularyTest.o</locationURI>
375
+ </link>
376
+ <link>
377
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/bleu_scorer_test</name>
378
+ <type>1</type>
379
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/bleu_scorer_test</locationURI>
380
+ </link>
381
+ <link>
382
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/bleu_scorer_test.passed</name>
383
+ <type>1</type>
384
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/bleu_scorer_test.passed</locationURI>
385
+ </link>
386
+ <link>
387
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/data_test</name>
388
+ <type>1</type>
389
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/data_test</locationURI>
390
+ </link>
391
+ <link>
392
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/data_test.passed</name>
393
+ <type>1</type>
394
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/data_test.passed</locationURI>
395
+ </link>
396
+ <link>
397
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/evaluator</name>
398
+ <type>1</type>
399
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/evaluator</locationURI>
400
+ </link>
401
+ <link>
402
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/evaluator.o</name>
403
+ <type>1</type>
404
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/evaluator.o</locationURI>
405
+ </link>
406
+ <link>
407
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/extractor</name>
408
+ <type>1</type>
409
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/extractor</locationURI>
410
+ </link>
411
+ <link>
412
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/extractor.o</name>
413
+ <type>1</type>
414
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/extractor.o</locationURI>
415
+ </link>
416
+ <link>
417
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/feature_data_test</name>
418
+ <type>1</type>
419
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/feature_data_test</locationURI>
420
+ </link>
421
+ <link>
422
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/feature_data_test.passed</name>
423
+ <type>1</type>
424
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/feature_data_test.passed</locationURI>
425
+ </link>
426
+ <link>
427
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/kbmira</name>
428
+ <type>1</type>
429
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/kbmira</locationURI>
430
+ </link>
431
+ <link>
432
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/kbmira.o</name>
433
+ <type>1</type>
434
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/kbmira.o</locationURI>
435
+ </link>
436
+ <link>
437
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/libmert_lib.a</name>
438
+ <type>1</type>
439
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/libmert_lib.a</locationURI>
440
+ </link>
441
+ <link>
442
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/mert</name>
443
+ <type>1</type>
444
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/mert</locationURI>
445
+ </link>
446
+ <link>
447
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/mert.o</name>
448
+ <type>1</type>
449
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/mert.o</locationURI>
450
+ </link>
451
+ <link>
452
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/ngram_test</name>
453
+ <type>1</type>
454
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/ngram_test</locationURI>
455
+ </link>
456
+ <link>
457
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/ngram_test.passed</name>
458
+ <type>1</type>
459
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/ngram_test.passed</locationURI>
460
+ </link>
461
+ <link>
462
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/optimizer_factory_test</name>
463
+ <type>1</type>
464
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/optimizer_factory_test</locationURI>
465
+ </link>
466
+ <link>
467
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/optimizer_factory_test.passed</name>
468
+ <type>1</type>
469
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/optimizer_factory_test.passed</locationURI>
470
+ </link>
471
+ <link>
472
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/point_test</name>
473
+ <type>1</type>
474
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/point_test</locationURI>
475
+ </link>
476
+ <link>
477
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/point_test.passed</name>
478
+ <type>1</type>
479
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/point_test.passed</locationURI>
480
+ </link>
481
+ <link>
482
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/pro</name>
483
+ <type>1</type>
484
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/pro</locationURI>
485
+ </link>
486
+ <link>
487
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/pro.o</name>
488
+ <type>1</type>
489
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/pro.o</locationURI>
490
+ </link>
491
+ <link>
492
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/reference_test</name>
493
+ <type>1</type>
494
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/reference_test</locationURI>
495
+ </link>
496
+ <link>
497
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/reference_test.passed</name>
498
+ <type>1</type>
499
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/reference_test.passed</locationURI>
500
+ </link>
501
+ <link>
502
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/sentence-bleu</name>
503
+ <type>1</type>
504
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/sentence-bleu</locationURI>
505
+ </link>
506
+ <link>
507
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/sentence-bleu.o</name>
508
+ <type>1</type>
509
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/sentence-bleu.o</locationURI>
510
+ </link>
511
+ <link>
512
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/singleton_test</name>
513
+ <type>1</type>
514
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/singleton_test</locationURI>
515
+ </link>
516
+ <link>
517
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/singleton_test.passed</name>
518
+ <type>1</type>
519
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/singleton_test.passed</locationURI>
520
+ </link>
521
+ <link>
522
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/timer_test</name>
523
+ <type>1</type>
524
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/timer_test</locationURI>
525
+ </link>
526
+ <link>
527
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/timer_test.passed</name>
528
+ <type>1</type>
529
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/timer_test.passed</locationURI>
530
+ </link>
531
+ <link>
532
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/util_test</name>
533
+ <type>1</type>
534
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/util_test</locationURI>
535
+ </link>
536
+ <link>
537
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/util_test.passed</name>
538
+ <type>1</type>
539
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/util_test.passed</locationURI>
540
+ </link>
541
+ <link>
542
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/vocabulary_test</name>
543
+ <type>1</type>
544
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/vocabulary_test</locationURI>
545
+ </link>
546
+ <link>
547
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/vocabulary_test.passed</name>
548
+ <type>1</type>
549
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/vocabulary_test.passed</locationURI>
550
+ </link>
551
+ <link>
552
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER/alignmentStruct.o</name>
553
+ <type>1</type>
554
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER/alignmentStruct.o</locationURI>
555
+ </link>
556
+ <link>
557
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER/hashMap.o</name>
558
+ <type>1</type>
559
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER/hashMap.o</locationURI>
560
+ </link>
561
+ <link>
562
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER/hashMapInfos.o</name>
563
+ <type>1</type>
564
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER/hashMapInfos.o</locationURI>
565
+ </link>
566
+ <link>
567
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER/hashMapStringInfos.o</name>
568
+ <type>1</type>
569
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER/hashMapStringInfos.o</locationURI>
570
+ </link>
571
+ <link>
572
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER/infosHasher.o</name>
573
+ <type>1</type>
574
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER/infosHasher.o</locationURI>
575
+ </link>
576
+ <link>
577
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER/stringHasher.o</name>
578
+ <type>1</type>
579
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER/stringHasher.o</locationURI>
580
+ </link>
581
+ <link>
582
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER/stringInfosHasher.o</name>
583
+ <type>1</type>
584
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER/stringInfosHasher.o</locationURI>
585
+ </link>
586
+ <link>
587
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER/terAlignment.o</name>
588
+ <type>1</type>
589
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER/terAlignment.o</locationURI>
590
+ </link>
591
+ <link>
592
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER/terShift.o</name>
593
+ <type>1</type>
594
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER/terShift.o</locationURI>
595
+ </link>
596
+ <link>
597
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER/tercalc.o</name>
598
+ <type>1</type>
599
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER/tercalc.o</locationURI>
600
+ </link>
601
+ <link>
602
+ <name>bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER/tools.o</name>
603
+ <type>1</type>
604
+ <locationURI>PARENT-3-PROJECT_LOC/mert/bin/gcc-4.8/release/debug-symbols-on/link-static/threading-multi/TER/tools.o</locationURI>
605
+ </link>
606
+ </linkedResources>
607
+ </projectDescription>
mosesdecoder/contrib/other-builds/lm/lm.project ADDED
@@ -0,0 +1,140 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <CodeLite_Project Name="lm" InternalType="Library">
3
+ <Plugins>
4
+ <Plugin Name="CMakePlugin">
5
+ <![CDATA[[{
6
+ "name": "Debug",
7
+ "enabled": false,
8
+ "buildDirectory": "build",
9
+ "sourceDirectory": "$(ProjectPath)",
10
+ "generator": "",
11
+ "buildType": "",
12
+ "arguments": [],
13
+ "parentProject": ""
14
+ }]]]>
15
+ </Plugin>
16
+ <Plugin Name="qmake">
17
+ <![CDATA[00010001N0005Debug000000000000]]>
18
+ </Plugin>
19
+ </Plugins>
20
+ <Description/>
21
+ <Dependencies/>
22
+ <VirtualDirectory Name="src"/>
23
+ <VirtualDirectory Name="include"/>
24
+ <VirtualDirectory Name="lm">
25
+ <File Name="../../../lm/bhiksha.cc"/>
26
+ <File Name="../../../lm/binary_format.cc"/>
27
+ <File Name="../../../lm/build_binary_main.cc" ExcludeProjConfig="Debug"/>
28
+ <File Name="../../../lm/config.cc"/>
29
+ <File Name="../../../lm/fragment_main.cc"/>
30
+ <File Name="../../../lm/left_test.cc"/>
31
+ <File Name="../../../lm/lm_exception.cc"/>
32
+ <File Name="../../../lm/model.cc"/>
33
+ <File Name="../../../lm/model_test.cc" ExcludeProjConfig="Debug"/>
34
+ <File Name="../../../lm/partial_test.cc" ExcludeProjConfig="Debug"/>
35
+ <File Name="../../../lm/quantize.cc"/>
36
+ <File Name="../../../lm/query_main.cc"/>
37
+ <File Name="../../../lm/read_arpa.cc"/>
38
+ <File Name="../../../lm/search_hashed.cc"/>
39
+ <File Name="../../../lm/search_trie.cc"/>
40
+ <File Name="../../../lm/sizes.cc"/>
41
+ <File Name="../../../lm/trie.cc"/>
42
+ <File Name="../../../lm/trie_sort.cc"/>
43
+ <File Name="../../../lm/value_build.cc"/>
44
+ <File Name="../../../lm/virtual_interface.cc"/>
45
+ <File Name="../../../lm/vocab.cc"/>
46
+ </VirtualDirectory>
47
+ <Dependencies Name="Debug"/>
48
+ <Dependencies Name="Release"/>
49
+ <Settings Type="Static Library">
50
+ <GlobalSettings>
51
+ <Compiler Options="" C_Options="" Assembler="">
52
+ <IncludePath Value="."/>
53
+ </Compiler>
54
+ <Linker Options="">
55
+ <LibraryPath Value="."/>
56
+ </Linker>
57
+ <ResourceCompiler Options=""/>
58
+ </GlobalSettings>
59
+ <Configuration Name="Debug" CompilerType="GCC" DebuggerType="LLDB Debugger" Type="Static Library" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append">
60
+ <Compiler Options="-g" C_Options="-g" Assembler="" Required="yes" PreCompiledHeader="" PCHInCommandLine="no" PCHFlags="" PCHFlagsPolicy="0">
61
+ <IncludePath Value="."/>
62
+ <IncludePath Value="../../.."/>
63
+ <IncludePath Value="../../../phrase-extract"/>
64
+ <IncludePath Value="../../../boost/include"/>
65
+ <Preprocessor Value="KENLM_MAX_ORDER=7"/>
66
+ </Compiler>
67
+ <Linker Options="" Required="yes"/>
68
+ <ResourceCompiler Options="" Required="no"/>
69
+ <General OutputFile="$(IntermediateDirectory)/lib$(ProjectName).a" IntermediateDirectory="./Debug" Command="" CommandArguments="" UseSeparateDebugArgs="no" DebugArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes" IsGUIProgram="no" IsEnabled="yes"/>
70
+ <Environment EnvVarSetName="&lt;Use Defaults&gt;" DbgSetName="&lt;Use Defaults&gt;">
71
+ <![CDATA[]]>
72
+ </Environment>
73
+ <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath="" IsExtended="yes">
74
+ <DebuggerSearchPaths/>
75
+ <PostConnectCommands/>
76
+ <StartupCommands/>
77
+ </Debugger>
78
+ <PreBuild/>
79
+ <PostBuild/>
80
+ <CustomBuild Enabled="no">
81
+ <RebuildCommand/>
82
+ <CleanCommand/>
83
+ <BuildCommand/>
84
+ <PreprocessFileCommand/>
85
+ <SingleFileCommand/>
86
+ <MakefileGenerationCommand/>
87
+ <ThirdPartyToolName/>
88
+ <WorkingDirectory/>
89
+ </CustomBuild>
90
+ <AdditionalRules>
91
+ <CustomPostBuild/>
92
+ <CustomPreBuild/>
93
+ </AdditionalRules>
94
+ <Completion EnableCpp11="no" EnableCpp14="no">
95
+ <ClangCmpFlagsC/>
96
+ <ClangCmpFlags/>
97
+ <ClangPP/>
98
+ <SearchPaths/>
99
+ </Completion>
100
+ </Configuration>
101
+ <Configuration Name="Release" CompilerType="clang( based on LLVM 3.5svn )" DebuggerType="LLDB Debugger" Type="Static Library" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append">
102
+ <Compiler Options="" C_Options="" Assembler="" Required="yes" PreCompiledHeader="" PCHInCommandLine="no" PCHFlags="" PCHFlagsPolicy="0">
103
+ <IncludePath Value="."/>
104
+ </Compiler>
105
+ <Linker Options="" Required="yes"/>
106
+ <ResourceCompiler Options="" Required="no"/>
107
+ <General OutputFile="$(IntermediateDirectory)/lib$(ProjectName).a" IntermediateDirectory="./Release" Command="" CommandArguments="" UseSeparateDebugArgs="no" DebugArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes" IsGUIProgram="no" IsEnabled="yes"/>
108
+ <Environment EnvVarSetName="&lt;Use Defaults&gt;" DbgSetName="&lt;Use Defaults&gt;">
109
+ <![CDATA[]]>
110
+ </Environment>
111
+ <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath="" IsExtended="yes">
112
+ <DebuggerSearchPaths/>
113
+ <PostConnectCommands/>
114
+ <StartupCommands/>
115
+ </Debugger>
116
+ <PreBuild/>
117
+ <PostBuild/>
118
+ <CustomBuild Enabled="no">
119
+ <RebuildCommand/>
120
+ <CleanCommand/>
121
+ <BuildCommand/>
122
+ <PreprocessFileCommand/>
123
+ <SingleFileCommand/>
124
+ <MakefileGenerationCommand/>
125
+ <ThirdPartyToolName/>
126
+ <WorkingDirectory/>
127
+ </CustomBuild>
128
+ <AdditionalRules>
129
+ <CustomPostBuild/>
130
+ <CustomPreBuild/>
131
+ </AdditionalRules>
132
+ <Completion EnableCpp11="no" EnableCpp14="no">
133
+ <ClangCmpFlagsC/>
134
+ <ClangCmpFlags/>
135
+ <ClangPP/>
136
+ <SearchPaths/>
137
+ </Completion>
138
+ </Configuration>
139
+ </Settings>
140
+ </CodeLite_Project>
mosesdecoder/contrib/other-builds/moses-cmd/.cproject ADDED
@@ -0,0 +1,187 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
3
+ <storageModule moduleId="org.eclipse.cdt.core.settings">
4
+ <cconfiguration id="cdt.managedbuild.config.gnu.exe.debug.461114338">
5
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.debug.461114338" moduleId="org.eclipse.cdt.core.settings" name="Debug">
6
+ <externalSettings/>
7
+ <extensions>
8
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
9
+ <extension id="org.eclipse.cdt.core.MachO64" point="org.eclipse.cdt.core.BinaryParser"/>
10
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
11
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
12
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
13
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
14
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
15
+ </extensions>
16
+ </storageModule>
17
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
18
+ <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.debug.461114338" name="Debug" parent="cdt.managedbuild.config.gnu.exe.debug">
19
+ <folderInfo id="cdt.managedbuild.config.gnu.exe.debug.461114338." name="/" resourcePath="">
20
+ <toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.1896491482" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.debug">
21
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.MachO64" id="cdt.managedbuild.target.gnu.platform.exe.debug.2144309834" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/>
22
+ <builder buildPath="${workspace_loc:/moses-cmd/Debug}" id="cdt.managedbuild.target.gnu.builder.exe.debug.56664170" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/>
23
+ <tool id="cdt.managedbuild.tool.gnu.archiver.base.1278274354" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
24
+ <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.626095182" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug">
25
+ <option id="gnu.cpp.compiler.exe.debug.option.optimization.level.2084031389" name="Optimization Level" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
26
+ <option id="gnu.cpp.compiler.exe.debug.option.debugging.level.811344734" name="Debug Level" superClass="gnu.cpp.compiler.exe.debug.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
27
+ <option id="gnu.cpp.compiler.option.include.paths.2118465683" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
28
+ <listOptionValue builtIn="false" value="/opt/local/include/"/>
29
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc}/../../boost/include&quot;"/>
30
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc}/../..&quot;"/>
31
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc}/../../cmph/include&quot;"/>
32
+ </option>
33
+ <option id="gnu.cpp.compiler.option.preprocessor.def.849384962" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" useByScannerDiscovery="false" valueType="definedSymbols">
34
+ <listOptionValue builtIn="false" value="WITH_THREADS"/>
35
+ <listOptionValue builtIn="false" value="KENLM_MAX_ORDER=7"/>
36
+ <listOptionValue builtIn="false" value="HAVE_BOOST"/>
37
+ <listOptionValue builtIn="false" value="MAX_NUM_FACTORS=4"/>
38
+ </option>
39
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.363379373" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
40
+ </tool>
41
+ <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.debug.504208780" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.debug">
42
+ <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.exe.debug.option.optimization.level.782785840" name="Optimization Level" superClass="gnu.c.compiler.exe.debug.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
43
+ <option id="gnu.c.compiler.exe.debug.option.debugging.level.1722468661" name="Debug Level" superClass="gnu.c.compiler.exe.debug.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.max" valueType="enumerated"/>
44
+ <option id="gnu.c.compiler.option.dialect.std.1946460401" superClass="gnu.c.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.c.compiler.dialect.c11" valueType="enumerated"/>
45
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.860636318" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
46
+ </tool>
47
+ <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.2096997198" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug"/>
48
+ <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug.1546774818" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug">
49
+ <option id="gnu.cpp.link.option.paths.523170942" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
50
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/../../boost/lib64&quot;"/>
51
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/probingpt/Debug&quot;"/>
52
+ <listOptionValue builtIn="false" value="/home/hieu/workspace/xmlrpc-c/xmlrpc-c-1.39.07/lib"/>
53
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc}/../../cmph/lib&quot;"/>
54
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc}/../../xmlrpc-c/lib&quot;"/>
55
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/moses/Debug&quot;"/>
56
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/lm/Debug&quot;"/>
57
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/OnDiskPt/Debug&quot;"/>
58
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/util/Debug&quot;"/>
59
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/search/Debug&quot;"/>
60
+ <listOptionValue builtIn="false" value="/opt/local/lib"/>
61
+ </option>
62
+ <option id="gnu.cpp.link.option.libs.998577284" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
63
+ <listOptionValue builtIn="false" value="moses"/>
64
+ <listOptionValue builtIn="false" value="xmlrpc_xmltok"/>
65
+ <listOptionValue builtIn="false" value="xmlrpc_xmlparse"/>
66
+ <listOptionValue builtIn="false" value="xmlrpc_util++"/>
67
+ <listOptionValue builtIn="false" value="xmlrpc_util"/>
68
+ <listOptionValue builtIn="false" value="xmlrpc_server_abyss++"/>
69
+ <listOptionValue builtIn="false" value="xmlrpc_server_abyss"/>
70
+ <listOptionValue builtIn="false" value="xmlrpc_server++"/>
71
+ <listOptionValue builtIn="false" value="xmlrpc_server"/>
72
+ <listOptionValue builtIn="false" value="xmlrpc_abyss"/>
73
+ <listOptionValue builtIn="false" value="xmlrpc++"/>
74
+ <listOptionValue builtIn="false" value="xmlrpc"/>
75
+ <listOptionValue builtIn="false" value="cmph"/>
76
+ <listOptionValue builtIn="false" value="search"/>
77
+ <listOptionValue builtIn="false" value="OnDiskPt"/>
78
+ <listOptionValue builtIn="false" value="lm"/>
79
+ <listOptionValue builtIn="false" value="util"/>
80
+ <listOptionValue builtIn="false" value="boost_iostreams"/>
81
+ <listOptionValue builtIn="false" value="boost_serialization"/>
82
+ <listOptionValue builtIn="false" value="boost_system"/>
83
+ <listOptionValue builtIn="false" value="boost_thread"/>
84
+ <listOptionValue builtIn="false" value="boost_filesystem"/>
85
+ <listOptionValue builtIn="false" value="boost_program_options"/>
86
+ <listOptionValue builtIn="false" value="pthread"/>
87
+ <listOptionValue builtIn="false" value="z"/>
88
+ <listOptionValue builtIn="false" value="bz2"/>
89
+ <listOptionValue builtIn="false" value="dl"/>
90
+ <listOptionValue builtIn="false" value="probingpt"/>
91
+ <listOptionValue builtIn="false" value="rt"/>
92
+ </option>
93
+ <option id="gnu.cpp.link.option.userobjs.1542590830" name="Other objects" superClass="gnu.cpp.link.option.userobjs"/>
94
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.983725033" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
95
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
96
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
97
+ </inputType>
98
+ </tool>
99
+ <tool id="cdt.managedbuild.tool.gnu.assembler.exe.debug.1646579979" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug">
100
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1206872262" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
101
+ </tool>
102
+ </toolChain>
103
+ </folderInfo>
104
+ <sourceEntries>
105
+ <entry excluding="LatticeMBRGrid.cpp" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
106
+ </sourceEntries>
107
+ </configuration>
108
+ </storageModule>
109
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
110
+ </cconfiguration>
111
+ <cconfiguration id="cdt.managedbuild.config.gnu.exe.release.2121690436">
112
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.release.2121690436" moduleId="org.eclipse.cdt.core.settings" name="Release">
113
+ <externalSettings/>
114
+ <extensions>
115
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
116
+ <extension id="org.eclipse.cdt.core.MachO64" point="org.eclipse.cdt.core.BinaryParser"/>
117
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
118
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
119
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
120
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
121
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
122
+ </extensions>
123
+ </storageModule>
124
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
125
+ <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.release.2121690436" name="Release" parent="cdt.managedbuild.config.gnu.exe.release">
126
+ <folderInfo id="cdt.managedbuild.config.gnu.exe.release.2121690436." name="/" resourcePath="">
127
+ <toolChain id="cdt.managedbuild.toolchain.gnu.exe.release.1577734572" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.release">
128
+ <targetPlatform binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.MachO64" id="cdt.managedbuild.target.gnu.platform.exe.release.1535487925" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.release"/>
129
+ <builder buildPath="${workspace_loc:/moses-cmd/Release}" id="cdt.managedbuild.target.gnu.builder.exe.release.2122426151" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.exe.release"/>
130
+ <tool id="cdt.managedbuild.tool.gnu.archiver.base.441254004" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
131
+ <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.376987001" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release">
132
+ <option id="gnu.cpp.compiler.exe.release.option.optimization.level.1276092407" name="Optimization Level" superClass="gnu.cpp.compiler.exe.release.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
133
+ <option id="gnu.cpp.compiler.exe.release.option.debugging.level.1794377625" name="Debug Level" superClass="gnu.cpp.compiler.exe.release.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
134
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.93276909" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
135
+ </tool>
136
+ <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.release.1553350132" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.release">
137
+ <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.exe.release.option.optimization.level.93522212" name="Optimization Level" superClass="gnu.c.compiler.exe.release.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
138
+ <option id="gnu.c.compiler.exe.release.option.debugging.level.1860716465" name="Debug Level" superClass="gnu.c.compiler.exe.release.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.none" valueType="enumerated"/>
139
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1508465135" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
140
+ </tool>
141
+ <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.release.1658143889" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.release"/>
142
+ <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.release.378727798" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.release">
143
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1701769819" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
144
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
145
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
146
+ </inputType>
147
+ </tool>
148
+ <tool id="cdt.managedbuild.tool.gnu.assembler.exe.release.1550193619" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.release">
149
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1296687303" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
150
+ </tool>
151
+ </toolChain>
152
+ </folderInfo>
153
+ </configuration>
154
+ </storageModule>
155
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
156
+ </cconfiguration>
157
+ </storageModule>
158
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
159
+ <project id="moses-cmd.cdt.managedbuild.target.gnu.exe.1380109162" name="Executable" projectType="cdt.managedbuild.target.gnu.exe"/>
160
+ </storageModule>
161
+ <storageModule moduleId="scannerConfiguration">
162
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
163
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.2121690436;cdt.managedbuild.config.gnu.exe.release.2121690436.;cdt.managedbuild.tool.gnu.c.compiler.exe.release.1553350132;cdt.managedbuild.tool.gnu.c.compiler.input.1508465135">
164
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
165
+ </scannerConfigBuildInfo>
166
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.461114338;cdt.managedbuild.config.gnu.exe.debug.461114338.;cdt.managedbuild.tool.gnu.c.compiler.exe.debug.504208780;cdt.managedbuild.tool.gnu.c.compiler.input.860636318">
167
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"/>
168
+ </scannerConfigBuildInfo>
169
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.461114338;cdt.managedbuild.config.gnu.exe.debug.461114338.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.626095182;cdt.managedbuild.tool.gnu.cpp.compiler.input.363379373">
170
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
171
+ </scannerConfigBuildInfo>
172
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.2121690436;cdt.managedbuild.config.gnu.exe.release.2121690436.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.376987001;cdt.managedbuild.tool.gnu.cpp.compiler.input.93276909">
173
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"/>
174
+ </scannerConfigBuildInfo>
175
+ </storageModule>
176
+ <storageModule moduleId="refreshScope" versionNumber="2">
177
+ <configuration configurationName="Debug">
178
+ <resource resourceType="PROJECT" workspacePath="/moses-cmd"/>
179
+ </configuration>
180
+ <configuration configurationName="Release">
181
+ <resource resourceType="PROJECT" workspacePath="/moses-cmd"/>
182
+ </configuration>
183
+ </storageModule>
184
+ <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
185
+ <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
186
+ <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
187
+ </cproject>
mosesdecoder/contrib/other-builds/moses-cmd/.project ADDED
@@ -0,0 +1,111 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <projectDescription>
3
+ <name>moses-cmd</name>
4
+ <comment></comment>
5
+ <projects>
6
+ <project>lm</project>
7
+ <project>moses</project>
8
+ <project>OnDiskPt</project>
9
+ <project>probingpt</project>
10
+ <project>search</project>
11
+ <project>util</project>
12
+ </projects>
13
+ <buildSpec>
14
+ <buildCommand>
15
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
16
+ <triggers>clean,full,incremental,</triggers>
17
+ <arguments>
18
+ <dictionary>
19
+ <key>?name?</key>
20
+ <value></value>
21
+ </dictionary>
22
+ <dictionary>
23
+ <key>org.eclipse.cdt.make.core.append_environment</key>
24
+ <value>true</value>
25
+ </dictionary>
26
+ <dictionary>
27
+ <key>org.eclipse.cdt.make.core.autoBuildTarget</key>
28
+ <value>all</value>
29
+ </dictionary>
30
+ <dictionary>
31
+ <key>org.eclipse.cdt.make.core.buildArguments</key>
32
+ <value>-j3</value>
33
+ </dictionary>
34
+ <dictionary>
35
+ <key>org.eclipse.cdt.make.core.buildCommand</key>
36
+ <value>make</value>
37
+ </dictionary>
38
+ <dictionary>
39
+ <key>org.eclipse.cdt.make.core.buildLocation</key>
40
+ <value>${workspace_loc:/moses-cmd/Debug}</value>
41
+ </dictionary>
42
+ <dictionary>
43
+ <key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
44
+ <value>clean</value>
45
+ </dictionary>
46
+ <dictionary>
47
+ <key>org.eclipse.cdt.make.core.contents</key>
48
+ <value>org.eclipse.cdt.make.core.activeConfigSettings</value>
49
+ </dictionary>
50
+ <dictionary>
51
+ <key>org.eclipse.cdt.make.core.enableAutoBuild</key>
52
+ <value>false</value>
53
+ </dictionary>
54
+ <dictionary>
55
+ <key>org.eclipse.cdt.make.core.enableCleanBuild</key>
56
+ <value>true</value>
57
+ </dictionary>
58
+ <dictionary>
59
+ <key>org.eclipse.cdt.make.core.enableFullBuild</key>
60
+ <value>true</value>
61
+ </dictionary>
62
+ <dictionary>
63
+ <key>org.eclipse.cdt.make.core.fullBuildTarget</key>
64
+ <value>all</value>
65
+ </dictionary>
66
+ <dictionary>
67
+ <key>org.eclipse.cdt.make.core.stopOnError</key>
68
+ <value>true</value>
69
+ </dictionary>
70
+ <dictionary>
71
+ <key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
72
+ <value>true</value>
73
+ </dictionary>
74
+ </arguments>
75
+ </buildCommand>
76
+ <buildCommand>
77
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
78
+ <triggers>full,incremental,</triggers>
79
+ <arguments>
80
+ </arguments>
81
+ </buildCommand>
82
+ </buildSpec>
83
+ <natures>
84
+ <nature>org.eclipse.cdt.core.cnature</nature>
85
+ <nature>org.eclipse.cdt.core.ccnature</nature>
86
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
87
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
88
+ </natures>
89
+ <linkedResources>
90
+ <link>
91
+ <name>Jamfile</name>
92
+ <type>1</type>
93
+ <locationURI>PARENT-3-PROJECT_LOC/moses-cmd/Jamfile</locationURI>
94
+ </link>
95
+ <link>
96
+ <name>LatticeMBRGrid.cpp</name>
97
+ <type>1</type>
98
+ <locationURI>PARENT-3-PROJECT_LOC/moses-cmd/LatticeMBRGrid.cpp</locationURI>
99
+ </link>
100
+ <link>
101
+ <name>Main.cpp</name>
102
+ <type>1</type>
103
+ <locationURI>PARENT-3-PROJECT_LOC/moses-cmd/Main.cpp</locationURI>
104
+ </link>
105
+ <link>
106
+ <name>Main.h</name>
107
+ <type>1</type>
108
+ <locationURI>PARENT-3-PROJECT_LOC/moses-cmd/Main.h</locationURI>
109
+ </link>
110
+ </linkedResources>
111
+ </projectDescription>
mosesdecoder/contrib/other-builds/moses-cmd/moses-cmd.project ADDED
@@ -0,0 +1,153 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <CodeLite_Project Name="moses-cmd" InternalType="Console">
3
+ <Plugins>
4
+ <Plugin Name="qmake">
5
+ <![CDATA[00010001N0005Debug000000000000]]>
6
+ </Plugin>
7
+ <Plugin Name="CMakePlugin">
8
+ <![CDATA[[{
9
+ "name": "Debug",
10
+ "enabled": false,
11
+ "buildDirectory": "build",
12
+ "sourceDirectory": "$(ProjectPath)",
13
+ "generator": "",
14
+ "buildType": "",
15
+ "arguments": [],
16
+ "parentProject": ""
17
+ }]]]>
18
+ </Plugin>
19
+ </Plugins>
20
+ <Description/>
21
+ <Dependencies/>
22
+ <VirtualDirectory Name="src"/>
23
+ <VirtualDirectory Name="moses-cmd">
24
+ <File Name="../../../moses-cmd/LatticeMBRGrid.cpp" ExcludeProjConfig="Debug"/>
25
+ <File Name="../../../moses-cmd/Main.cpp"/>
26
+ <File Name="../../../moses-cmd/MainVW.cpp" ExcludeProjConfig="Debug"/>
27
+ <File Name="../../../moses-cmd/MainVW.h" ExcludeProjConfig="Debug"/>
28
+ </VirtualDirectory>
29
+ <Dependencies Name="Debug">
30
+ <Project Name="OnDiskPt"/>
31
+ <Project Name="lm"/>
32
+ <Project Name="search"/>
33
+ <Project Name="util"/>
34
+ </Dependencies>
35
+ <Dependencies Name="Release"/>
36
+ <Settings Type="Executable">
37
+ <GlobalSettings>
38
+ <Compiler Options="" C_Options="" Assembler="">
39
+ <IncludePath Value="."/>
40
+ </Compiler>
41
+ <Linker Options="">
42
+ <LibraryPath Value="."/>
43
+ </Linker>
44
+ <ResourceCompiler Options=""/>
45
+ </GlobalSettings>
46
+ <Configuration Name="Debug" CompilerType="GCC" DebuggerType="LLDB Debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append">
47
+ <Compiler Options="-g;-O0;-Wall" C_Options="-g;-O0;-Wall" Assembler="" Required="yes" PreCompiledHeader="" PCHInCommandLine="no" PCHFlags="" PCHFlagsPolicy="0">
48
+ <IncludePath Value="."/>
49
+ <IncludePath Value="../../.."/>
50
+ <IncludePath Value="../../../phrase-extract"/>
51
+ <IncludePath Value="../../../boost/include"/>
52
+ <Preprocessor Value="MAX_NUM_FACTORS=4"/>
53
+ <Preprocessor Value="KENLM_MAX_ORDER=7"/>
54
+ <Preprocessor Value="TRACE_ENABLE=1"/>
55
+ </Compiler>
56
+ <Linker Options="" Required="yes">
57
+ <LibraryPath Value="../../../boost/lib64"/>
58
+ <LibraryPath Value="../../../contrib/other-builds/lm/Debug"/>
59
+ <LibraryPath Value="../../../contrib/other-builds/moses/Debug"/>
60
+ <LibraryPath Value="../../../contrib/other-builds/OnDiskPt/Debug"/>
61
+ <LibraryPath Value="../../../contrib/other-builds/search/Debug"/>
62
+ <LibraryPath Value="../../../contrib/other-builds/util/Debug"/>
63
+ <Library Value="util"/>
64
+ <Library Value="moses"/>
65
+ <Library Value="search"/>
66
+ <Library Value="OnDiskPt"/>
67
+ <Library Value="lm"/>
68
+ <Library Value="boost_iostreams"/>
69
+ <Library Value="boost_serialization"/>
70
+ <Library Value="boost_system"/>
71
+ <Library Value="boost_thread"/>
72
+ <Library Value="boost_filesystem"/>
73
+ <Library Value="boost_program_options"/>
74
+ <Library Value="pthread"/>
75
+ <Library Value="z"/>
76
+ <Library Value="bz2"/>
77
+ <Library Value="dl"/>
78
+ <Library Value="rt"/>
79
+ </Linker>
80
+ <ResourceCompiler Options="" Required="no"/>
81
+ <General OutputFile="$(IntermediateDirectory)/$(ProjectName)" IntermediateDirectory="./Debug" Command="./$(ProjectName)" CommandArguments="" UseSeparateDebugArgs="yes" DebugArguments="" WorkingDirectory="/Users/hieu/workspace/experiment/issues/chart.hierarchical-withkenlm" PauseExecWhenProcTerminates="yes" IsGUIProgram="no" IsEnabled="yes"/>
82
+ <Environment EnvVarSetName="&lt;Use Defaults&gt;" DbgSetName="&lt;Use Defaults&gt;">
83
+ <![CDATA[]]>
84
+ </Environment>
85
+ <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath="" IsExtended="no">
86
+ <DebuggerSearchPaths/>
87
+ <PostConnectCommands/>
88
+ <StartupCommands/>
89
+ </Debugger>
90
+ <PreBuild/>
91
+ <PostBuild/>
92
+ <CustomBuild Enabled="no">
93
+ <RebuildCommand/>
94
+ <CleanCommand/>
95
+ <BuildCommand/>
96
+ <PreprocessFileCommand/>
97
+ <SingleFileCommand/>
98
+ <MakefileGenerationCommand/>
99
+ <ThirdPartyToolName>None</ThirdPartyToolName>
100
+ <WorkingDirectory/>
101
+ </CustomBuild>
102
+ <AdditionalRules>
103
+ <CustomPostBuild/>
104
+ <CustomPreBuild/>
105
+ </AdditionalRules>
106
+ <Completion EnableCpp11="no" EnableCpp14="no">
107
+ <ClangCmpFlagsC/>
108
+ <ClangCmpFlags/>
109
+ <ClangPP/>
110
+ <SearchPaths/>
111
+ </Completion>
112
+ </Configuration>
113
+ <Configuration Name="Release" CompilerType="clang( based on LLVM 3.5svn )" DebuggerType="LLDB Debugger" Type="Executable" BuildCmpWithGlobalSettings="append" BuildLnkWithGlobalSettings="append" BuildResWithGlobalSettings="append">
114
+ <Compiler Options="-O2;-Wall" C_Options="-O2;-Wall" Assembler="" Required="yes" PreCompiledHeader="" PCHInCommandLine="no" PCHFlags="" PCHFlagsPolicy="0">
115
+ <IncludePath Value="."/>
116
+ <Preprocessor Value="NDEBUG"/>
117
+ </Compiler>
118
+ <Linker Options="" Required="yes"/>
119
+ <ResourceCompiler Options="" Required="no"/>
120
+ <General OutputFile="$(IntermediateDirectory)/$(ProjectName)" IntermediateDirectory="./Release" Command="./$(ProjectName)" CommandArguments="" UseSeparateDebugArgs="no" DebugArguments="" WorkingDirectory="$(IntermediateDirectory)" PauseExecWhenProcTerminates="yes" IsGUIProgram="no" IsEnabled="yes"/>
121
+ <Environment EnvVarSetName="&lt;Use Defaults&gt;" DbgSetName="&lt;Use Defaults&gt;">
122
+ <![CDATA[]]>
123
+ </Environment>
124
+ <Debugger IsRemote="no" RemoteHostName="" RemoteHostPort="" DebuggerPath="" IsExtended="no">
125
+ <DebuggerSearchPaths/>
126
+ <PostConnectCommands/>
127
+ <StartupCommands/>
128
+ </Debugger>
129
+ <PreBuild/>
130
+ <PostBuild/>
131
+ <CustomBuild Enabled="no">
132
+ <RebuildCommand/>
133
+ <CleanCommand/>
134
+ <BuildCommand/>
135
+ <PreprocessFileCommand/>
136
+ <SingleFileCommand/>
137
+ <MakefileGenerationCommand/>
138
+ <ThirdPartyToolName>None</ThirdPartyToolName>
139
+ <WorkingDirectory/>
140
+ </CustomBuild>
141
+ <AdditionalRules>
142
+ <CustomPostBuild/>
143
+ <CustomPreBuild/>
144
+ </AdditionalRules>
145
+ <Completion EnableCpp11="no" EnableCpp14="no">
146
+ <ClangCmpFlagsC/>
147
+ <ClangCmpFlags/>
148
+ <ClangPP/>
149
+ <SearchPaths/>
150
+ </Completion>
151
+ </Configuration>
152
+ </Settings>
153
+ </CodeLite_Project>
mosesdecoder/contrib/other-builds/moses2-cmd/.project ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <projectDescription>
3
+ <name>moses2-cmd</name>
4
+ <comment></comment>
5
+ <projects>
6
+ <project>lm</project>
7
+ <project>moses</project>
8
+ <project>moses2</project>
9
+ <project>probingpt</project>
10
+ <project>util</project>
11
+ </projects>
12
+ <buildSpec>
13
+ <buildCommand>
14
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
15
+ <triggers>clean,full,incremental,</triggers>
16
+ <arguments>
17
+ </arguments>
18
+ </buildCommand>
19
+ <buildCommand>
20
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
21
+ <triggers>full,incremental,</triggers>
22
+ <arguments>
23
+ </arguments>
24
+ </buildCommand>
25
+ </buildSpec>
26
+ <natures>
27
+ <nature>org.eclipse.cdt.core.cnature</nature>
28
+ <nature>org.eclipse.cdt.core.ccnature</nature>
29
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
30
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
31
+ </natures>
32
+ <linkedResources>
33
+ <link>
34
+ <name>Main.cpp</name>
35
+ <type>1</type>
36
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/Main.cpp</locationURI>
37
+ </link>
38
+ <link>
39
+ <name>Main.h</name>
40
+ <type>1</type>
41
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/Main.h</locationURI>
42
+ </link>
43
+ </linkedResources>
44
+ </projectDescription>
mosesdecoder/contrib/other-builds/moses2/.cproject ADDED
@@ -0,0 +1,145 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
3
+ <storageModule moduleId="org.eclipse.cdt.core.settings">
4
+ <cconfiguration id="cdt.managedbuild.config.gnu.cross.exe.debug.1097293041">
5
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.cross.exe.debug.1097293041" moduleId="org.eclipse.cdt.core.settings" name="Debug">
6
+ <externalSettings>
7
+ <externalSetting>
8
+ <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/moses2"/>
9
+ <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/moses2/Debug"/>
10
+ <entry flags="RESOLVED" kind="libraryFile" name="moses2" srcPrefixMapping="" srcRootPath=""/>
11
+ </externalSetting>
12
+ </externalSettings>
13
+ <extensions>
14
+ <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
15
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
16
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
17
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
18
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
19
+ </extensions>
20
+ </storageModule>
21
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
22
+ <configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cross.exe.debug.1097293041" name="Debug" parent="cdt.managedbuild.config.gnu.cross.exe.debug">
23
+ <folderInfo id="cdt.managedbuild.config.gnu.cross.exe.debug.1097293041." name="/" resourcePath="">
24
+ <toolChain id="cdt.managedbuild.toolchain.gnu.base.1746550894" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.base">
25
+ <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.GNU_ELF" id="cdt.managedbuild.target.gnu.platform.base.1837385072" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
26
+ <builder buildPath="${workspace_loc:/moses2}/Debug" id="cdt.managedbuild.target.gnu.builder.base.291718570" keepEnvironmentInBuildfile="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.base"/>
27
+ <tool id="cdt.managedbuild.tool.gnu.archiver.base.1272804113" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
28
+ <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.1255490487" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
29
+ <option id="gnu.cpp.compiler.option.include.paths.235234169" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
30
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc}/../../boost/include&quot;"/>
31
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc}/../../xmlrpc-c/include&quot;"/>
32
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc}/../../cmph/include&quot;"/>
33
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc}/../../DALM/include&quot;"/>
34
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc}/../../DALM/darts-clone&quot;"/>
35
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc}/../../&quot;"/>
36
+ </option>
37
+ <option id="gnu.cpp.compiler.option.preprocessor.def.1862236983" name="Defined symbols (-D)" superClass="gnu.cpp.compiler.option.preprocessor.def" useByScannerDiscovery="false" valueType="definedSymbols">
38
+ <listOptionValue builtIn="false" value="KENLM_MAX_ORDER=7"/>
39
+ <listOptionValue builtIn="false" value="HAVE_CMPH"/>
40
+ <listOptionValue builtIn="false" value="HAVE_PROBINGPT"/>
41
+ <listOptionValue builtIn="false" value="MAX_NUM_FACTORS=4"/>
42
+ <listOptionValue builtIn="false" value="WITH_THREADS"/>
43
+ </option>
44
+ <option id="gnu.cpp.compiler.option.optimization.level.1040693055" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
45
+ <option id="gnu.cpp.compiler.option.debugging.level.300011146" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
46
+ <option id="gnu.cpp.compiler.option.dialect.std.1726125169" superClass="gnu.cpp.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.cpp.compiler.dialect.c++11" valueType="enumerated"/>
47
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1493812591" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
48
+ </tool>
49
+ <tool id="cdt.managedbuild.tool.gnu.c.compiler.base.1139578129" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base">
50
+ <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.431272647" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
51
+ <option id="gnu.c.compiler.option.debugging.level.1239851950" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.max" valueType="enumerated"/>
52
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.2101684015" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
53
+ </tool>
54
+ <tool id="cdt.managedbuild.tool.gnu.c.linker.base.44495985" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base"/>
55
+ <tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.1037086440" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base"/>
56
+ <tool id="cdt.managedbuild.tool.gnu.assembler.base.976298124" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base">
57
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1074363484" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
58
+ </tool>
59
+ </toolChain>
60
+ </folderInfo>
61
+ <fileInfo id="cdt.managedbuild.config.gnu.cross.exe.debug.1097293041.1123771618" name="HypothesisColl.h" rcbsApplicability="disable" resourcePath="HypothesisColl.h" toolsToInvoke=""/>
62
+ <sourceEntries>
63
+ <entry excluding="LM/LanguageModelDALM.cpp|defer|Main.cpp|CreateProbingPT2.cpp" flags="VALUE_WORKSPACE_PATH|RESOLVED" kind="sourcePath" name=""/>
64
+ </sourceEntries>
65
+ </configuration>
66
+ </storageModule>
67
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
68
+ </cconfiguration>
69
+ <cconfiguration id="cdt.managedbuild.config.gnu.cross.exe.release.1445209421">
70
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.cross.exe.release.1445209421" moduleId="org.eclipse.cdt.core.settings" name="Release">
71
+ <externalSettings/>
72
+ <extensions>
73
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
74
+ <extension id="org.eclipse.cdt.core.MachO64" point="org.eclipse.cdt.core.BinaryParser"/>
75
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
76
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
77
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
78
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
79
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
80
+ </extensions>
81
+ </storageModule>
82
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
83
+ <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cross.exe.release.1445209421" name="Release" parent="cdt.managedbuild.config.gnu.cross.exe.release">
84
+ <folderInfo id="cdt.managedbuild.config.gnu.cross.exe.release.1445209421." name="/" resourcePath="">
85
+ <toolChain id="cdt.managedbuild.toolchain.gnu.cross.exe.release.662721996" name="Cross GCC" superClass="cdt.managedbuild.toolchain.gnu.cross.exe.release">
86
+ <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.MachO64" id="cdt.managedbuild.targetPlatform.gnu.cross.895874625" isAbstract="false" osList="all" superClass="cdt.managedbuild.targetPlatform.gnu.cross"/>
87
+ <builder buildPath="${workspace_loc:/moses2}/Release" id="cdt.managedbuild.builder.gnu.cross.468799862" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.builder.gnu.cross"/>
88
+ <tool id="cdt.managedbuild.tool.gnu.cross.c.compiler.1943249236" name="Cross GCC Compiler" superClass="cdt.managedbuild.tool.gnu.cross.c.compiler">
89
+ <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.option.optimization.level.1011693969" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
90
+ <option id="gnu.c.compiler.option.debugging.level.1339551360" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.none" valueType="enumerated"/>
91
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1175448562" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
92
+ </tool>
93
+ <tool id="cdt.managedbuild.tool.gnu.cross.cpp.compiler.2103617063" name="Cross G++ Compiler" superClass="cdt.managedbuild.tool.gnu.cross.cpp.compiler">
94
+ <option id="gnu.cpp.compiler.option.optimization.level.13836904" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
95
+ <option id="gnu.cpp.compiler.option.debugging.level.763147930" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
96
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.946001537" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
97
+ </tool>
98
+ <tool id="cdt.managedbuild.tool.gnu.cross.c.linker.1462232829" name="Cross GCC Linker" superClass="cdt.managedbuild.tool.gnu.cross.c.linker"/>
99
+ <tool id="cdt.managedbuild.tool.gnu.cross.cpp.linker.1359778241" name="Cross G++ Linker" superClass="cdt.managedbuild.tool.gnu.cross.cpp.linker">
100
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.89443491" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
101
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
102
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
103
+ </inputType>
104
+ </tool>
105
+ <tool id="cdt.managedbuild.tool.gnu.cross.archiver.762494367" name="Cross GCC Archiver" superClass="cdt.managedbuild.tool.gnu.cross.archiver"/>
106
+ <tool id="cdt.managedbuild.tool.gnu.cross.assembler.140795725" name="Cross GCC Assembler" superClass="cdt.managedbuild.tool.gnu.cross.assembler">
107
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.95131148" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
108
+ </tool>
109
+ </toolChain>
110
+ </folderInfo>
111
+ </configuration>
112
+ </storageModule>
113
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
114
+ </cconfiguration>
115
+ </storageModule>
116
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
117
+ <project id="moses2.cdt.managedbuild.target.gnu.cross.exe.1741914059" name="Executable" projectType="cdt.managedbuild.target.gnu.cross.exe"/>
118
+ </storageModule>
119
+ <storageModule moduleId="scannerConfiguration">
120
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
121
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cross.exe.release.1445209421;cdt.managedbuild.config.gnu.cross.exe.release.1445209421.;cdt.managedbuild.tool.gnu.cross.c.compiler.1943249236;cdt.managedbuild.tool.gnu.c.compiler.input.1175448562">
122
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
123
+ </scannerConfigBuildInfo>
124
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cross.exe.release.1445209421;cdt.managedbuild.config.gnu.cross.exe.release.1445209421.;cdt.managedbuild.tool.gnu.cross.cpp.compiler.2103617063;cdt.managedbuild.tool.gnu.cpp.compiler.input.946001537">
125
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
126
+ </scannerConfigBuildInfo>
127
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cross.exe.debug.1097293041;cdt.managedbuild.config.gnu.cross.exe.debug.1097293041.;cdt.managedbuild.tool.gnu.cross.c.compiler.1430831084;cdt.managedbuild.tool.gnu.c.compiler.input.1538601099">
128
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
129
+ </scannerConfigBuildInfo>
130
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cross.exe.debug.1097293041;cdt.managedbuild.config.gnu.cross.exe.debug.1097293041.;cdt.managedbuild.tool.gnu.cross.cpp.compiler.1686613508;cdt.managedbuild.tool.gnu.cpp.compiler.input.2101942464">
131
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
132
+ </scannerConfigBuildInfo>
133
+ </storageModule>
134
+ <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
135
+ <storageModule moduleId="refreshScope" versionNumber="2">
136
+ <configuration configurationName="Debug">
137
+ <resource resourceType="PROJECT" workspacePath="/moses2"/>
138
+ </configuration>
139
+ <configuration configurationName="Release">
140
+ <resource resourceType="PROJECT" workspacePath="/moses2"/>
141
+ </configuration>
142
+ </storageModule>
143
+ <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
144
+ <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
145
+ </cproject>
mosesdecoder/contrib/other-builds/moses2/.project ADDED
@@ -0,0 +1,1621 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <projectDescription>
3
+ <name>moses2</name>
4
+ <comment></comment>
5
+ <projects>
6
+ <project>moses</project>
7
+ <project>util</project>
8
+ </projects>
9
+ <buildSpec>
10
+ <buildCommand>
11
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
12
+ <triggers>clean,full,incremental,</triggers>
13
+ <arguments>
14
+ </arguments>
15
+ </buildCommand>
16
+ <buildCommand>
17
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
18
+ <triggers>full,incremental,</triggers>
19
+ <arguments>
20
+ </arguments>
21
+ </buildCommand>
22
+ </buildSpec>
23
+ <natures>
24
+ <nature>org.eclipse.cdt.core.cnature</nature>
25
+ <nature>org.eclipse.cdt.core.ccnature</nature>
26
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
27
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
28
+ </natures>
29
+ <linkedResources>
30
+ <link>
31
+ <name>AlignmentInfo.cpp</name>
32
+ <type>1</type>
33
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/AlignmentInfo.cpp</locationURI>
34
+ </link>
35
+ <link>
36
+ <name>AlignmentInfo.h</name>
37
+ <type>1</type>
38
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/AlignmentInfo.h</locationURI>
39
+ </link>
40
+ <link>
41
+ <name>AlignmentInfoCollection.cpp</name>
42
+ <type>1</type>
43
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/AlignmentInfoCollection.cpp</locationURI>
44
+ </link>
45
+ <link>
46
+ <name>AlignmentInfoCollection.h</name>
47
+ <type>1</type>
48
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/AlignmentInfoCollection.h</locationURI>
49
+ </link>
50
+ <link>
51
+ <name>ArcLists.cpp</name>
52
+ <type>1</type>
53
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/ArcLists.cpp</locationURI>
54
+ </link>
55
+ <link>
56
+ <name>ArcLists.h</name>
57
+ <type>1</type>
58
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/ArcLists.h</locationURI>
59
+ </link>
60
+ <link>
61
+ <name>Array.h</name>
62
+ <type>1</type>
63
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/Array.h</locationURI>
64
+ </link>
65
+ <link>
66
+ <name>EstimatedScores.cpp</name>
67
+ <type>1</type>
68
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/EstimatedScores.cpp</locationURI>
69
+ </link>
70
+ <link>
71
+ <name>EstimatedScores.h</name>
72
+ <type>1</type>
73
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/EstimatedScores.h</locationURI>
74
+ </link>
75
+ <link>
76
+ <name>FF</name>
77
+ <type>2</type>
78
+ <locationURI>virtual:/virtual</locationURI>
79
+ </link>
80
+ <link>
81
+ <name>HypothesisBase.cpp</name>
82
+ <type>1</type>
83
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/HypothesisBase.cpp</locationURI>
84
+ </link>
85
+ <link>
86
+ <name>HypothesisBase.h</name>
87
+ <type>1</type>
88
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/HypothesisBase.h</locationURI>
89
+ </link>
90
+ <link>
91
+ <name>HypothesisColl.cpp</name>
92
+ <type>1</type>
93
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/HypothesisColl.cpp</locationURI>
94
+ </link>
95
+ <link>
96
+ <name>HypothesisColl.h</name>
97
+ <type>1</type>
98
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/HypothesisColl.h</locationURI>
99
+ </link>
100
+ <link>
101
+ <name>InMemoryTrie</name>
102
+ <type>2</type>
103
+ <locationURI>virtual:/virtual</locationURI>
104
+ </link>
105
+ <link>
106
+ <name>InputPathBase.cpp</name>
107
+ <type>1</type>
108
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/InputPathBase.cpp</locationURI>
109
+ </link>
110
+ <link>
111
+ <name>InputPathBase.h</name>
112
+ <type>1</type>
113
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/InputPathBase.h</locationURI>
114
+ </link>
115
+ <link>
116
+ <name>InputPathsBase.cpp</name>
117
+ <type>1</type>
118
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/InputPathsBase.cpp</locationURI>
119
+ </link>
120
+ <link>
121
+ <name>InputPathsBase.h</name>
122
+ <type>1</type>
123
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/InputPathsBase.h</locationURI>
124
+ </link>
125
+ <link>
126
+ <name>InputType.cpp</name>
127
+ <type>1</type>
128
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/InputType.cpp</locationURI>
129
+ </link>
130
+ <link>
131
+ <name>InputType.h</name>
132
+ <type>1</type>
133
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/InputType.h</locationURI>
134
+ </link>
135
+ <link>
136
+ <name>Jamfile</name>
137
+ <type>1</type>
138
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/Jamfile</locationURI>
139
+ </link>
140
+ <link>
141
+ <name>LM</name>
142
+ <type>2</type>
143
+ <locationURI>virtual:/virtual</locationURI>
144
+ </link>
145
+ <link>
146
+ <name>Main.cpp</name>
147
+ <type>1</type>
148
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/Main.cpp</locationURI>
149
+ </link>
150
+ <link>
151
+ <name>ManagerBase.cpp</name>
152
+ <type>1</type>
153
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/ManagerBase.cpp</locationURI>
154
+ </link>
155
+ <link>
156
+ <name>ManagerBase.h</name>
157
+ <type>1</type>
158
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/ManagerBase.h</locationURI>
159
+ </link>
160
+ <link>
161
+ <name>MemPool.cpp</name>
162
+ <type>1</type>
163
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/MemPool.cpp</locationURI>
164
+ </link>
165
+ <link>
166
+ <name>MemPool.h</name>
167
+ <type>1</type>
168
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/MemPool.h</locationURI>
169
+ </link>
170
+ <link>
171
+ <name>MemPoolAllocator.h</name>
172
+ <type>1</type>
173
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/MemPoolAllocator.h</locationURI>
174
+ </link>
175
+ <link>
176
+ <name>Phrase.cpp</name>
177
+ <type>1</type>
178
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/Phrase.cpp</locationURI>
179
+ </link>
180
+ <link>
181
+ <name>Phrase.h</name>
182
+ <type>1</type>
183
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/Phrase.h</locationURI>
184
+ </link>
185
+ <link>
186
+ <name>PhraseBased</name>
187
+ <type>2</type>
188
+ <locationURI>virtual:/virtual</locationURI>
189
+ </link>
190
+ <link>
191
+ <name>PhraseImplTemplate.h</name>
192
+ <type>1</type>
193
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseImplTemplate.h</locationURI>
194
+ </link>
195
+ <link>
196
+ <name>Recycler.cpp</name>
197
+ <type>1</type>
198
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/Recycler.cpp</locationURI>
199
+ </link>
200
+ <link>
201
+ <name>Recycler.h</name>
202
+ <type>1</type>
203
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/Recycler.h</locationURI>
204
+ </link>
205
+ <link>
206
+ <name>SCFG</name>
207
+ <type>2</type>
208
+ <locationURI>virtual:/virtual</locationURI>
209
+ </link>
210
+ <link>
211
+ <name>Scores.cpp</name>
212
+ <type>1</type>
213
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/Scores.cpp</locationURI>
214
+ </link>
215
+ <link>
216
+ <name>Scores.h</name>
217
+ <type>1</type>
218
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/Scores.h</locationURI>
219
+ </link>
220
+ <link>
221
+ <name>SubPhrase.cpp</name>
222
+ <type>1</type>
223
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SubPhrase.cpp</locationURI>
224
+ </link>
225
+ <link>
226
+ <name>SubPhrase.h</name>
227
+ <type>1</type>
228
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SubPhrase.h</locationURI>
229
+ </link>
230
+ <link>
231
+ <name>System.cpp</name>
232
+ <type>1</type>
233
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/System.cpp</locationURI>
234
+ </link>
235
+ <link>
236
+ <name>System.h</name>
237
+ <type>1</type>
238
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/System.h</locationURI>
239
+ </link>
240
+ <link>
241
+ <name>TargetPhrase.cpp</name>
242
+ <type>1</type>
243
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TargetPhrase.cpp</locationURI>
244
+ </link>
245
+ <link>
246
+ <name>TargetPhrase.h</name>
247
+ <type>1</type>
248
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TargetPhrase.h</locationURI>
249
+ </link>
250
+ <link>
251
+ <name>TranslationModel</name>
252
+ <type>2</type>
253
+ <locationURI>virtual:/virtual</locationURI>
254
+ </link>
255
+ <link>
256
+ <name>TranslationTask.cpp</name>
257
+ <type>1</type>
258
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationTask.cpp</locationURI>
259
+ </link>
260
+ <link>
261
+ <name>TranslationTask.h</name>
262
+ <type>1</type>
263
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationTask.h</locationURI>
264
+ </link>
265
+ <link>
266
+ <name>TrellisPaths.cpp</name>
267
+ <type>1</type>
268
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TrellisPaths.cpp</locationURI>
269
+ </link>
270
+ <link>
271
+ <name>TrellisPaths.h</name>
272
+ <type>1</type>
273
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TrellisPaths.h</locationURI>
274
+ </link>
275
+ <link>
276
+ <name>TypeDef.cpp</name>
277
+ <type>1</type>
278
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TypeDef.cpp</locationURI>
279
+ </link>
280
+ <link>
281
+ <name>TypeDef.h</name>
282
+ <type>1</type>
283
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TypeDef.h</locationURI>
284
+ </link>
285
+ <link>
286
+ <name>Vector.cpp</name>
287
+ <type>1</type>
288
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/Vector.cpp</locationURI>
289
+ </link>
290
+ <link>
291
+ <name>Vector.h</name>
292
+ <type>1</type>
293
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/Vector.h</locationURI>
294
+ </link>
295
+ <link>
296
+ <name>Weights.cpp</name>
297
+ <type>1</type>
298
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/Weights.cpp</locationURI>
299
+ </link>
300
+ <link>
301
+ <name>Weights.h</name>
302
+ <type>1</type>
303
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/Weights.h</locationURI>
304
+ </link>
305
+ <link>
306
+ <name>Word.cpp</name>
307
+ <type>1</type>
308
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/Word.cpp</locationURI>
309
+ </link>
310
+ <link>
311
+ <name>Word.h</name>
312
+ <type>1</type>
313
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/Word.h</locationURI>
314
+ </link>
315
+ <link>
316
+ <name>defer</name>
317
+ <type>2</type>
318
+ <locationURI>virtual:/virtual</locationURI>
319
+ </link>
320
+ <link>
321
+ <name>legacy</name>
322
+ <type>2</type>
323
+ <locationURI>virtual:/virtual</locationURI>
324
+ </link>
325
+ <link>
326
+ <name>parameters</name>
327
+ <type>2</type>
328
+ <locationURI>virtual:/virtual</locationURI>
329
+ </link>
330
+ <link>
331
+ <name>pugiconfig.hpp</name>
332
+ <type>1</type>
333
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/pugiconfig.hpp</locationURI>
334
+ </link>
335
+ <link>
336
+ <name>pugixml.cpp</name>
337
+ <type>1</type>
338
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/pugixml.cpp</locationURI>
339
+ </link>
340
+ <link>
341
+ <name>pugixml.hpp</name>
342
+ <type>1</type>
343
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/pugixml.hpp</locationURI>
344
+ </link>
345
+ <link>
346
+ <name>server</name>
347
+ <type>2</type>
348
+ <locationURI>virtual:/virtual</locationURI>
349
+ </link>
350
+ <link>
351
+ <name>FF/Distortion.cpp</name>
352
+ <type>1</type>
353
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/Distortion.cpp</locationURI>
354
+ </link>
355
+ <link>
356
+ <name>FF/Distortion.h</name>
357
+ <type>1</type>
358
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/Distortion.h</locationURI>
359
+ </link>
360
+ <link>
361
+ <name>FF/ExampleStatefulFF.cpp</name>
362
+ <type>1</type>
363
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/ExampleStatefulFF.cpp</locationURI>
364
+ </link>
365
+ <link>
366
+ <name>FF/ExampleStatefulFF.h</name>
367
+ <type>1</type>
368
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/ExampleStatefulFF.h</locationURI>
369
+ </link>
370
+ <link>
371
+ <name>FF/ExampleStatelessFF.cpp</name>
372
+ <type>1</type>
373
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/ExampleStatelessFF.cpp</locationURI>
374
+ </link>
375
+ <link>
376
+ <name>FF/ExampleStatelessFF.h</name>
377
+ <type>1</type>
378
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/ExampleStatelessFF.h</locationURI>
379
+ </link>
380
+ <link>
381
+ <name>FF/FFState.cpp</name>
382
+ <type>1</type>
383
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/FFState.cpp</locationURI>
384
+ </link>
385
+ <link>
386
+ <name>FF/FFState.h</name>
387
+ <type>1</type>
388
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/FFState.h</locationURI>
389
+ </link>
390
+ <link>
391
+ <name>FF/FeatureFunction.cpp</name>
392
+ <type>1</type>
393
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/FeatureFunction.cpp</locationURI>
394
+ </link>
395
+ <link>
396
+ <name>FF/FeatureFunction.h</name>
397
+ <type>1</type>
398
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/FeatureFunction.h</locationURI>
399
+ </link>
400
+ <link>
401
+ <name>FF/FeatureFunctions.cpp</name>
402
+ <type>1</type>
403
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/FeatureFunctions.cpp</locationURI>
404
+ </link>
405
+ <link>
406
+ <name>FF/FeatureFunctions.h</name>
407
+ <type>1</type>
408
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/FeatureFunctions.h</locationURI>
409
+ </link>
410
+ <link>
411
+ <name>FF/FeatureRegistry.cpp</name>
412
+ <type>1</type>
413
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/FeatureRegistry.cpp</locationURI>
414
+ </link>
415
+ <link>
416
+ <name>FF/FeatureRegistry.h</name>
417
+ <type>1</type>
418
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/FeatureRegistry.h</locationURI>
419
+ </link>
420
+ <link>
421
+ <name>FF/LexicalReordering</name>
422
+ <type>2</type>
423
+ <locationURI>virtual:/virtual</locationURI>
424
+ </link>
425
+ <link>
426
+ <name>FF/OSM</name>
427
+ <type>2</type>
428
+ <locationURI>virtual:/virtual</locationURI>
429
+ </link>
430
+ <link>
431
+ <name>FF/PhrasePenalty.cpp</name>
432
+ <type>1</type>
433
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/PhrasePenalty.cpp</locationURI>
434
+ </link>
435
+ <link>
436
+ <name>FF/PhrasePenalty.h</name>
437
+ <type>1</type>
438
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/PhrasePenalty.h</locationURI>
439
+ </link>
440
+ <link>
441
+ <name>FF/PointerState.cpp</name>
442
+ <type>1</type>
443
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/PointerState.cpp</locationURI>
444
+ </link>
445
+ <link>
446
+ <name>FF/PointerState.h</name>
447
+ <type>1</type>
448
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/PointerState.h</locationURI>
449
+ </link>
450
+ <link>
451
+ <name>FF/StatefulFeatureFunction.cpp</name>
452
+ <type>1</type>
453
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/StatefulFeatureFunction.cpp</locationURI>
454
+ </link>
455
+ <link>
456
+ <name>FF/StatefulFeatureFunction.h</name>
457
+ <type>1</type>
458
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/StatefulFeatureFunction.h</locationURI>
459
+ </link>
460
+ <link>
461
+ <name>FF/StatelessFeatureFunction.cpp</name>
462
+ <type>1</type>
463
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/StatelessFeatureFunction.cpp</locationURI>
464
+ </link>
465
+ <link>
466
+ <name>FF/StatelessFeatureFunction.h</name>
467
+ <type>1</type>
468
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/StatelessFeatureFunction.h</locationURI>
469
+ </link>
470
+ <link>
471
+ <name>FF/WordPenalty.cpp</name>
472
+ <type>1</type>
473
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/WordPenalty.cpp</locationURI>
474
+ </link>
475
+ <link>
476
+ <name>FF/WordPenalty.h</name>
477
+ <type>1</type>
478
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/WordPenalty.h</locationURI>
479
+ </link>
480
+ <link>
481
+ <name>InMemoryTrie/InMemoryTrie.h</name>
482
+ <type>1</type>
483
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/InMemoryTrie/InMemoryTrie.h</locationURI>
484
+ </link>
485
+ <link>
486
+ <name>InMemoryTrie/Node.h</name>
487
+ <type>1</type>
488
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/InMemoryTrie/Node.h</locationURI>
489
+ </link>
490
+ <link>
491
+ <name>InMemoryTrie/utils.h</name>
492
+ <type>1</type>
493
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/InMemoryTrie/utils.h</locationURI>
494
+ </link>
495
+ <link>
496
+ <name>LM/GPULM.cpp</name>
497
+ <type>1</type>
498
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/LM/GPULM.cpp</locationURI>
499
+ </link>
500
+ <link>
501
+ <name>LM/GPULM.h</name>
502
+ <type>1</type>
503
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/LM/GPULM.h</locationURI>
504
+ </link>
505
+ <link>
506
+ <name>LM/KENLM.cpp</name>
507
+ <type>1</type>
508
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/LM/KENLM.cpp</locationURI>
509
+ </link>
510
+ <link>
511
+ <name>LM/KENLM.h</name>
512
+ <type>1</type>
513
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/LM/KENLM.h</locationURI>
514
+ </link>
515
+ <link>
516
+ <name>LM/KENLMBatch.cpp</name>
517
+ <type>1</type>
518
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/LM/KENLMBatch.cpp</locationURI>
519
+ </link>
520
+ <link>
521
+ <name>LM/KENLMBatch.h</name>
522
+ <type>1</type>
523
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/LM/KENLMBatch.h</locationURI>
524
+ </link>
525
+ <link>
526
+ <name>LM/LanguageModel.cpp</name>
527
+ <type>1</type>
528
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/LM/LanguageModel.cpp</locationURI>
529
+ </link>
530
+ <link>
531
+ <name>LM/LanguageModel.h</name>
532
+ <type>1</type>
533
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/LM/LanguageModel.h</locationURI>
534
+ </link>
535
+ <link>
536
+ <name>PhraseBased/CubePruningMiniStack</name>
537
+ <type>2</type>
538
+ <locationURI>virtual:/virtual</locationURI>
539
+ </link>
540
+ <link>
541
+ <name>PhraseBased/Hypothesis.cpp</name>
542
+ <type>1</type>
543
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/Hypothesis.cpp</locationURI>
544
+ </link>
545
+ <link>
546
+ <name>PhraseBased/Hypothesis.h</name>
547
+ <type>1</type>
548
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/Hypothesis.h</locationURI>
549
+ </link>
550
+ <link>
551
+ <name>PhraseBased/InputPath.cpp</name>
552
+ <type>1</type>
553
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/InputPath.cpp</locationURI>
554
+ </link>
555
+ <link>
556
+ <name>PhraseBased/InputPath.h</name>
557
+ <type>1</type>
558
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/InputPath.h</locationURI>
559
+ </link>
560
+ <link>
561
+ <name>PhraseBased/InputPaths.cpp</name>
562
+ <type>1</type>
563
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/InputPaths.cpp</locationURI>
564
+ </link>
565
+ <link>
566
+ <name>PhraseBased/InputPaths.h</name>
567
+ <type>1</type>
568
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/InputPaths.h</locationURI>
569
+ </link>
570
+ <link>
571
+ <name>PhraseBased/Manager.cpp</name>
572
+ <type>1</type>
573
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/Manager.cpp</locationURI>
574
+ </link>
575
+ <link>
576
+ <name>PhraseBased/Manager.h</name>
577
+ <type>1</type>
578
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/Manager.h</locationURI>
579
+ </link>
580
+ <link>
581
+ <name>PhraseBased/Normal</name>
582
+ <type>2</type>
583
+ <locationURI>virtual:/virtual</locationURI>
584
+ </link>
585
+ <link>
586
+ <name>PhraseBased/PhraseImpl.cpp</name>
587
+ <type>1</type>
588
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/PhraseImpl.cpp</locationURI>
589
+ </link>
590
+ <link>
591
+ <name>PhraseBased/PhraseImpl.h</name>
592
+ <type>1</type>
593
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/PhraseImpl.h</locationURI>
594
+ </link>
595
+ <link>
596
+ <name>PhraseBased/ReorderingConstraint.cpp</name>
597
+ <type>1</type>
598
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/ReorderingConstraint.cpp</locationURI>
599
+ </link>
600
+ <link>
601
+ <name>PhraseBased/ReorderingConstraint.h</name>
602
+ <type>1</type>
603
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/ReorderingConstraint.h</locationURI>
604
+ </link>
605
+ <link>
606
+ <name>PhraseBased/Search.cpp</name>
607
+ <type>1</type>
608
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/Search.cpp</locationURI>
609
+ </link>
610
+ <link>
611
+ <name>PhraseBased/Search.h</name>
612
+ <type>1</type>
613
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/Search.h</locationURI>
614
+ </link>
615
+ <link>
616
+ <name>PhraseBased/Sentence.cpp</name>
617
+ <type>1</type>
618
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/Sentence.cpp</locationURI>
619
+ </link>
620
+ <link>
621
+ <name>PhraseBased/Sentence.h</name>
622
+ <type>1</type>
623
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/Sentence.h</locationURI>
624
+ </link>
625
+ <link>
626
+ <name>PhraseBased/TargetPhraseImpl.cpp</name>
627
+ <type>1</type>
628
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/TargetPhraseImpl.cpp</locationURI>
629
+ </link>
630
+ <link>
631
+ <name>PhraseBased/TargetPhraseImpl.h</name>
632
+ <type>1</type>
633
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/TargetPhraseImpl.h</locationURI>
634
+ </link>
635
+ <link>
636
+ <name>PhraseBased/TargetPhrases.cpp</name>
637
+ <type>1</type>
638
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/TargetPhrases.cpp</locationURI>
639
+ </link>
640
+ <link>
641
+ <name>PhraseBased/TargetPhrases.h</name>
642
+ <type>1</type>
643
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/TargetPhrases.h</locationURI>
644
+ </link>
645
+ <link>
646
+ <name>PhraseBased/TrellisPath.cpp</name>
647
+ <type>1</type>
648
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/TrellisPath.cpp</locationURI>
649
+ </link>
650
+ <link>
651
+ <name>PhraseBased/TrellisPath.h</name>
652
+ <type>1</type>
653
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/TrellisPath.h</locationURI>
654
+ </link>
655
+ <link>
656
+ <name>SCFG/ActiveChart.cpp</name>
657
+ <type>1</type>
658
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/ActiveChart.cpp</locationURI>
659
+ </link>
660
+ <link>
661
+ <name>SCFG/ActiveChart.h</name>
662
+ <type>1</type>
663
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/ActiveChart.h</locationURI>
664
+ </link>
665
+ <link>
666
+ <name>SCFG/Hypothesis.cpp</name>
667
+ <type>1</type>
668
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/Hypothesis.cpp</locationURI>
669
+ </link>
670
+ <link>
671
+ <name>SCFG/Hypothesis.h</name>
672
+ <type>1</type>
673
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/Hypothesis.h</locationURI>
674
+ </link>
675
+ <link>
676
+ <name>SCFG/InputPath.cpp</name>
677
+ <type>1</type>
678
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/InputPath.cpp</locationURI>
679
+ </link>
680
+ <link>
681
+ <name>SCFG/InputPath.h</name>
682
+ <type>1</type>
683
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/InputPath.h</locationURI>
684
+ </link>
685
+ <link>
686
+ <name>SCFG/InputPaths.cpp</name>
687
+ <type>1</type>
688
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/InputPaths.cpp</locationURI>
689
+ </link>
690
+ <link>
691
+ <name>SCFG/InputPaths.h</name>
692
+ <type>1</type>
693
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/InputPaths.h</locationURI>
694
+ </link>
695
+ <link>
696
+ <name>SCFG/Manager.cpp</name>
697
+ <type>1</type>
698
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/Manager.cpp</locationURI>
699
+ </link>
700
+ <link>
701
+ <name>SCFG/Manager.h</name>
702
+ <type>1</type>
703
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/Manager.h</locationURI>
704
+ </link>
705
+ <link>
706
+ <name>SCFG/Misc.cpp</name>
707
+ <type>1</type>
708
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/Misc.cpp</locationURI>
709
+ </link>
710
+ <link>
711
+ <name>SCFG/Misc.h</name>
712
+ <type>1</type>
713
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/Misc.h</locationURI>
714
+ </link>
715
+ <link>
716
+ <name>SCFG/PhraseImpl.cpp</name>
717
+ <type>1</type>
718
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/PhraseImpl.cpp</locationURI>
719
+ </link>
720
+ <link>
721
+ <name>SCFG/PhraseImpl.h</name>
722
+ <type>1</type>
723
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/PhraseImpl.h</locationURI>
724
+ </link>
725
+ <link>
726
+ <name>SCFG/Sentence.cpp</name>
727
+ <type>1</type>
728
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/Sentence.cpp</locationURI>
729
+ </link>
730
+ <link>
731
+ <name>SCFG/Sentence.h</name>
732
+ <type>1</type>
733
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/Sentence.h</locationURI>
734
+ </link>
735
+ <link>
736
+ <name>SCFG/Stack.cpp</name>
737
+ <type>1</type>
738
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/Stack.cpp</locationURI>
739
+ </link>
740
+ <link>
741
+ <name>SCFG/Stack.h</name>
742
+ <type>1</type>
743
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/Stack.h</locationURI>
744
+ </link>
745
+ <link>
746
+ <name>SCFG/Stacks.cpp</name>
747
+ <type>1</type>
748
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/Stacks.cpp</locationURI>
749
+ </link>
750
+ <link>
751
+ <name>SCFG/Stacks.h</name>
752
+ <type>1</type>
753
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/Stacks.h</locationURI>
754
+ </link>
755
+ <link>
756
+ <name>SCFG/TargetPhraseImpl.cpp</name>
757
+ <type>1</type>
758
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/TargetPhraseImpl.cpp</locationURI>
759
+ </link>
760
+ <link>
761
+ <name>SCFG/TargetPhraseImpl.h</name>
762
+ <type>1</type>
763
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/TargetPhraseImpl.h</locationURI>
764
+ </link>
765
+ <link>
766
+ <name>SCFG/TargetPhrases.cpp</name>
767
+ <type>1</type>
768
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/TargetPhrases.cpp</locationURI>
769
+ </link>
770
+ <link>
771
+ <name>SCFG/TargetPhrases.h</name>
772
+ <type>1</type>
773
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/TargetPhrases.h</locationURI>
774
+ </link>
775
+ <link>
776
+ <name>SCFG/Word.cpp</name>
777
+ <type>1</type>
778
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/Word.cpp</locationURI>
779
+ </link>
780
+ <link>
781
+ <name>SCFG/Word.h</name>
782
+ <type>1</type>
783
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/Word.h</locationURI>
784
+ </link>
785
+ <link>
786
+ <name>SCFG/nbest</name>
787
+ <type>2</type>
788
+ <locationURI>virtual:/virtual</locationURI>
789
+ </link>
790
+ <link>
791
+ <name>TranslationModel/CompactPT</name>
792
+ <type>2</type>
793
+ <locationURI>virtual:/virtual</locationURI>
794
+ </link>
795
+ <link>
796
+ <name>TranslationModel/Memory</name>
797
+ <type>2</type>
798
+ <locationURI>virtual:/virtual</locationURI>
799
+ </link>
800
+ <link>
801
+ <name>TranslationModel/PhraseTable.cpp</name>
802
+ <type>1</type>
803
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/PhraseTable.cpp</locationURI>
804
+ </link>
805
+ <link>
806
+ <name>TranslationModel/PhraseTable.h</name>
807
+ <type>1</type>
808
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/PhraseTable.h</locationURI>
809
+ </link>
810
+ <link>
811
+ <name>TranslationModel/ProbingPT.cpp</name>
812
+ <type>1</type>
813
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/ProbingPT.cpp</locationURI>
814
+ </link>
815
+ <link>
816
+ <name>TranslationModel/ProbingPT.h</name>
817
+ <type>1</type>
818
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/ProbingPT.h</locationURI>
819
+ </link>
820
+ <link>
821
+ <name>TranslationModel/Transliteration.cpp</name>
822
+ <type>1</type>
823
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/Transliteration.cpp</locationURI>
824
+ </link>
825
+ <link>
826
+ <name>TranslationModel/Transliteration.h</name>
827
+ <type>1</type>
828
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/Transliteration.h</locationURI>
829
+ </link>
830
+ <link>
831
+ <name>TranslationModel/UnknownWordPenalty.cpp</name>
832
+ <type>1</type>
833
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/UnknownWordPenalty.cpp</locationURI>
834
+ </link>
835
+ <link>
836
+ <name>TranslationModel/UnknownWordPenalty.h</name>
837
+ <type>1</type>
838
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/UnknownWordPenalty.h</locationURI>
839
+ </link>
840
+ <link>
841
+ <name>defer/CubePruningBitmapStack</name>
842
+ <type>2</type>
843
+ <locationURI>virtual:/virtual</locationURI>
844
+ </link>
845
+ <link>
846
+ <name>defer/CubePruningCardinalStack</name>
847
+ <type>2</type>
848
+ <locationURI>virtual:/virtual</locationURI>
849
+ </link>
850
+ <link>
851
+ <name>defer/CubePruningPerBitmap</name>
852
+ <type>2</type>
853
+ <locationURI>virtual:/virtual</locationURI>
854
+ </link>
855
+ <link>
856
+ <name>defer/CubePruningPerMiniStack</name>
857
+ <type>2</type>
858
+ <locationURI>virtual:/virtual</locationURI>
859
+ </link>
860
+ <link>
861
+ <name>legacy/Bitmap.cpp</name>
862
+ <type>1</type>
863
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/Bitmap.cpp</locationURI>
864
+ </link>
865
+ <link>
866
+ <name>legacy/Bitmap.h</name>
867
+ <type>1</type>
868
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/Bitmap.h</locationURI>
869
+ </link>
870
+ <link>
871
+ <name>legacy/Bitmaps.cpp</name>
872
+ <type>1</type>
873
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/Bitmaps.cpp</locationURI>
874
+ </link>
875
+ <link>
876
+ <name>legacy/Bitmaps.h</name>
877
+ <type>1</type>
878
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/Bitmaps.h</locationURI>
879
+ </link>
880
+ <link>
881
+ <name>legacy/Factor.cpp</name>
882
+ <type>1</type>
883
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/Factor.cpp</locationURI>
884
+ </link>
885
+ <link>
886
+ <name>legacy/Factor.h</name>
887
+ <type>1</type>
888
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/Factor.h</locationURI>
889
+ </link>
890
+ <link>
891
+ <name>legacy/FactorCollection.cpp</name>
892
+ <type>1</type>
893
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/FactorCollection.cpp</locationURI>
894
+ </link>
895
+ <link>
896
+ <name>legacy/FactorCollection.h</name>
897
+ <type>1</type>
898
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/FactorCollection.h</locationURI>
899
+ </link>
900
+ <link>
901
+ <name>legacy/InputFileStream.cpp</name>
902
+ <type>1</type>
903
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/InputFileStream.cpp</locationURI>
904
+ </link>
905
+ <link>
906
+ <name>legacy/InputFileStream.h</name>
907
+ <type>1</type>
908
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/InputFileStream.h</locationURI>
909
+ </link>
910
+ <link>
911
+ <name>legacy/Matrix.cpp</name>
912
+ <type>1</type>
913
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/Matrix.cpp</locationURI>
914
+ </link>
915
+ <link>
916
+ <name>legacy/Matrix.h</name>
917
+ <type>1</type>
918
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/Matrix.h</locationURI>
919
+ </link>
920
+ <link>
921
+ <name>legacy/OutputCollector.h</name>
922
+ <type>1</type>
923
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/OutputCollector.h</locationURI>
924
+ </link>
925
+ <link>
926
+ <name>legacy/OutputFileStream.cpp</name>
927
+ <type>1</type>
928
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/OutputFileStream.cpp</locationURI>
929
+ </link>
930
+ <link>
931
+ <name>legacy/OutputFileStream.h</name>
932
+ <type>1</type>
933
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/OutputFileStream.h</locationURI>
934
+ </link>
935
+ <link>
936
+ <name>legacy/Parameter.cpp</name>
937
+ <type>1</type>
938
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/Parameter.cpp</locationURI>
939
+ </link>
940
+ <link>
941
+ <name>legacy/Parameter.h</name>
942
+ <type>1</type>
943
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/Parameter.h</locationURI>
944
+ </link>
945
+ <link>
946
+ <name>legacy/Range.cpp</name>
947
+ <type>1</type>
948
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/Range.cpp</locationURI>
949
+ </link>
950
+ <link>
951
+ <name>legacy/Range.h</name>
952
+ <type>1</type>
953
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/Range.h</locationURI>
954
+ </link>
955
+ <link>
956
+ <name>legacy/ThreadPool.cpp</name>
957
+ <type>1</type>
958
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/ThreadPool.cpp</locationURI>
959
+ </link>
960
+ <link>
961
+ <name>legacy/ThreadPool.h</name>
962
+ <type>1</type>
963
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/ThreadPool.h</locationURI>
964
+ </link>
965
+ <link>
966
+ <name>legacy/Timer.cpp</name>
967
+ <type>1</type>
968
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/Timer.cpp</locationURI>
969
+ </link>
970
+ <link>
971
+ <name>legacy/Timer.h</name>
972
+ <type>1</type>
973
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/Timer.h</locationURI>
974
+ </link>
975
+ <link>
976
+ <name>legacy/Util2.cpp</name>
977
+ <type>1</type>
978
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/Util2.cpp</locationURI>
979
+ </link>
980
+ <link>
981
+ <name>legacy/Util2.h</name>
982
+ <type>1</type>
983
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/Util2.h</locationURI>
984
+ </link>
985
+ <link>
986
+ <name>legacy/gzfilebuf.h</name>
987
+ <type>1</type>
988
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/gzfilebuf.h</locationURI>
989
+ </link>
990
+ <link>
991
+ <name>legacy/xmlrpc-c.h</name>
992
+ <type>1</type>
993
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/legacy/xmlrpc-c.h</locationURI>
994
+ </link>
995
+ <link>
996
+ <name>parameters/AllOptions.cpp</name>
997
+ <type>1</type>
998
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/AllOptions.cpp</locationURI>
999
+ </link>
1000
+ <link>
1001
+ <name>parameters/AllOptions.h</name>
1002
+ <type>1</type>
1003
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/AllOptions.h</locationURI>
1004
+ </link>
1005
+ <link>
1006
+ <name>parameters/BeamSearchOptions.h</name>
1007
+ <type>1</type>
1008
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/BeamSearchOptions.h</locationURI>
1009
+ </link>
1010
+ <link>
1011
+ <name>parameters/BookkeepingOptions.cpp</name>
1012
+ <type>1</type>
1013
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/BookkeepingOptions.cpp</locationURI>
1014
+ </link>
1015
+ <link>
1016
+ <name>parameters/BookkeepingOptions.h</name>
1017
+ <type>1</type>
1018
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/BookkeepingOptions.h</locationURI>
1019
+ </link>
1020
+ <link>
1021
+ <name>parameters/ContextParameters.cpp</name>
1022
+ <type>1</type>
1023
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/ContextParameters.cpp</locationURI>
1024
+ </link>
1025
+ <link>
1026
+ <name>parameters/ContextParameters.h</name>
1027
+ <type>1</type>
1028
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/ContextParameters.h</locationURI>
1029
+ </link>
1030
+ <link>
1031
+ <name>parameters/CubePruningOptions.cpp</name>
1032
+ <type>1</type>
1033
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/CubePruningOptions.cpp</locationURI>
1034
+ </link>
1035
+ <link>
1036
+ <name>parameters/CubePruningOptions.h</name>
1037
+ <type>1</type>
1038
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/CubePruningOptions.h</locationURI>
1039
+ </link>
1040
+ <link>
1041
+ <name>parameters/InputOptions.cpp</name>
1042
+ <type>1</type>
1043
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/InputOptions.cpp</locationURI>
1044
+ </link>
1045
+ <link>
1046
+ <name>parameters/InputOptions.h</name>
1047
+ <type>1</type>
1048
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/InputOptions.h</locationURI>
1049
+ </link>
1050
+ <link>
1051
+ <name>parameters/LMBR_Options.cpp</name>
1052
+ <type>1</type>
1053
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/LMBR_Options.cpp</locationURI>
1054
+ </link>
1055
+ <link>
1056
+ <name>parameters/LMBR_Options.h</name>
1057
+ <type>1</type>
1058
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/LMBR_Options.h</locationURI>
1059
+ </link>
1060
+ <link>
1061
+ <name>parameters/LookupOptions.h</name>
1062
+ <type>1</type>
1063
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/LookupOptions.h</locationURI>
1064
+ </link>
1065
+ <link>
1066
+ <name>parameters/MBR_Options.cpp</name>
1067
+ <type>1</type>
1068
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/MBR_Options.cpp</locationURI>
1069
+ </link>
1070
+ <link>
1071
+ <name>parameters/MBR_Options.h</name>
1072
+ <type>1</type>
1073
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/MBR_Options.h</locationURI>
1074
+ </link>
1075
+ <link>
1076
+ <name>parameters/NBestOptions.cpp</name>
1077
+ <type>1</type>
1078
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/NBestOptions.cpp</locationURI>
1079
+ </link>
1080
+ <link>
1081
+ <name>parameters/NBestOptions.h</name>
1082
+ <type>1</type>
1083
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/NBestOptions.h</locationURI>
1084
+ </link>
1085
+ <link>
1086
+ <name>parameters/OOVHandlingOptions.cpp</name>
1087
+ <type>1</type>
1088
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/OOVHandlingOptions.cpp</locationURI>
1089
+ </link>
1090
+ <link>
1091
+ <name>parameters/OOVHandlingOptions.h</name>
1092
+ <type>1</type>
1093
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/OOVHandlingOptions.h</locationURI>
1094
+ </link>
1095
+ <link>
1096
+ <name>parameters/OptionsBaseClass.cpp</name>
1097
+ <type>1</type>
1098
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/OptionsBaseClass.cpp</locationURI>
1099
+ </link>
1100
+ <link>
1101
+ <name>parameters/OptionsBaseClass.h</name>
1102
+ <type>1</type>
1103
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/OptionsBaseClass.h</locationURI>
1104
+ </link>
1105
+ <link>
1106
+ <name>parameters/ReorderingOptions.cpp</name>
1107
+ <type>1</type>
1108
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/ReorderingOptions.cpp</locationURI>
1109
+ </link>
1110
+ <link>
1111
+ <name>parameters/ReorderingOptions.h</name>
1112
+ <type>1</type>
1113
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/ReorderingOptions.h</locationURI>
1114
+ </link>
1115
+ <link>
1116
+ <name>parameters/ReportingOptions.cpp</name>
1117
+ <type>1</type>
1118
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/ReportingOptions.cpp</locationURI>
1119
+ </link>
1120
+ <link>
1121
+ <name>parameters/ReportingOptions.h</name>
1122
+ <type>1</type>
1123
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/ReportingOptions.h</locationURI>
1124
+ </link>
1125
+ <link>
1126
+ <name>parameters/SearchOptions.cpp</name>
1127
+ <type>1</type>
1128
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/SearchOptions.cpp</locationURI>
1129
+ </link>
1130
+ <link>
1131
+ <name>parameters/SearchOptions.h</name>
1132
+ <type>1</type>
1133
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/SearchOptions.h</locationURI>
1134
+ </link>
1135
+ <link>
1136
+ <name>parameters/ServerOptions.cpp</name>
1137
+ <type>1</type>
1138
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/ServerOptions.cpp</locationURI>
1139
+ </link>
1140
+ <link>
1141
+ <name>parameters/ServerOptions.h</name>
1142
+ <type>1</type>
1143
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/ServerOptions.h</locationURI>
1144
+ </link>
1145
+ <link>
1146
+ <name>parameters/SyntaxOptions.cpp</name>
1147
+ <type>1</type>
1148
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/SyntaxOptions.cpp</locationURI>
1149
+ </link>
1150
+ <link>
1151
+ <name>parameters/SyntaxOptions.h</name>
1152
+ <type>1</type>
1153
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/parameters/SyntaxOptions.h</locationURI>
1154
+ </link>
1155
+ <link>
1156
+ <name>server/Server.cpp</name>
1157
+ <type>1</type>
1158
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/server/Server.cpp</locationURI>
1159
+ </link>
1160
+ <link>
1161
+ <name>server/Server.h</name>
1162
+ <type>1</type>
1163
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/server/Server.h</locationURI>
1164
+ </link>
1165
+ <link>
1166
+ <name>server/TranslationRequest.cpp</name>
1167
+ <type>1</type>
1168
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/server/TranslationRequest.cpp</locationURI>
1169
+ </link>
1170
+ <link>
1171
+ <name>server/TranslationRequest.h</name>
1172
+ <type>1</type>
1173
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/server/TranslationRequest.h</locationURI>
1174
+ </link>
1175
+ <link>
1176
+ <name>server/Translator.cpp</name>
1177
+ <type>1</type>
1178
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/server/Translator.cpp</locationURI>
1179
+ </link>
1180
+ <link>
1181
+ <name>server/Translator.h</name>
1182
+ <type>1</type>
1183
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/server/Translator.h</locationURI>
1184
+ </link>
1185
+ <link>
1186
+ <name>FF/LexicalReordering/BidirectionalReorderingState.cpp</name>
1187
+ <type>1</type>
1188
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/LexicalReordering/BidirectionalReorderingState.cpp</locationURI>
1189
+ </link>
1190
+ <link>
1191
+ <name>FF/LexicalReordering/BidirectionalReorderingState.h</name>
1192
+ <type>1</type>
1193
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/LexicalReordering/BidirectionalReorderingState.h</locationURI>
1194
+ </link>
1195
+ <link>
1196
+ <name>FF/LexicalReordering/HReorderingBackwardState.cpp</name>
1197
+ <type>1</type>
1198
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/LexicalReordering/HReorderingBackwardState.cpp</locationURI>
1199
+ </link>
1200
+ <link>
1201
+ <name>FF/LexicalReordering/HReorderingBackwardState.h</name>
1202
+ <type>1</type>
1203
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/LexicalReordering/HReorderingBackwardState.h</locationURI>
1204
+ </link>
1205
+ <link>
1206
+ <name>FF/LexicalReordering/HReorderingForwardState.cpp</name>
1207
+ <type>1</type>
1208
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/LexicalReordering/HReorderingForwardState.cpp</locationURI>
1209
+ </link>
1210
+ <link>
1211
+ <name>FF/LexicalReordering/HReorderingForwardState.h</name>
1212
+ <type>1</type>
1213
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/LexicalReordering/HReorderingForwardState.h</locationURI>
1214
+ </link>
1215
+ <link>
1216
+ <name>FF/LexicalReordering/LRModel.cpp</name>
1217
+ <type>1</type>
1218
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/LexicalReordering/LRModel.cpp</locationURI>
1219
+ </link>
1220
+ <link>
1221
+ <name>FF/LexicalReordering/LRModel.h</name>
1222
+ <type>1</type>
1223
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/LexicalReordering/LRModel.h</locationURI>
1224
+ </link>
1225
+ <link>
1226
+ <name>FF/LexicalReordering/LRState.cpp</name>
1227
+ <type>1</type>
1228
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/LexicalReordering/LRState.cpp</locationURI>
1229
+ </link>
1230
+ <link>
1231
+ <name>FF/LexicalReordering/LRState.h</name>
1232
+ <type>1</type>
1233
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/LexicalReordering/LRState.h</locationURI>
1234
+ </link>
1235
+ <link>
1236
+ <name>FF/LexicalReordering/LexicalReordering.cpp</name>
1237
+ <type>1</type>
1238
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/LexicalReordering/LexicalReordering.cpp</locationURI>
1239
+ </link>
1240
+ <link>
1241
+ <name>FF/LexicalReordering/LexicalReordering.h</name>
1242
+ <type>1</type>
1243
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/LexicalReordering/LexicalReordering.h</locationURI>
1244
+ </link>
1245
+ <link>
1246
+ <name>FF/LexicalReordering/PhraseBasedReorderingState.cpp</name>
1247
+ <type>1</type>
1248
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/LexicalReordering/PhraseBasedReorderingState.cpp</locationURI>
1249
+ </link>
1250
+ <link>
1251
+ <name>FF/LexicalReordering/PhraseBasedReorderingState.h</name>
1252
+ <type>1</type>
1253
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/LexicalReordering/PhraseBasedReorderingState.h</locationURI>
1254
+ </link>
1255
+ <link>
1256
+ <name>FF/LexicalReordering/ReorderingStack.cpp</name>
1257
+ <type>1</type>
1258
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/LexicalReordering/ReorderingStack.cpp</locationURI>
1259
+ </link>
1260
+ <link>
1261
+ <name>FF/LexicalReordering/ReorderingStack.h</name>
1262
+ <type>1</type>
1263
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/LexicalReordering/ReorderingStack.h</locationURI>
1264
+ </link>
1265
+ <link>
1266
+ <name>FF/OSM/KenOSM.cpp</name>
1267
+ <type>1</type>
1268
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/OSM/KenOSM.cpp</locationURI>
1269
+ </link>
1270
+ <link>
1271
+ <name>FF/OSM/KenOSM.h</name>
1272
+ <type>1</type>
1273
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/OSM/KenOSM.h</locationURI>
1274
+ </link>
1275
+ <link>
1276
+ <name>FF/OSM/OpSequenceModel.cpp</name>
1277
+ <type>1</type>
1278
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/OSM/OpSequenceModel.cpp</locationURI>
1279
+ </link>
1280
+ <link>
1281
+ <name>FF/OSM/OpSequenceModel.h</name>
1282
+ <type>1</type>
1283
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/OSM/OpSequenceModel.h</locationURI>
1284
+ </link>
1285
+ <link>
1286
+ <name>FF/OSM/osmHyp.cpp</name>
1287
+ <type>1</type>
1288
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/OSM/osmHyp.cpp</locationURI>
1289
+ </link>
1290
+ <link>
1291
+ <name>FF/OSM/osmHyp.h</name>
1292
+ <type>1</type>
1293
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/FF/OSM/osmHyp.h</locationURI>
1294
+ </link>
1295
+ <link>
1296
+ <name>PhraseBased/CubePruningMiniStack/Misc.cpp</name>
1297
+ <type>1</type>
1298
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/CubePruningMiniStack/Misc.cpp</locationURI>
1299
+ </link>
1300
+ <link>
1301
+ <name>PhraseBased/CubePruningMiniStack/Misc.h</name>
1302
+ <type>1</type>
1303
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/CubePruningMiniStack/Misc.h</locationURI>
1304
+ </link>
1305
+ <link>
1306
+ <name>PhraseBased/CubePruningMiniStack/Search.cpp</name>
1307
+ <type>1</type>
1308
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/CubePruningMiniStack/Search.cpp</locationURI>
1309
+ </link>
1310
+ <link>
1311
+ <name>PhraseBased/CubePruningMiniStack/Search.h</name>
1312
+ <type>1</type>
1313
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/CubePruningMiniStack/Search.h</locationURI>
1314
+ </link>
1315
+ <link>
1316
+ <name>PhraseBased/CubePruningMiniStack/Stack.cpp</name>
1317
+ <type>1</type>
1318
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/CubePruningMiniStack/Stack.cpp</locationURI>
1319
+ </link>
1320
+ <link>
1321
+ <name>PhraseBased/CubePruningMiniStack/Stack.h</name>
1322
+ <type>1</type>
1323
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/CubePruningMiniStack/Stack.h</locationURI>
1324
+ </link>
1325
+ <link>
1326
+ <name>PhraseBased/Normal/Search.cpp</name>
1327
+ <type>1</type>
1328
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/Normal/Search.cpp</locationURI>
1329
+ </link>
1330
+ <link>
1331
+ <name>PhraseBased/Normal/Search.h</name>
1332
+ <type>1</type>
1333
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/Normal/Search.h</locationURI>
1334
+ </link>
1335
+ <link>
1336
+ <name>PhraseBased/Normal/Stack.cpp</name>
1337
+ <type>1</type>
1338
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/Normal/Stack.cpp</locationURI>
1339
+ </link>
1340
+ <link>
1341
+ <name>PhraseBased/Normal/Stack.h</name>
1342
+ <type>1</type>
1343
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/Normal/Stack.h</locationURI>
1344
+ </link>
1345
+ <link>
1346
+ <name>PhraseBased/Normal/Stacks.cpp</name>
1347
+ <type>1</type>
1348
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/Normal/Stacks.cpp</locationURI>
1349
+ </link>
1350
+ <link>
1351
+ <name>PhraseBased/Normal/Stacks.h</name>
1352
+ <type>1</type>
1353
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/PhraseBased/Normal/Stacks.h</locationURI>
1354
+ </link>
1355
+ <link>
1356
+ <name>SCFG/nbest/KBestExtractor.cpp</name>
1357
+ <type>1</type>
1358
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/nbest/KBestExtractor.cpp</locationURI>
1359
+ </link>
1360
+ <link>
1361
+ <name>SCFG/nbest/KBestExtractor.h</name>
1362
+ <type>1</type>
1363
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/nbest/KBestExtractor.h</locationURI>
1364
+ </link>
1365
+ <link>
1366
+ <name>SCFG/nbest/NBest.cpp</name>
1367
+ <type>1</type>
1368
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/nbest/NBest.cpp</locationURI>
1369
+ </link>
1370
+ <link>
1371
+ <name>SCFG/nbest/NBest.h</name>
1372
+ <type>1</type>
1373
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/nbest/NBest.h</locationURI>
1374
+ </link>
1375
+ <link>
1376
+ <name>SCFG/nbest/NBestColl.cpp</name>
1377
+ <type>1</type>
1378
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/nbest/NBestColl.cpp</locationURI>
1379
+ </link>
1380
+ <link>
1381
+ <name>SCFG/nbest/NBestColl.h</name>
1382
+ <type>1</type>
1383
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/nbest/NBestColl.h</locationURI>
1384
+ </link>
1385
+ <link>
1386
+ <name>SCFG/nbest/NBests.cpp</name>
1387
+ <type>1</type>
1388
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/nbest/NBests.cpp</locationURI>
1389
+ </link>
1390
+ <link>
1391
+ <name>SCFG/nbest/NBests.h</name>
1392
+ <type>1</type>
1393
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/SCFG/nbest/NBests.h</locationURI>
1394
+ </link>
1395
+ <link>
1396
+ <name>TranslationModel/CompactPT/BlockHashIndex.cpp</name>
1397
+ <type>1</type>
1398
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/CompactPT/BlockHashIndex.cpp</locationURI>
1399
+ </link>
1400
+ <link>
1401
+ <name>TranslationModel/CompactPT/BlockHashIndex.h</name>
1402
+ <type>1</type>
1403
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/CompactPT/BlockHashIndex.h</locationURI>
1404
+ </link>
1405
+ <link>
1406
+ <name>TranslationModel/CompactPT/CanonicalHuffman.h</name>
1407
+ <type>1</type>
1408
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/CompactPT/CanonicalHuffman.h</locationURI>
1409
+ </link>
1410
+ <link>
1411
+ <name>TranslationModel/CompactPT/CmphStringVectorAdapter.cpp</name>
1412
+ <type>1</type>
1413
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/CompactPT/CmphStringVectorAdapter.cpp</locationURI>
1414
+ </link>
1415
+ <link>
1416
+ <name>TranslationModel/CompactPT/CmphStringVectorAdapter.h</name>
1417
+ <type>1</type>
1418
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/CompactPT/CmphStringVectorAdapter.h</locationURI>
1419
+ </link>
1420
+ <link>
1421
+ <name>TranslationModel/CompactPT/LexicalReorderingTableCompact.cpp</name>
1422
+ <type>1</type>
1423
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/CompactPT/LexicalReorderingTableCompact.cpp</locationURI>
1424
+ </link>
1425
+ <link>
1426
+ <name>TranslationModel/CompactPT/LexicalReorderingTableCompact.h</name>
1427
+ <type>1</type>
1428
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/CompactPT/LexicalReorderingTableCompact.h</locationURI>
1429
+ </link>
1430
+ <link>
1431
+ <name>TranslationModel/CompactPT/ListCoders.h</name>
1432
+ <type>1</type>
1433
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/CompactPT/ListCoders.h</locationURI>
1434
+ </link>
1435
+ <link>
1436
+ <name>TranslationModel/CompactPT/MmapAllocator.h</name>
1437
+ <type>1</type>
1438
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/CompactPT/MmapAllocator.h</locationURI>
1439
+ </link>
1440
+ <link>
1441
+ <name>TranslationModel/CompactPT/MonotonicVector.h</name>
1442
+ <type>1</type>
1443
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/CompactPT/MonotonicVector.h</locationURI>
1444
+ </link>
1445
+ <link>
1446
+ <name>TranslationModel/CompactPT/MurmurHash3.cpp</name>
1447
+ <type>1</type>
1448
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/CompactPT/MurmurHash3.cpp</locationURI>
1449
+ </link>
1450
+ <link>
1451
+ <name>TranslationModel/CompactPT/MurmurHash3.h</name>
1452
+ <type>1</type>
1453
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/CompactPT/MurmurHash3.h</locationURI>
1454
+ </link>
1455
+ <link>
1456
+ <name>TranslationModel/CompactPT/PackedArray.h</name>
1457
+ <type>1</type>
1458
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/CompactPT/PackedArray.h</locationURI>
1459
+ </link>
1460
+ <link>
1461
+ <name>TranslationModel/CompactPT/StringVector.h</name>
1462
+ <type>1</type>
1463
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/CompactPT/StringVector.h</locationURI>
1464
+ </link>
1465
+ <link>
1466
+ <name>TranslationModel/CompactPT/TargetPhraseCollectionCache.cpp</name>
1467
+ <type>1</type>
1468
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/CompactPT/TargetPhraseCollectionCache.cpp</locationURI>
1469
+ </link>
1470
+ <link>
1471
+ <name>TranslationModel/CompactPT/TargetPhraseCollectionCache.h</name>
1472
+ <type>1</type>
1473
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/CompactPT/TargetPhraseCollectionCache.h</locationURI>
1474
+ </link>
1475
+ <link>
1476
+ <name>TranslationModel/CompactPT/ThrowingFwrite.cpp</name>
1477
+ <type>1</type>
1478
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/CompactPT/ThrowingFwrite.cpp</locationURI>
1479
+ </link>
1480
+ <link>
1481
+ <name>TranslationModel/CompactPT/ThrowingFwrite.h</name>
1482
+ <type>1</type>
1483
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/CompactPT/ThrowingFwrite.h</locationURI>
1484
+ </link>
1485
+ <link>
1486
+ <name>TranslationModel/Memory/Node.h</name>
1487
+ <type>1</type>
1488
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/Memory/Node.h</locationURI>
1489
+ </link>
1490
+ <link>
1491
+ <name>TranslationModel/Memory/PhraseTableMemory.cpp</name>
1492
+ <type>1</type>
1493
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/Memory/PhraseTableMemory.cpp</locationURI>
1494
+ </link>
1495
+ <link>
1496
+ <name>TranslationModel/Memory/PhraseTableMemory.h</name>
1497
+ <type>1</type>
1498
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/TranslationModel/Memory/PhraseTableMemory.h</locationURI>
1499
+ </link>
1500
+ <link>
1501
+ <name>defer/CubePruningBitmapStack/Misc.cpp</name>
1502
+ <type>1</type>
1503
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningBitmapStack/Misc.cpp</locationURI>
1504
+ </link>
1505
+ <link>
1506
+ <name>defer/CubePruningBitmapStack/Misc.h</name>
1507
+ <type>1</type>
1508
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningBitmapStack/Misc.h</locationURI>
1509
+ </link>
1510
+ <link>
1511
+ <name>defer/CubePruningBitmapStack/Search.cpp</name>
1512
+ <type>1</type>
1513
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningBitmapStack/Search.cpp</locationURI>
1514
+ </link>
1515
+ <link>
1516
+ <name>defer/CubePruningBitmapStack/Search.h</name>
1517
+ <type>1</type>
1518
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningBitmapStack/Search.h</locationURI>
1519
+ </link>
1520
+ <link>
1521
+ <name>defer/CubePruningBitmapStack/Stack.cpp</name>
1522
+ <type>1</type>
1523
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningBitmapStack/Stack.cpp</locationURI>
1524
+ </link>
1525
+ <link>
1526
+ <name>defer/CubePruningBitmapStack/Stack.h</name>
1527
+ <type>1</type>
1528
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningBitmapStack/Stack.h</locationURI>
1529
+ </link>
1530
+ <link>
1531
+ <name>defer/CubePruningCardinalStack/Misc.cpp</name>
1532
+ <type>1</type>
1533
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningCardinalStack/Misc.cpp</locationURI>
1534
+ </link>
1535
+ <link>
1536
+ <name>defer/CubePruningCardinalStack/Misc.h</name>
1537
+ <type>1</type>
1538
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningCardinalStack/Misc.h</locationURI>
1539
+ </link>
1540
+ <link>
1541
+ <name>defer/CubePruningCardinalStack/Search.cpp</name>
1542
+ <type>1</type>
1543
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningCardinalStack/Search.cpp</locationURI>
1544
+ </link>
1545
+ <link>
1546
+ <name>defer/CubePruningCardinalStack/Search.h</name>
1547
+ <type>1</type>
1548
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningCardinalStack/Search.h</locationURI>
1549
+ </link>
1550
+ <link>
1551
+ <name>defer/CubePruningCardinalStack/Stack.cpp</name>
1552
+ <type>1</type>
1553
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningCardinalStack/Stack.cpp</locationURI>
1554
+ </link>
1555
+ <link>
1556
+ <name>defer/CubePruningCardinalStack/Stack.h</name>
1557
+ <type>1</type>
1558
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningCardinalStack/Stack.h</locationURI>
1559
+ </link>
1560
+ <link>
1561
+ <name>defer/CubePruningPerBitmap/Misc.cpp</name>
1562
+ <type>1</type>
1563
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningPerBitmap/Misc.cpp</locationURI>
1564
+ </link>
1565
+ <link>
1566
+ <name>defer/CubePruningPerBitmap/Misc.h</name>
1567
+ <type>1</type>
1568
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningPerBitmap/Misc.h</locationURI>
1569
+ </link>
1570
+ <link>
1571
+ <name>defer/CubePruningPerBitmap/Search.cpp</name>
1572
+ <type>1</type>
1573
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningPerBitmap/Search.cpp</locationURI>
1574
+ </link>
1575
+ <link>
1576
+ <name>defer/CubePruningPerBitmap/Search.h</name>
1577
+ <type>1</type>
1578
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningPerBitmap/Search.h</locationURI>
1579
+ </link>
1580
+ <link>
1581
+ <name>defer/CubePruningPerBitmap/Stacks.cpp</name>
1582
+ <type>1</type>
1583
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningPerBitmap/Stacks.cpp</locationURI>
1584
+ </link>
1585
+ <link>
1586
+ <name>defer/CubePruningPerBitmap/Stacks.h</name>
1587
+ <type>1</type>
1588
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningPerBitmap/Stacks.h</locationURI>
1589
+ </link>
1590
+ <link>
1591
+ <name>defer/CubePruningPerMiniStack/Misc.cpp</name>
1592
+ <type>1</type>
1593
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningPerMiniStack/Misc.cpp</locationURI>
1594
+ </link>
1595
+ <link>
1596
+ <name>defer/CubePruningPerMiniStack/Misc.h</name>
1597
+ <type>1</type>
1598
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningPerMiniStack/Misc.h</locationURI>
1599
+ </link>
1600
+ <link>
1601
+ <name>defer/CubePruningPerMiniStack/Search.cpp</name>
1602
+ <type>1</type>
1603
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningPerMiniStack/Search.cpp</locationURI>
1604
+ </link>
1605
+ <link>
1606
+ <name>defer/CubePruningPerMiniStack/Search.h</name>
1607
+ <type>1</type>
1608
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningPerMiniStack/Search.h</locationURI>
1609
+ </link>
1610
+ <link>
1611
+ <name>defer/CubePruningPerMiniStack/Stacks.cpp</name>
1612
+ <type>1</type>
1613
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningPerMiniStack/Stacks.cpp</locationURI>
1614
+ </link>
1615
+ <link>
1616
+ <name>defer/CubePruningPerMiniStack/Stacks.h</name>
1617
+ <type>1</type>
1618
+ <locationURI>PARENT-3-PROJECT_LOC/moses2/defer/CubePruningPerMiniStack/Stacks.h</locationURI>
1619
+ </link>
1620
+ </linkedResources>
1621
+ </projectDescription>
mosesdecoder/contrib/other-builds/moses2/moses2.sln ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 
2
+ Microsoft Visual Studio Solution File, Format Version 12.00
3
+ # Visual Studio Version 17
4
+ VisualStudioVersion = 17.9.34607.119
5
+ MinimumVisualStudioVersion = 10.0.40219.1
6
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "moses2", "moses2.vcxproj", "{B4304E97-D37F-4022-BD03-841A4FAEE398}"
7
+ EndProject
8
+ Global
9
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
10
+ Debug|Win32 = Debug|Win32
11
+ Debug|x64 = Debug|x64
12
+ Debug-exe|Win32 = Debug-exe|Win32
13
+ Debug-exe|x64 = Debug-exe|x64
14
+ Release|Win32 = Release|Win32
15
+ Release|x64 = Release|x64
16
+ Release-exe|Win32 = Release-exe|Win32
17
+ Release-exe|x64 = Release-exe|x64
18
+ EndGlobalSection
19
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
20
+ {B4304E97-D37F-4022-BD03-841A4FAEE398}.Debug|Win32.ActiveCfg = Debug|Win32
21
+ {B4304E97-D37F-4022-BD03-841A4FAEE398}.Debug|Win32.Build.0 = Debug|Win32
22
+ {B4304E97-D37F-4022-BD03-841A4FAEE398}.Debug|x64.ActiveCfg = Debug|x64
23
+ {B4304E97-D37F-4022-BD03-841A4FAEE398}.Debug|x64.Build.0 = Debug|x64
24
+ {B4304E97-D37F-4022-BD03-841A4FAEE398}.Debug-exe|Win32.ActiveCfg = Debug-exe|x64
25
+ {B4304E97-D37F-4022-BD03-841A4FAEE398}.Debug-exe|Win32.Build.0 = Debug-exe|x64
26
+ {B4304E97-D37F-4022-BD03-841A4FAEE398}.Debug-exe|x64.ActiveCfg = Debug-exe|x64
27
+ {B4304E97-D37F-4022-BD03-841A4FAEE398}.Debug-exe|x64.Build.0 = Debug-exe|x64
28
+ {B4304E97-D37F-4022-BD03-841A4FAEE398}.Release|Win32.ActiveCfg = Release|Win32
29
+ {B4304E97-D37F-4022-BD03-841A4FAEE398}.Release|Win32.Build.0 = Release|Win32
30
+ {B4304E97-D37F-4022-BD03-841A4FAEE398}.Release|x64.ActiveCfg = Release|x64
31
+ {B4304E97-D37F-4022-BD03-841A4FAEE398}.Release|x64.Build.0 = Release|x64
32
+ {B4304E97-D37F-4022-BD03-841A4FAEE398}.Release-exe|Win32.ActiveCfg = Release-exe|x64
33
+ {B4304E97-D37F-4022-BD03-841A4FAEE398}.Release-exe|Win32.Build.0 = Release-exe|x64
34
+ {B4304E97-D37F-4022-BD03-841A4FAEE398}.Release-exe|x64.ActiveCfg = Release-exe|x64
35
+ {B4304E97-D37F-4022-BD03-841A4FAEE398}.Release-exe|x64.Build.0 = Release-exe|x64
36
+ EndGlobalSection
37
+ GlobalSection(SolutionProperties) = preSolution
38
+ HideSolutionNode = FALSE
39
+ EndGlobalSection
40
+ GlobalSection(ExtensibilityGlobals) = postSolution
41
+ SolutionGuid = {8B10AABC-E114-4EB7-BE1E-9432E208DDEA}
42
+ EndGlobalSection
43
+ EndGlobal
mosesdecoder/contrib/other-builds/moses2/moses2.vcxproj ADDED
@@ -0,0 +1,592 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <ItemGroup Label="ProjectConfigurations">
4
+ <ProjectConfiguration Include="Debug-exe2|x64">
5
+ <Configuration>Debug-exe2</Configuration>
6
+ <Platform>x64</Platform>
7
+ </ProjectConfiguration>
8
+ <ProjectConfiguration Include="Debug-exe|x64">
9
+ <Configuration>Debug-exe</Configuration>
10
+ <Platform>x64</Platform>
11
+ </ProjectConfiguration>
12
+ <ProjectConfiguration Include="Debug|x64">
13
+ <Configuration>Debug</Configuration>
14
+ <Platform>x64</Platform>
15
+ </ProjectConfiguration>
16
+ <ProjectConfiguration Include="Release-exe|x64">
17
+ <Configuration>Release-exe</Configuration>
18
+ <Platform>x64</Platform>
19
+ </ProjectConfiguration>
20
+ <ProjectConfiguration Include="Release|x64">
21
+ <Configuration>Release</Configuration>
22
+ <Platform>x64</Platform>
23
+ </ProjectConfiguration>
24
+ </ItemGroup>
25
+ <PropertyGroup Label="Globals">
26
+ <ProjectGuid>{B4304E97-D37F-4022-BD03-841A4FAEE398}</ProjectGuid>
27
+ <Keyword>Win32Proj</Keyword>
28
+ <RootNamespace>moses2</RootNamespace>
29
+ <WindowsTargetPlatformVersion>10.0.18362.0</WindowsTargetPlatformVersion>
30
+ <PlatformToolset>v140</PlatformToolset>
31
+ <BoostDir>c:\depot\translator\packages\boost.library\1.66.0</BoostDir>
32
+ <ZlibDir>c:\depot\translator\private\mt\zlib\src</ZlibDir>
33
+ </PropertyGroup>
34
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
35
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
36
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
37
+ <UseDebugLibraries>true</UseDebugLibraries>
38
+ <CharacterSet>Unicode</CharacterSet>
39
+ <CLRSupport>false</CLRSupport>
40
+ <UseOfMfc>false</UseOfMfc>
41
+ </PropertyGroup>
42
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-exe|x64'" Label="Configuration">
43
+ <ConfigurationType>Application</ConfigurationType>
44
+ <UseDebugLibraries>true</UseDebugLibraries>
45
+ <CharacterSet>Unicode</CharacterSet>
46
+ <CLRSupport>false</CLRSupport>
47
+ <UseOfMfc>false</UseOfMfc>
48
+ </PropertyGroup>
49
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-exe2|x64'" Label="Configuration">
50
+ <ConfigurationType>Application</ConfigurationType>
51
+ <UseDebugLibraries>true</UseDebugLibraries>
52
+ <CharacterSet>Unicode</CharacterSet>
53
+ <CLRSupport>false</CLRSupport>
54
+ <UseOfMfc>false</UseOfMfc>
55
+ </PropertyGroup>
56
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'" Label="Configuration">
57
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
58
+ <UseDebugLibraries>true</UseDebugLibraries>
59
+ <CharacterSet>Unicode</CharacterSet>
60
+ <CLRSupport>false</CLRSupport>
61
+ <UseOfMfc>false</UseOfMfc>
62
+ </PropertyGroup>
63
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
64
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
65
+ <UseDebugLibraries>false</UseDebugLibraries>
66
+ <WholeProgramOptimization>true</WholeProgramOptimization>
67
+ <CharacterSet>Unicode</CharacterSet>
68
+ </PropertyGroup>
69
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-exe|x64'" Label="Configuration">
70
+ <ConfigurationType>Application</ConfigurationType>
71
+ <UseDebugLibraries>false</UseDebugLibraries>
72
+ <WholeProgramOptimization>true</WholeProgramOptimization>
73
+ <CharacterSet>Unicode</CharacterSet>
74
+ </PropertyGroup>
75
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'" Label="Configuration">
76
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
77
+ <UseDebugLibraries>false</UseDebugLibraries>
78
+ <WholeProgramOptimization>true</WholeProgramOptimization>
79
+ <CharacterSet>Unicode</CharacterSet>
80
+ </PropertyGroup>
81
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
82
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
83
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
84
+ </ImportGroup>
85
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-exe|Win32'" Label="PropertySheets">
86
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
87
+ </ImportGroup>
88
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-exe2|Win32'" Label="PropertySheets">
89
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
90
+ </ImportGroup>
91
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|Win32'" Label="PropertySheets">
92
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
93
+ </ImportGroup>
94
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
95
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
96
+ </ImportGroup>
97
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-exe|x64'" Label="PropertySheets">
98
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
99
+ </ImportGroup>
100
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-exe2|x64'" Label="PropertySheets">
101
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
102
+ </ImportGroup>
103
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'" Label="PropertySheets">
104
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
105
+ </ImportGroup>
106
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
107
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
108
+ </ImportGroup>
109
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-exe|Win32'" Label="PropertySheets">
110
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
111
+ </ImportGroup>
112
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|Win32'" Label="PropertySheets">
113
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
114
+ </ImportGroup>
115
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
116
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
117
+ </ImportGroup>
118
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-exe|x64'" Label="PropertySheets">
119
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
120
+ </ImportGroup>
121
+ <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'" Label="PropertySheets">
122
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
123
+ </ImportGroup>
124
+ <PropertyGroup Label="UserMacros" />
125
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
126
+ <LinkIncremental>true</LinkIncremental>
127
+ <TargetName>$(ProjectName)decoder</TargetName>
128
+ </PropertyGroup>
129
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-exe|x64'">
130
+ <LinkIncremental>true</LinkIncremental>
131
+ <TargetName>$(ProjectName)decoder</TargetName>
132
+ </PropertyGroup>
133
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-exe2|x64'">
134
+ <LinkIncremental>true</LinkIncremental>
135
+ <TargetName>$(ProjectName)decoder</TargetName>
136
+ </PropertyGroup>
137
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'">
138
+ <LinkIncremental>true</LinkIncremental>
139
+ <TargetName>$(ProjectName)decoder</TargetName>
140
+ </PropertyGroup>
141
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
142
+ <LinkIncremental>false</LinkIncremental>
143
+ <TargetName>$(ProjectName)decoder</TargetName>
144
+ </PropertyGroup>
145
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-exe|x64'">
146
+ <LinkIncremental>false</LinkIncremental>
147
+ <TargetName>$(ProjectName)decoder</TargetName>
148
+ </PropertyGroup>
149
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'">
150
+ <LinkIncremental>false</LinkIncremental>
151
+ <TargetName>$(ProjectName)decoder</TargetName>
152
+ </PropertyGroup>
153
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
154
+ <ClCompile>
155
+ <PrecompiledHeader>
156
+ </PrecompiledHeader>
157
+ <WarningLevel>Level3</WarningLevel>
158
+ <Optimization>Disabled</Optimization>
159
+ <PreprocessorDefinitions>NO_COMPACT_TABLES;HAVE_CMPHXXX;MAX_NUM_FACTORS=4;KENLM_MAX_ORDER=6;_USE_MATH_DEFINES;NOMINMAX;WITH_THREADS;NO_PIPES;_WIN32;WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
160
+ <AdditionalIncludeDirectories>$(ZlibDir);$(BoostDir);$(MSBuildProjectDirectory)/../../..;C:\Program Files (x86)\Visual Leak Detector\include;C:\depot\translator\private\mt\mman;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
161
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
162
+ <ObjectFileName>$(IntDir)\%(RelativeDir)\%(Filename).obj</ObjectFileName>
163
+ <SuppressStartupBanner>false</SuppressStartupBanner>
164
+ <ShowIncludes>false</ShowIncludes>
165
+ <LanguageStandard>Default</LanguageStandard>
166
+ <LanguageStandard_C>
167
+ </LanguageStandard_C>
168
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
169
+ <CompileAsManaged>false</CompileAsManaged>
170
+ <AdditionalOptions>
171
+ </AdditionalOptions>
172
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
173
+ </ClCompile>
174
+ <Link>
175
+ <SubSystem>Console</SubSystem>
176
+ <GenerateDebugInformation>true</GenerateDebugInformation>
177
+ <AdditionalLibraryDirectories>$(BoostDir)\lib64-msvc-14.0;$(ZlibDir)\dll\bin\x64\Debug;C:\Program Files (x86)\Visual Leak Detector\lib\Win64</AdditionalLibraryDirectories>
178
+ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
179
+ <ShowProgress>LinkVerbose</ShowProgress>
180
+ <SuppressStartupBanner>false</SuppressStartupBanner>
181
+ </Link>
182
+ </ItemDefinitionGroup>
183
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-exe|x64'">
184
+ <ClCompile>
185
+ <PrecompiledHeader>
186
+ </PrecompiledHeader>
187
+ <WarningLevel>Level3</WarningLevel>
188
+ <Optimization>Disabled</Optimization>
189
+ <PreprocessorDefinitions>NO_COMPACT_TABLES;HAVE_CMPHXXX;MAX_NUM_FACTORS=4;KENLM_MAX_ORDER=6;_USE_MATH_DEFINES;NOMINMAX;WITH_THREADS;NO_PIPES;_WIN32;WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
190
+ <AdditionalIncludeDirectories>$(ZlibDir);$(BoostDir);$(MSBuildProjectDirectory)/../../..;C:\Program Files (x86)\Visual Leak Detector\include;C:\depot\translator\private\mt\mman;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
191
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
192
+ <ObjectFileName>$(IntDir)\%(RelativeDir)\%(Filename).obj</ObjectFileName>
193
+ <SuppressStartupBanner>false</SuppressStartupBanner>
194
+ <ShowIncludes>false</ShowIncludes>
195
+ <LanguageStandard>Default</LanguageStandard>
196
+ <LanguageStandard_C>
197
+ </LanguageStandard_C>
198
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
199
+ <CompileAsManaged>false</CompileAsManaged>
200
+ <AdditionalOptions>
201
+ </AdditionalOptions>
202
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
203
+ </ClCompile>
204
+ <Link>
205
+ <SubSystem>Console</SubSystem>
206
+ <GenerateDebugInformation>true</GenerateDebugInformation>
207
+ <AdditionalLibraryDirectories>$(BoostDir)\lib64-msvc-14.0;$(ZlibDir)\dll\bin\x64\Debug;C:\Program Files (x86)\Visual Leak Detector\lib\Win64</AdditionalLibraryDirectories>
208
+ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
209
+ <ShowProgress>LinkVerbose</ShowProgress>
210
+ <SuppressStartupBanner>false</SuppressStartupBanner>
211
+ </Link>
212
+ </ItemDefinitionGroup>
213
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-exe2|x64'">
214
+ <ClCompile>
215
+ <PrecompiledHeader>
216
+ </PrecompiledHeader>
217
+ <WarningLevel>Level3</WarningLevel>
218
+ <Optimization>Disabled</Optimization>
219
+ <PreprocessorDefinitions>NO_COMPACT_TABLES;HAVE_CMPHXXX;MAX_NUM_FACTORS=4;KENLM_MAX_ORDER=6;_USE_MATH_DEFINES;NOMINMAX;WITH_THREADS;NO_PIPES;_WIN32;WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
220
+ <AdditionalIncludeDirectories>$(ZlibDir);$(BoostDir);$(MSBuildProjectDirectory)/../../..;C:\Program Files (x86)\Visual Leak Detector\include;C:\depot\translator\private\mt\mman;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
221
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
222
+ <ObjectFileName>$(IntDir)\%(RelativeDir)\%(Filename).obj</ObjectFileName>
223
+ <SuppressStartupBanner>false</SuppressStartupBanner>
224
+ <ShowIncludes>false</ShowIncludes>
225
+ <LanguageStandard>Default</LanguageStandard>
226
+ <LanguageStandard_C>
227
+ </LanguageStandard_C>
228
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
229
+ <CompileAsManaged>false</CompileAsManaged>
230
+ <AdditionalOptions>
231
+ </AdditionalOptions>
232
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
233
+ </ClCompile>
234
+ <Link>
235
+ <SubSystem>Console</SubSystem>
236
+ <GenerateDebugInformation>true</GenerateDebugInformation>
237
+ <AdditionalLibraryDirectories>$(BoostDir)\lib64-msvc-14.0;$(ZlibDir)\dll\bin\x64\Debug;C:\Program Files (x86)\Visual Leak Detector\lib\Win64</AdditionalLibraryDirectories>
238
+ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
239
+ <ShowProgress>LinkVerbose</ShowProgress>
240
+ <SuppressStartupBanner>false</SuppressStartupBanner>
241
+ </Link>
242
+ </ItemDefinitionGroup>
243
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-DLL|x64'">
244
+ <ClCompile>
245
+ <PrecompiledHeader>
246
+ </PrecompiledHeader>
247
+ <WarningLevel>Level3</WarningLevel>
248
+ <Optimization>Disabled</Optimization>
249
+ <PreprocessorDefinitions>NO_COMPACT_TABLES;HAVE_CMPHXXX;MAX_NUM_FACTORS=4;KENLM_MAX_ORDER=6;_USE_MATH_DEFINES;NOMINMAX;WITH_THREADS;NO_PIPES;_WIN32;WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
250
+ <AdditionalIncludeDirectories>$(ZlibDir);$(BoostDir);$(MSBuildProjectDirectory)/../../..;C:\Program Files (x86)\Visual Leak Detector\include;C:\depot\translator\private\mt\mman;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
251
+ <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
252
+ <ObjectFileName>$(IntDir)\%(RelativeDir)\%(Filename).obj</ObjectFileName>
253
+ <SuppressStartupBanner>false</SuppressStartupBanner>
254
+ <ShowIncludes>false</ShowIncludes>
255
+ <LanguageStandard>Default</LanguageStandard>
256
+ <LanguageStandard_C>
257
+ </LanguageStandard_C>
258
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
259
+ <CompileAsManaged>false</CompileAsManaged>
260
+ <AdditionalOptions>
261
+ </AdditionalOptions>
262
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
263
+ </ClCompile>
264
+ <Link>
265
+ <SubSystem>Console</SubSystem>
266
+ <GenerateDebugInformation>true</GenerateDebugInformation>
267
+ <AdditionalLibraryDirectories>$(BoostDir)\lib64-msvc-14.0;$(ZlibDir)\dll\bin\x64\Debug;C:\Program Files (x86)\Visual Leak Detector\lib\Win64</AdditionalLibraryDirectories>
268
+ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
269
+ <ShowProgress>LinkVerbose</ShowProgress>
270
+ <SuppressStartupBanner>false</SuppressStartupBanner>
271
+ </Link>
272
+ </ItemDefinitionGroup>
273
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
274
+ <ClCompile>
275
+ <WarningLevel>Level3</WarningLevel>
276
+ <PrecompiledHeader>
277
+ </PrecompiledHeader>
278
+ <Optimization>MaxSpeed</Optimization>
279
+ <FunctionLevelLinking>true</FunctionLevelLinking>
280
+ <IntrinsicFunctions>true</IntrinsicFunctions>
281
+ <PreprocessorDefinitions>NO_COMPACT_TABLES;HAVE_CMPHXXX;MAX_NUM_FACTORS=4;KENLM_MAX_ORDER=6;_USE_MATH_DEFINES;NOMINMAX;WITH_THREADS;NO_PIPES;_WIN32;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
282
+ <AdditionalIncludeDirectories>$(ZlibDir);$(BoostDir);$(MSBuildProjectDirectory)/../../..;C:\Program Files (x86)\Visual Leak Detector\include;C:\depot\translator\private\mt\mman;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
283
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
284
+ <ObjectFileName>$(IntDir)\%(RelativeDir)\%(Filename).obj</ObjectFileName>
285
+ <ShowIncludes>false</ShowIncludes>
286
+ <LanguageStandard>Default</LanguageStandard>
287
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
288
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
289
+ </ClCompile>
290
+ <Link>
291
+ <SubSystem>Console</SubSystem>
292
+ <GenerateDebugInformation>true</GenerateDebugInformation>
293
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
294
+ <OptimizeReferences>true</OptimizeReferences>
295
+ <AdditionalLibraryDirectories>$(BoostDir)\lib64-msvc-14.0;$(ZlibDir)\dll\bin\x64\Debug;C:\Program Files (x86)\Visual Leak Detector\lib\Win64</AdditionalLibraryDirectories>
296
+ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
297
+ </Link>
298
+ </ItemDefinitionGroup>
299
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-exe|x64'">
300
+ <ClCompile>
301
+ <WarningLevel>Level3</WarningLevel>
302
+ <PrecompiledHeader>
303
+ </PrecompiledHeader>
304
+ <Optimization>MaxSpeed</Optimization>
305
+ <FunctionLevelLinking>true</FunctionLevelLinking>
306
+ <IntrinsicFunctions>true</IntrinsicFunctions>
307
+ <PreprocessorDefinitions>NO_COMPACT_TABLES;HAVE_CMPHXXX;MAX_NUM_FACTORS=4;KENLM_MAX_ORDER=6;_USE_MATH_DEFINES;NOMINMAX;WITH_THREADS;NO_PIPES;_WIN32;WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
308
+ <AdditionalIncludeDirectories>$(ZlibDir);$(BoostDir);$(MSBuildProjectDirectory)/../../..;C:\Program Files (x86)\Visual Leak Detector\include;C:\depot\translator\private\mt\mman;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
309
+ <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
310
+ <ObjectFileName>$(IntDir)\%(RelativeDir)\%(Filename).obj</ObjectFileName>
311
+ <ShowIncludes>false</ShowIncludes>
312
+ <LanguageStandard>Default</LanguageStandard>
313
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
314
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
315
+ </ClCompile>
316
+ <Link>
317
+ <SubSystem>Console</SubSystem>
318
+ <GenerateDebugInformation>true</GenerateDebugInformation>
319
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
320
+ <OptimizeReferences>true</OptimizeReferences>
321
+ <AdditionalLibraryDirectories>$(BoostDir)\lib64-msvc-14.0;$(ZlibDir)\dll\bin\x64\Debug;C:\Program Files (x86)\Visual Leak Detector\lib\Win64</AdditionalLibraryDirectories>
322
+ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
323
+ </Link>
324
+ </ItemDefinitionGroup>
325
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'">
326
+ <ClCompile>
327
+ <WarningLevel>Level3</WarningLevel>
328
+ <PrecompiledHeader>
329
+ </PrecompiledHeader>
330
+ <Optimization>MaxSpeed</Optimization>
331
+ <FunctionLevelLinking>true</FunctionLevelLinking>
332
+ <IntrinsicFunctions>true</IntrinsicFunctions>
333
+ <PreprocessorDefinitions>NO_COMPACT_TABLES;HAVE_CMPHXXX;MAX_NUM_FACTORS=4;KENLM_MAX_ORDER=6;_USE_MATH_DEFINES;NOMINMAX;WITH_THREADS;NO_PIPES;_WIN32;WIN32;NDEBUG;_CONSOLE;_LIB;NO_PROBING_PT;%(PreprocessorDefinitions)</PreprocessorDefinitions>
334
+ <AdditionalIncludeDirectories>$(ZlibDir);$(BoostDir);$(MSBuildProjectDirectory)/../../..;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
335
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
336
+ <ObjectFileName>$(IntDir)\%(RelativeDir)\%(Filename).obj</ObjectFileName>
337
+ <ShowIncludes>false</ShowIncludes>
338
+ <LanguageStandard>Default</LanguageStandard>
339
+ <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
340
+ <MultiProcessorCompilation>true</MultiProcessorCompilation>
341
+ </ClCompile>
342
+ <Link>
343
+ <SubSystem>Console</SubSystem>
344
+ <GenerateDebugInformation>true</GenerateDebugInformation>
345
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
346
+ <OptimizeReferences>true</OptimizeReferences>
347
+ <AdditionalLibraryDirectories>$(BoostDir)\lib64-msvc-14.0;$(ZlibDir)\dll\bin\x64\Debug</AdditionalLibraryDirectories>
348
+ <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies>
349
+ </Link>
350
+ </ItemDefinitionGroup>
351
+ <ItemGroup>
352
+ <ClCompile Include="..\..\..\lm\bhiksha.cc" />
353
+ <ClCompile Include="..\..\..\lm\binary_format.cc" />
354
+ <ClCompile Include="..\..\..\lm\config.cc" />
355
+ <ClCompile Include="..\..\..\lm\lm_exception.cc" />
356
+ <ClCompile Include="..\..\..\lm\model.cc" />
357
+ <ClCompile Include="..\..\..\lm\quantize.cc" />
358
+ <ClCompile Include="..\..\..\lm\read_arpa.cc" />
359
+ <ClCompile Include="..\..\..\lm\search_hashed.cc" />
360
+ <ClCompile Include="..\..\..\lm\search_trie.cc" />
361
+ <ClCompile Include="..\..\..\lm\sizes.cc" />
362
+ <ClCompile Include="..\..\..\lm\trie.cc" />
363
+ <ClCompile Include="..\..\..\lm\trie_sort.cc" />
364
+ <ClCompile Include="..\..\..\lm\value_build.cc" />
365
+ <ClCompile Include="..\..\..\lm\virtual_interface.cc" />
366
+ <ClCompile Include="..\..\..\lm\vocab.cc" />
367
+ <ClCompile Include="..\..\..\moses2\DLLEntryApi.cpp" />
368
+ <ClCompile Include="..\..\..\moses2\FF\ExampleStatefulFF.cpp" />
369
+ <ClCompile Include="..\..\..\moses2\FF\ExampleStatelessFF.cpp" />
370
+ <ClCompile Include="..\..\..\moses2\FF\LexicalReordering\BidirectionalReorderingState.cpp" />
371
+ <ClCompile Include="..\..\..\moses2\FF\LexicalReordering\HReorderingBackwardState.cpp" />
372
+ <ClCompile Include="..\..\..\moses2\FF\LexicalReordering\HReorderingForwardState.cpp" />
373
+ <ClCompile Include="..\..\..\moses2\FF\LexicalReordering\LexicalReordering.cpp" />
374
+ <ClCompile Include="..\..\..\moses2\FF\LexicalReordering\LRModel.cpp" />
375
+ <ClCompile Include="..\..\..\moses2\FF\LexicalReordering\LRState.cpp" />
376
+ <ClCompile Include="..\..\..\moses2\FF\LexicalReordering\PhraseBasedReorderingState.cpp" />
377
+ <ClCompile Include="..\..\..\moses2\FF\LexicalReordering\ReorderingStack.cpp" />
378
+ <ClCompile Include="..\..\..\moses2\FF\OSM\KenOSM.cpp" />
379
+ <ClCompile Include="..\..\..\moses2\FF\OSM\OpSequenceModel.cpp" />
380
+ <ClCompile Include="..\..\..\moses2\FF\OSM\osmHyp.cpp" />
381
+ <ClCompile Include="..\..\..\moses2\legacy\OutputCollector.cpp" />
382
+ <ClCompile Include="..\..\..\moses2\LM\GPULM.cpp" />
383
+ <ClCompile Include="..\..\..\moses2\LM\KENLM.cpp" />
384
+ <ClCompile Include="..\..\..\moses2\LM\KENLMBatch.cpp" />
385
+ <ClCompile Include="..\..\..\moses2\LM\LanguageModel.cpp" />
386
+ <ClCompile Include="..\..\..\moses2\Moses2Wrapper.cpp" />
387
+ <ClCompile Include="..\..\..\moses2\PhraseBased\CubePruningMiniStack\Misc.cpp" />
388
+ <ClCompile Include="..\..\..\moses2\PhraseBased\CubePruningMiniStack\Search.cpp" />
389
+ <ClCompile Include="..\..\..\moses2\PhraseBased\CubePruningMiniStack\Stack.cpp" />
390
+ <ClCompile Include="..\..\..\moses2\PhraseBased\Hypothesis.cpp" />
391
+ <ClCompile Include="..\..\..\moses2\PhraseBased\InputPath.cpp" />
392
+ <ClCompile Include="..\..\..\moses2\PhraseBased\InputPaths.cpp" />
393
+ <ClCompile Include="..\..\..\moses2\PhraseBased\Manager.cpp" />
394
+ <ClCompile Include="..\..\..\moses2\PhraseBased\Normal\Search.cpp" />
395
+ <ClCompile Include="..\..\..\moses2\PhraseBased\Normal\Stack.cpp" />
396
+ <ClCompile Include="..\..\..\moses2\PhraseBased\Normal\Stacks.cpp" />
397
+ <ClCompile Include="..\..\..\moses2\PhraseBased\PhraseImpl.cpp" />
398
+ <ClCompile Include="..\..\..\moses2\PhraseBased\ReorderingConstraint.cpp" />
399
+ <ClCompile Include="..\..\..\moses2\PhraseBased\Search.cpp" />
400
+ <ClCompile Include="..\..\..\moses2\PhraseBased\Sentence.cpp" />
401
+ <ClCompile Include="..\..\..\moses2\PhraseBased\SentenceWithCandidates.cpp" />
402
+ <ClCompile Include="..\..\..\moses2\PhraseBased\TargetPhraseImpl.cpp" />
403
+ <ClCompile Include="..\..\..\moses2\PhraseBased\TargetPhrases.cpp" />
404
+ <ClCompile Include="..\..\..\moses2\PhraseBased\TrellisPath.cpp" />
405
+ <ClCompile Include="..\..\..\moses2\SCFG\nbest\KBestExtractor.cpp" />
406
+ <ClCompile Include="..\..\..\moses2\SCFG\nbest\NBest.cpp" />
407
+ <ClCompile Include="..\..\..\moses2\SCFG\nbest\NBestColl.cpp" />
408
+ <ClCompile Include="..\..\..\moses2\SCFG\nbest\NBests.cpp" />
409
+ <ClCompile Include="..\..\..\moses2\TranslationModel\Dynamic\DynamicPhraseTable.cpp" />
410
+ <ClCompile Include="..\..\..\moses2\TranslationModel\Memory\PhraseTableMemory.cpp" />
411
+ <ClCompile Include="..\..\..\moses2\TranslationModel\PhraseTable.cpp" />
412
+ <ClCompile Include="..\..\..\moses2\TranslationModel\ProbingPT.cpp">
413
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'">true</ExcludedFromBuild>
414
+ </ClCompile>
415
+ <ClCompile Include="..\..\..\moses2\TranslationModel\Transliteration.cpp" />
416
+ <ClCompile Include="..\..\..\moses2\TranslationModel\UnknownWordPenalty.cpp" />
417
+ <ClCompile Include="..\..\..\moses2\TranslationTask.cpp" />
418
+ <ClCompile Include="..\..\..\probingpt\hash.cpp" />
419
+ <ClCompile Include="..\..\..\probingpt\InputFileStream.cpp" />
420
+ <ClCompile Include="..\..\..\probingpt\probing_hash_utils.cpp">
421
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'">true</ExcludedFromBuild>
422
+ </ClCompile>
423
+ <ClCompile Include="..\..\..\probingpt\querying.cpp">
424
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-DLL|x64'">true</ExcludedFromBuild>
425
+ </ClCompile>
426
+ <ClCompile Include="..\..\..\probingpt\util.cpp" />
427
+ <ClCompile Include="..\..\..\probingpt\vocabid.cpp" />
428
+ <ClCompile Include="..\..\..\util\bit_packing.cc" />
429
+ <ClCompile Include="..\..\..\util\double-conversion\bignum-dtoa.cc" />
430
+ <ClCompile Include="..\..\..\util\double-conversion\bignum.cc" />
431
+ <ClCompile Include="..\..\..\util\double-conversion\cached-powers.cc" />
432
+ <ClCompile Include="..\..\..\util\double-conversion\diy-fp.cc" />
433
+ <ClCompile Include="..\..\..\util\double-conversion\double-conversion.cc" />
434
+ <ClCompile Include="..\..\..\util\double-conversion\fast-dtoa.cc" />
435
+ <ClCompile Include="..\..\..\util\double-conversion\fixed-dtoa.cc" />
436
+ <ClCompile Include="..\..\..\util\double-conversion\strtod.cc" />
437
+ <ClCompile Include="..\..\..\util\ersatz_progress.cc" />
438
+ <ClCompile Include="..\..\..\util\exception.cc" />
439
+ <ClCompile Include="..\..\..\util\file.cc" />
440
+ <ClCompile Include="..\..\..\util\file_piece.cc" />
441
+ <ClCompile Include="..\..\..\util\float_to_string.cc" />
442
+ <ClCompile Include="..\..\..\util\integer_to_string.cc" />
443
+ <ClCompile Include="..\..\..\util\mmap.cc" />
444
+ <ClCompile Include="..\..\..\util\murmur_hash.cc" />
445
+ <ClCompile Include="..\..\..\util\parallel_read.cc" />
446
+ <ClCompile Include="..\..\..\util\pool.cc" />
447
+ <ClCompile Include="..\..\..\util\random.cc" />
448
+ <ClCompile Include="..\..\..\util\read_compressed.cc" />
449
+ <ClCompile Include="..\..\..\util\scoped.cc" />
450
+ <ClCompile Include="..\..\..\util\string_piece.cc" />
451
+ <ClCompile Include="..\..\..\util\usage.cc" />
452
+ <ClCompile Include="..\..\..\moses2\AlignmentInfo.cpp" />
453
+ <ClCompile Include="..\..\..\moses2\AlignmentInfoCollection.cpp" />
454
+ <ClCompile Include="..\..\..\moses2\ArcLists.cpp" />
455
+ <ClCompile Include="..\..\..\moses2\EstimatedScores.cpp" />
456
+ <ClCompile Include="..\..\..\moses2\FF\Distortion.cpp" />
457
+ <ClCompile Include="..\..\..\moses2\FF\FeatureFunction.cpp" />
458
+ <ClCompile Include="..\..\..\moses2\FF\FeatureFunctions.cpp" />
459
+ <ClCompile Include="..\..\..\moses2\FF\FeatureRegistry.cpp" />
460
+ <ClCompile Include="..\..\..\moses2\FF\FFState.cpp" />
461
+ <ClCompile Include="..\..\..\moses2\FF\PhrasePenalty.cpp" />
462
+ <ClCompile Include="..\..\..\moses2\FF\PointerState.cpp" />
463
+ <ClCompile Include="..\..\..\moses2\FF\StatefulFeatureFunction.cpp" />
464
+ <ClCompile Include="..\..\..\moses2\FF\StatelessFeatureFunction.cpp" />
465
+ <ClCompile Include="..\..\..\moses2\FF\WordPenalty.cpp" />
466
+ <ClCompile Include="..\..\..\moses2\HypothesisBase.cpp" />
467
+ <ClCompile Include="..\..\..\moses2\HypothesisColl.cpp" />
468
+ <ClCompile Include="..\..\..\moses2\InputPathBase.cpp" />
469
+ <ClCompile Include="..\..\..\moses2\InputPathsBase.cpp" />
470
+ <ClCompile Include="..\..\..\moses2\InputType.cpp" />
471
+ <ClCompile Include="..\..\..\moses2\legacy\Bitmap.cpp" />
472
+ <ClCompile Include="..\..\..\moses2\legacy\Bitmaps.cpp" />
473
+ <ClCompile Include="..\..\..\moses2\legacy\Factor.cpp" />
474
+ <ClCompile Include="..\..\..\moses2\legacy\FactorCollection.cpp" />
475
+ <ClCompile Include="..\..\..\moses2\legacy\InputFileStream.cpp" />
476
+ <ClCompile Include="..\..\..\moses2\legacy\Matrix.cpp" />
477
+ <ClCompile Include="..\..\..\moses2\legacy\OutputFileStream.cpp" />
478
+ <ClCompile Include="..\..\..\moses2\legacy\Parameter.cpp" />
479
+ <ClCompile Include="..\..\..\moses2\legacy\Range.cpp" />
480
+ <ClCompile Include="..\..\..\moses2\legacy\ThreadPool.cpp" />
481
+ <ClCompile Include="..\..\..\moses2\legacy\Timer.cpp" />
482
+ <ClCompile Include="..\..\..\moses2\legacy\Util2.cpp" />
483
+ <ClCompile Include="..\..\..\moses2\ManagerBase.cpp" />
484
+ <ClCompile Include="..\..\..\moses2\MemPool.cpp" />
485
+ <ClCompile Include="..\..\..\moses2\parameters\AllOptions.cpp" />
486
+ <ClCompile Include="..\..\..\moses2\parameters\BookkeepingOptions.cpp" />
487
+ <ClCompile Include="..\..\..\moses2\parameters\ContextParameters.cpp" />
488
+ <ClCompile Include="..\..\..\moses2\parameters\CubePruningOptions.cpp" />
489
+ <ClCompile Include="..\..\..\moses2\parameters\InputOptions.cpp" />
490
+ <ClCompile Include="..\..\..\moses2\parameters\LMBR_Options.cpp" />
491
+ <ClCompile Include="..\..\..\moses2\parameters\MBR_Options.cpp" />
492
+ <ClCompile Include="..\..\..\moses2\parameters\NBestOptions.cpp" />
493
+ <ClCompile Include="..\..\..\moses2\parameters\OOVHandlingOptions.cpp" />
494
+ <ClCompile Include="..\..\..\moses2\parameters\OptionsBaseClass.cpp" />
495
+ <ClCompile Include="..\..\..\moses2\parameters\ReorderingOptions.cpp" />
496
+ <ClCompile Include="..\..\..\moses2\parameters\ReportingOptions.cpp" />
497
+ <ClCompile Include="..\..\..\moses2\parameters\SearchOptions.cpp" />
498
+ <ClCompile Include="..\..\..\moses2\parameters\ServerOptions.cpp" />
499
+ <ClCompile Include="..\..\..\moses2\parameters\SyntaxOptions.cpp" />
500
+ <ClCompile Include="..\..\..\moses2\Phrase.cpp" />
501
+ <ClCompile Include="..\..\..\moses2\pugixml.cpp" />
502
+ <ClCompile Include="..\..\..\moses2\Recycler.cpp" />
503
+ <ClCompile Include="..\..\..\moses2\SCFG\ActiveChart.cpp" />
504
+ <ClCompile Include="..\..\..\moses2\SCFG\Hypothesis.cpp" />
505
+ <ClCompile Include="..\..\..\moses2\SCFG\InputPath.cpp" />
506
+ <ClCompile Include="..\..\..\moses2\SCFG\InputPaths.cpp" />
507
+ <ClCompile Include="..\..\..\moses2\SCFG\Manager.cpp" />
508
+ <ClCompile Include="..\..\..\moses2\SCFG\Misc.cpp" />
509
+ <ClCompile Include="..\..\..\moses2\SCFG\PhraseImpl.cpp" />
510
+ <ClCompile Include="..\..\..\moses2\SCFG\Sentence.cpp" />
511
+ <ClCompile Include="..\..\..\moses2\SCFG\Stack.cpp" />
512
+ <ClCompile Include="..\..\..\moses2\SCFG\Stacks.cpp" />
513
+ <ClCompile Include="..\..\..\moses2\SCFG\TargetPhraseImpl.cpp" />
514
+ <ClCompile Include="..\..\..\moses2\SCFG\TargetPhrases.cpp" />
515
+ <ClCompile Include="..\..\..\moses2\SCFG\Word.cpp" />
516
+ <ClCompile Include="..\..\..\moses2\Scores.cpp" />
517
+ <ClCompile Include="..\..\..\moses2\SubPhrase.cpp" />
518
+ <ClCompile Include="..\..\..\moses2\System.cpp" />
519
+ <ClCompile Include="..\..\..\moses2\TargetPhrase.cpp" />
520
+ <ClCompile Include="..\..\..\moses2\TrellisPaths.cpp" />
521
+ <ClCompile Include="..\..\..\moses2\TypeDef.cpp" />
522
+ <ClCompile Include="..\..\..\moses2\Vector.cpp" />
523
+ <ClCompile Include="..\..\..\moses2\Weights.cpp" />
524
+ <ClCompile Include="..\..\..\moses2\Word.cpp" />
525
+ </ItemGroup>
526
+ <ItemGroup>
527
+ <None Include="packages.config" />
528
+ </ItemGroup>
529
+ <ItemGroup>
530
+ <ClInclude Include="..\..\..\moses2\AlignmentInfo.h" />
531
+ <ClInclude Include="..\..\..\moses2\AlignmentInfoCollection.h" />
532
+ <ClInclude Include="..\..\..\moses2\ArcLists.h" />
533
+ <ClInclude Include="..\..\..\moses2\Array.h" />
534
+ <ClInclude Include="..\..\..\moses2\EstimatedScores.h" />
535
+ <ClInclude Include="..\..\..\moses2\FF\Distortion.h" />
536
+ <ClInclude Include="..\..\..\moses2\FF\ExampleStatefulFF.h" />
537
+ <ClInclude Include="..\..\..\moses2\FF\ExampleStatelessFF.h" />
538
+ <ClInclude Include="..\..\..\moses2\FF\FeatureFunction.h" />
539
+ <ClInclude Include="..\..\..\moses2\FF\FeatureFunctions.h" />
540
+ <ClInclude Include="..\..\..\moses2\FF\FeatureRegistry.h" />
541
+ <ClInclude Include="..\..\..\moses2\FF\FFState.h" />
542
+ <ClInclude Include="..\..\..\moses2\FF\PhrasePenalty.h" />
543
+ <ClInclude Include="..\..\..\moses2\FF\PointerState.h" />
544
+ <ClInclude Include="..\..\..\moses2\FF\StatefulFeatureFunction.h" />
545
+ <ClInclude Include="..\..\..\moses2\FF\StatelessFeatureFunction.h" />
546
+ <ClInclude Include="..\..\..\moses2\FF\WordPenalty.h" />
547
+ <ClInclude Include="..\..\..\moses2\HypothesisBase.h" />
548
+ <ClInclude Include="..\..\..\moses2\HypothesisColl.h" />
549
+ <ClInclude Include="..\..\..\moses2\InputPathBase.h" />
550
+ <ClInclude Include="..\..\..\moses2\InputPathsBase.h" />
551
+ <ClInclude Include="..\..\..\moses2\InputType.h" />
552
+ <ClInclude Include="..\..\..\moses2\legacy\Bitmap.h" />
553
+ <ClInclude Include="..\..\..\moses2\legacy\Bitmaps.h" />
554
+ <ClInclude Include="..\..\..\moses2\legacy\Factor.h" />
555
+ <ClInclude Include="..\..\..\moses2\legacy\FactorCollection.h" />
556
+ <ClInclude Include="..\..\..\moses2\legacy\gzfilebuf.h" />
557
+ <ClInclude Include="..\..\..\moses2\legacy\InputFileStream.h" />
558
+ <ClInclude Include="..\..\..\moses2\legacy\Matrix.h" />
559
+ <ClInclude Include="..\..\..\moses2\legacy\OutputCollector.h" />
560
+ <ClInclude Include="..\..\..\moses2\legacy\OutputFileStream.h" />
561
+ <ClInclude Include="..\..\..\moses2\legacy\Parameter.h" />
562
+ <ClInclude Include="..\..\..\moses2\legacy\Range.h" />
563
+ <ClInclude Include="..\..\..\moses2\legacy\ThreadPool.h" />
564
+ <ClInclude Include="..\..\..\moses2\legacy\Timer.h" />
565
+ <ClInclude Include="..\..\..\moses2\legacy\Util2.h" />
566
+ <ClInclude Include="..\..\..\moses2\legacy\xmlrpc-c.h" />
567
+ <ClInclude Include="..\..\..\moses2\Main.h" />
568
+ <ClInclude Include="..\..\..\moses2\ManagerBase.h" />
569
+ <ClInclude Include="..\..\..\moses2\MemPool.h" />
570
+ <ClInclude Include="..\..\..\moses2\MemPoolAllocator.h" />
571
+ <ClInclude Include="..\..\..\moses2\Moses2Wrapper.h" />
572
+ <ClInclude Include="..\..\..\moses2\Phrase.h" />
573
+ <ClInclude Include="..\..\..\moses2\PhraseImplTemplate.h" />
574
+ <ClInclude Include="..\..\..\moses2\pugiconfig.hpp" />
575
+ <ClInclude Include="..\..\..\moses2\pugixml.hpp" />
576
+ <ClInclude Include="..\..\..\moses2\Recycler.h" />
577
+ <ClInclude Include="..\..\..\moses2\Scores.h" />
578
+ <ClInclude Include="..\..\..\moses2\SubPhrase.h" />
579
+ <ClInclude Include="..\..\..\moses2\System.h" />
580
+ <ClInclude Include="..\..\..\moses2\TargetPhrase.h" />
581
+ <ClInclude Include="..\..\..\moses2\TranslationModel\ProbingPT.h" />
582
+ <ClInclude Include="..\..\..\moses2\TranslationTask.h" />
583
+ <ClInclude Include="..\..\..\moses2\TrellisPaths.h" />
584
+ <ClInclude Include="..\..\..\moses2\TypeDef.h" />
585
+ <ClInclude Include="..\..\..\moses2\Vector.h" />
586
+ <ClInclude Include="..\..\..\moses2\Weights.h" />
587
+ <ClInclude Include="..\..\..\moses2\Word.h" />
588
+ <ClInclude Include="..\..\..\probingpt\probing_hash_utils.h" />
589
+ <ClInclude Include="..\..\..\probingpt\querying.h" />
590
+ </ItemGroup>
591
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
592
+ </Project>
mosesdecoder/contrib/other-builds/moses2/moses2.vcxproj.filters ADDED
@@ -0,0 +1,768 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+ <ItemGroup>
4
+ <Filter Include="Source Files">
5
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
6
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
7
+ </Filter>
8
+ <Filter Include="Header Files">
9
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
10
+ <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
11
+ </Filter>
12
+ <Filter Include="Resource Files">
13
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
14
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
15
+ </Filter>
16
+ <Filter Include="Source Files\server">
17
+ <UniqueIdentifier>{214e915b-eafb-4e76-b9a2-1fbfe99424b7}</UniqueIdentifier>
18
+ </Filter>
19
+ <Filter Include="Source Files\util">
20
+ <UniqueIdentifier>{d6922dd8-d86c-4c79-8587-a3a412a2e9f6}</UniqueIdentifier>
21
+ </Filter>
22
+ <Filter Include="Source Files\util\double-conversion">
23
+ <UniqueIdentifier>{4e9f8bc8-ef01-463e-a309-df80bb1e63b5}</UniqueIdentifier>
24
+ </Filter>
25
+ <Filter Include="Source Files\parameters">
26
+ <UniqueIdentifier>{58e84bec-0301-41b2-a4c2-dc00162c550a}</UniqueIdentifier>
27
+ </Filter>
28
+ <Filter Include="Source Files\legacy">
29
+ <UniqueIdentifier>{ccdac19b-8883-4c3d-8006-365d4846688f}</UniqueIdentifier>
30
+ </Filter>
31
+ <Filter Include="Source Files\FF">
32
+ <UniqueIdentifier>{929b6fab-e56b-4218-bfb6-da1c50a6c48e}</UniqueIdentifier>
33
+ </Filter>
34
+ <Filter Include="Source Files\SCFG">
35
+ <UniqueIdentifier>{797f4634-c680-45fc-b30e-b5e90ee5d224}</UniqueIdentifier>
36
+ </Filter>
37
+ <Filter Include="Source Files\TranslationModel">
38
+ <UniqueIdentifier>{5a603a90-587d-4fef-ab01-ba6e5173869e}</UniqueIdentifier>
39
+ </Filter>
40
+ <Filter Include="Source Files\TranslationModel\Memory">
41
+ <UniqueIdentifier>{85931b40-138d-48c4-a288-c4ee96039879}</UniqueIdentifier>
42
+ </Filter>
43
+ <Filter Include="Source Files\FF\LexicalReordering">
44
+ <UniqueIdentifier>{a044c0cd-45cc-4a91-bd83-0e04d11f2afa}</UniqueIdentifier>
45
+ </Filter>
46
+ <Filter Include="Source Files\FF\OSM">
47
+ <UniqueIdentifier>{fe76b14f-0997-4f14-b3d6-c6f1b725bf72}</UniqueIdentifier>
48
+ </Filter>
49
+ <Filter Include="Source Files\PhraseBased">
50
+ <UniqueIdentifier>{dea1c12e-1a75-4313-9c03-28689a06a1ee}</UniqueIdentifier>
51
+ </Filter>
52
+ <Filter Include="Source Files\lm">
53
+ <UniqueIdentifier>{b895cea0-249f-4b4a-9b47-872d810fd4f2}</UniqueIdentifier>
54
+ </Filter>
55
+ <Filter Include="Source Files\PhraseBased\Normal">
56
+ <UniqueIdentifier>{12cccf90-d56a-4aca-8780-41777bb2f291}</UniqueIdentifier>
57
+ </Filter>
58
+ <Filter Include="Source Files\PhraseBased\CubePruningMiniStack">
59
+ <UniqueIdentifier>{e8564ac2-1055-4b10-9da0-4ae82e713881}</UniqueIdentifier>
60
+ </Filter>
61
+ <Filter Include="Source Files\Moses2LM">
62
+ <UniqueIdentifier>{cad8906a-d5b9-447d-952c-68bd6fa93bef}</UniqueIdentifier>
63
+ </Filter>
64
+ <Filter Include="Source Files\SCFG\nbest">
65
+ <UniqueIdentifier>{806d58ef-f545-4428-a8f0-f870e211d15f}</UniqueIdentifier>
66
+ </Filter>
67
+ <Filter Include="Source Files\ProbingPT">
68
+ <UniqueIdentifier>{8f10d9c1-66d4-4490-b310-d3f4973bad29}</UniqueIdentifier>
69
+ </Filter>
70
+ <Filter Include="Source Files\TranslationModel\Dynamic">
71
+ <UniqueIdentifier>{8f2f68ba-2b5e-4d2c-92a7-6ece71df74ba}</UniqueIdentifier>
72
+ </Filter>
73
+ <Filter Include="Header Files\legacy">
74
+ <UniqueIdentifier>{742ab76a-e9db-4098-b7dd-38a4aeac845e}</UniqueIdentifier>
75
+ </Filter>
76
+ <Filter Include="Header Files\FF">
77
+ <UniqueIdentifier>{4bcc6bd2-7220-4a5a-95e1-fd08b03a0d34}</UniqueIdentifier>
78
+ </Filter>
79
+ </ItemGroup>
80
+ <ItemGroup>
81
+ <ClCompile Include="..\..\..\moses2\FF\Distortion.cpp">
82
+ <Filter>Source Files\FF</Filter>
83
+ </ClCompile>
84
+ <ClCompile Include="..\..\..\moses2\FF\ExampleStatefulFF.cpp">
85
+ <Filter>Source Files\FF</Filter>
86
+ </ClCompile>
87
+ <ClCompile Include="..\..\..\moses2\FF\ExampleStatelessFF.cpp">
88
+ <Filter>Source Files\FF</Filter>
89
+ </ClCompile>
90
+ <ClCompile Include="..\..\..\moses2\FF\FeatureFunction.cpp">
91
+ <Filter>Source Files\FF</Filter>
92
+ </ClCompile>
93
+ <ClCompile Include="..\..\..\moses2\FF\FeatureFunctions.cpp">
94
+ <Filter>Source Files\FF</Filter>
95
+ </ClCompile>
96
+ <ClCompile Include="..\..\..\moses2\FF\FeatureRegistry.cpp">
97
+ <Filter>Source Files\FF</Filter>
98
+ </ClCompile>
99
+ <ClCompile Include="..\..\..\moses2\FF\FFState.cpp">
100
+ <Filter>Source Files\FF</Filter>
101
+ </ClCompile>
102
+ <ClCompile Include="..\..\..\moses2\FF\PhrasePenalty.cpp">
103
+ <Filter>Source Files\FF</Filter>
104
+ </ClCompile>
105
+ <ClCompile Include="..\..\..\moses2\FF\PointerState.cpp">
106
+ <Filter>Source Files\FF</Filter>
107
+ </ClCompile>
108
+ <ClCompile Include="..\..\..\moses2\FF\StatefulFeatureFunction.cpp">
109
+ <Filter>Source Files\FF</Filter>
110
+ </ClCompile>
111
+ <ClCompile Include="..\..\..\moses2\FF\StatelessFeatureFunction.cpp">
112
+ <Filter>Source Files\FF</Filter>
113
+ </ClCompile>
114
+ <ClCompile Include="..\..\..\moses2\FF\WordPenalty.cpp">
115
+ <Filter>Source Files\FF</Filter>
116
+ </ClCompile>
117
+ <ClCompile Include="..\..\..\moses2\FF\OSM\KenOSM.cpp">
118
+ <Filter>Source Files\FF\OSM</Filter>
119
+ </ClCompile>
120
+ <ClCompile Include="..\..\..\moses2\FF\OSM\OpSequenceModel.cpp">
121
+ <Filter>Source Files\FF\OSM</Filter>
122
+ </ClCompile>
123
+ <ClCompile Include="..\..\..\moses2\FF\OSM\osmHyp.cpp">
124
+ <Filter>Source Files\FF\OSM</Filter>
125
+ </ClCompile>
126
+ <ClCompile Include="..\..\..\moses2\FF\LexicalReordering\BidirectionalReorderingState.cpp">
127
+ <Filter>Source Files\FF\LexicalReordering</Filter>
128
+ </ClCompile>
129
+ <ClCompile Include="..\..\..\moses2\FF\LexicalReordering\HReorderingBackwardState.cpp">
130
+ <Filter>Source Files\FF\LexicalReordering</Filter>
131
+ </ClCompile>
132
+ <ClCompile Include="..\..\..\moses2\FF\LexicalReordering\HReorderingForwardState.cpp">
133
+ <Filter>Source Files\FF\LexicalReordering</Filter>
134
+ </ClCompile>
135
+ <ClCompile Include="..\..\..\moses2\FF\LexicalReordering\LexicalReordering.cpp">
136
+ <Filter>Source Files\FF\LexicalReordering</Filter>
137
+ </ClCompile>
138
+ <ClCompile Include="..\..\..\moses2\FF\LexicalReordering\LRModel.cpp">
139
+ <Filter>Source Files\FF\LexicalReordering</Filter>
140
+ </ClCompile>
141
+ <ClCompile Include="..\..\..\moses2\FF\LexicalReordering\LRState.cpp">
142
+ <Filter>Source Files\FF\LexicalReordering</Filter>
143
+ </ClCompile>
144
+ <ClCompile Include="..\..\..\moses2\FF\LexicalReordering\PhraseBasedReorderingState.cpp">
145
+ <Filter>Source Files\FF\LexicalReordering</Filter>
146
+ </ClCompile>
147
+ <ClCompile Include="..\..\..\moses2\FF\LexicalReordering\ReorderingStack.cpp">
148
+ <Filter>Source Files\FF\LexicalReordering</Filter>
149
+ </ClCompile>
150
+ <ClCompile Include="..\..\..\moses2\legacy\Util2.cpp">
151
+ <Filter>Source Files\legacy</Filter>
152
+ </ClCompile>
153
+ <ClCompile Include="..\..\..\moses2\legacy\Timer.cpp">
154
+ <Filter>Source Files\legacy</Filter>
155
+ </ClCompile>
156
+ <ClCompile Include="..\..\..\moses2\legacy\ThreadPool.cpp">
157
+ <Filter>Source Files\legacy</Filter>
158
+ </ClCompile>
159
+ <ClCompile Include="..\..\..\moses2\legacy\Range.cpp">
160
+ <Filter>Source Files\legacy</Filter>
161
+ </ClCompile>
162
+ <ClCompile Include="..\..\..\moses2\legacy\Parameter.cpp">
163
+ <Filter>Source Files\legacy</Filter>
164
+ </ClCompile>
165
+ <ClCompile Include="..\..\..\moses2\legacy\OutputFileStream.cpp">
166
+ <Filter>Source Files\legacy</Filter>
167
+ </ClCompile>
168
+ <ClCompile Include="..\..\..\moses2\legacy\Matrix.cpp">
169
+ <Filter>Source Files\legacy</Filter>
170
+ </ClCompile>
171
+ <ClCompile Include="..\..\..\moses2\legacy\InputFileStream.cpp">
172
+ <Filter>Source Files\legacy</Filter>
173
+ </ClCompile>
174
+ <ClCompile Include="..\..\..\moses2\legacy\FactorCollection.cpp">
175
+ <Filter>Source Files\legacy</Filter>
176
+ </ClCompile>
177
+ <ClCompile Include="..\..\..\moses2\legacy\Factor.cpp">
178
+ <Filter>Source Files\legacy</Filter>
179
+ </ClCompile>
180
+ <ClCompile Include="..\..\..\moses2\legacy\Bitmaps.cpp">
181
+ <Filter>Source Files\legacy</Filter>
182
+ </ClCompile>
183
+ <ClCompile Include="..\..\..\moses2\legacy\Bitmap.cpp">
184
+ <Filter>Source Files\legacy</Filter>
185
+ </ClCompile>
186
+ <ClCompile Include="..\..\..\moses2\LM\GPULM.cpp">
187
+ <Filter>Source Files\Moses2LM</Filter>
188
+ </ClCompile>
189
+ <ClCompile Include="..\..\..\moses2\LM\KENLM.cpp">
190
+ <Filter>Source Files\Moses2LM</Filter>
191
+ </ClCompile>
192
+ <ClCompile Include="..\..\..\moses2\LM\KENLMBatch.cpp">
193
+ <Filter>Source Files\Moses2LM</Filter>
194
+ </ClCompile>
195
+ <ClCompile Include="..\..\..\moses2\LM\LanguageModel.cpp">
196
+ <Filter>Source Files\Moses2LM</Filter>
197
+ </ClCompile>
198
+ <ClCompile Include="..\..\..\moses2\parameters\AllOptions.cpp">
199
+ <Filter>Source Files\parameters</Filter>
200
+ </ClCompile>
201
+ <ClCompile Include="..\..\..\moses2\parameters\BookkeepingOptions.cpp">
202
+ <Filter>Source Files\parameters</Filter>
203
+ </ClCompile>
204
+ <ClCompile Include="..\..\..\moses2\parameters\ContextParameters.cpp">
205
+ <Filter>Source Files\parameters</Filter>
206
+ </ClCompile>
207
+ <ClCompile Include="..\..\..\moses2\parameters\CubePruningOptions.cpp">
208
+ <Filter>Source Files\parameters</Filter>
209
+ </ClCompile>
210
+ <ClCompile Include="..\..\..\moses2\parameters\InputOptions.cpp">
211
+ <Filter>Source Files\parameters</Filter>
212
+ </ClCompile>
213
+ <ClCompile Include="..\..\..\moses2\parameters\LMBR_Options.cpp">
214
+ <Filter>Source Files\parameters</Filter>
215
+ </ClCompile>
216
+ <ClCompile Include="..\..\..\moses2\parameters\MBR_Options.cpp">
217
+ <Filter>Source Files\parameters</Filter>
218
+ </ClCompile>
219
+ <ClCompile Include="..\..\..\moses2\parameters\NBestOptions.cpp">
220
+ <Filter>Source Files\parameters</Filter>
221
+ </ClCompile>
222
+ <ClCompile Include="..\..\..\moses2\parameters\OOVHandlingOptions.cpp">
223
+ <Filter>Source Files\parameters</Filter>
224
+ </ClCompile>
225
+ <ClCompile Include="..\..\..\moses2\parameters\OptionsBaseClass.cpp">
226
+ <Filter>Source Files\parameters</Filter>
227
+ </ClCompile>
228
+ <ClCompile Include="..\..\..\moses2\parameters\ReorderingOptions.cpp">
229
+ <Filter>Source Files\parameters</Filter>
230
+ </ClCompile>
231
+ <ClCompile Include="..\..\..\moses2\parameters\ReportingOptions.cpp">
232
+ <Filter>Source Files\parameters</Filter>
233
+ </ClCompile>
234
+ <ClCompile Include="..\..\..\moses2\parameters\SearchOptions.cpp">
235
+ <Filter>Source Files\parameters</Filter>
236
+ </ClCompile>
237
+ <ClCompile Include="..\..\..\moses2\parameters\SyntaxOptions.cpp">
238
+ <Filter>Source Files\parameters</Filter>
239
+ </ClCompile>
240
+ <ClCompile Include="..\..\..\moses2\PhraseBased\InputPaths.cpp">
241
+ <Filter>Source Files\PhraseBased</Filter>
242
+ </ClCompile>
243
+ <ClCompile Include="..\..\..\moses2\PhraseBased\Hypothesis.cpp">
244
+ <Filter>Source Files\PhraseBased</Filter>
245
+ </ClCompile>
246
+ <ClCompile Include="..\..\..\moses2\PhraseBased\InputPath.cpp">
247
+ <Filter>Source Files\PhraseBased</Filter>
248
+ </ClCompile>
249
+ <ClCompile Include="..\..\..\moses2\PhraseBased\Manager.cpp">
250
+ <Filter>Source Files\PhraseBased</Filter>
251
+ </ClCompile>
252
+ <ClCompile Include="..\..\..\moses2\PhraseBased\PhraseImpl.cpp">
253
+ <Filter>Source Files\PhraseBased</Filter>
254
+ </ClCompile>
255
+ <ClCompile Include="..\..\..\moses2\PhraseBased\ReorderingConstraint.cpp">
256
+ <Filter>Source Files\PhraseBased</Filter>
257
+ </ClCompile>
258
+ <ClCompile Include="..\..\..\moses2\PhraseBased\Search.cpp">
259
+ <Filter>Source Files\PhraseBased</Filter>
260
+ </ClCompile>
261
+ <ClCompile Include="..\..\..\moses2\PhraseBased\Sentence.cpp">
262
+ <Filter>Source Files\PhraseBased</Filter>
263
+ </ClCompile>
264
+ <ClCompile Include="..\..\..\moses2\PhraseBased\SentenceWithCandidates.cpp">
265
+ <Filter>Source Files\PhraseBased</Filter>
266
+ </ClCompile>
267
+ <ClCompile Include="..\..\..\moses2\PhraseBased\TargetPhraseImpl.cpp">
268
+ <Filter>Source Files\PhraseBased</Filter>
269
+ </ClCompile>
270
+ <ClCompile Include="..\..\..\moses2\PhraseBased\TargetPhrases.cpp">
271
+ <Filter>Source Files\PhraseBased</Filter>
272
+ </ClCompile>
273
+ <ClCompile Include="..\..\..\moses2\PhraseBased\TrellisPath.cpp">
274
+ <Filter>Source Files\PhraseBased</Filter>
275
+ </ClCompile>
276
+ <ClCompile Include="..\..\..\moses2\PhraseBased\Normal\Search.cpp">
277
+ <Filter>Source Files\PhraseBased\Normal</Filter>
278
+ </ClCompile>
279
+ <ClCompile Include="..\..\..\moses2\PhraseBased\Normal\Stack.cpp">
280
+ <Filter>Source Files\PhraseBased\Normal</Filter>
281
+ </ClCompile>
282
+ <ClCompile Include="..\..\..\moses2\PhraseBased\Normal\Stacks.cpp">
283
+ <Filter>Source Files\PhraseBased\Normal</Filter>
284
+ </ClCompile>
285
+ <ClCompile Include="..\..\..\moses2\PhraseBased\CubePruningMiniStack\Misc.cpp">
286
+ <Filter>Source Files\PhraseBased\CubePruningMiniStack</Filter>
287
+ </ClCompile>
288
+ <ClCompile Include="..\..\..\moses2\PhraseBased\CubePruningMiniStack\Search.cpp">
289
+ <Filter>Source Files\PhraseBased\CubePruningMiniStack</Filter>
290
+ </ClCompile>
291
+ <ClCompile Include="..\..\..\moses2\PhraseBased\CubePruningMiniStack\Stack.cpp">
292
+ <Filter>Source Files\PhraseBased\CubePruningMiniStack</Filter>
293
+ </ClCompile>
294
+ <ClCompile Include="..\..\..\probingpt\hash.cpp">
295
+ <Filter>Source Files\ProbingPT</Filter>
296
+ </ClCompile>
297
+ <ClCompile Include="..\..\..\probingpt\InputFileStream.cpp">
298
+ <Filter>Source Files\ProbingPT</Filter>
299
+ </ClCompile>
300
+ <ClCompile Include="..\..\..\probingpt\util.cpp">
301
+ <Filter>Source Files\ProbingPT</Filter>
302
+ </ClCompile>
303
+ <ClCompile Include="..\..\..\probingpt\vocabid.cpp">
304
+ <Filter>Source Files\ProbingPT</Filter>
305
+ </ClCompile>
306
+ <ClCompile Include="..\..\..\moses2\SCFG\ActiveChart.cpp">
307
+ <Filter>Source Files\SCFG</Filter>
308
+ </ClCompile>
309
+ <ClCompile Include="..\..\..\moses2\SCFG\Hypothesis.cpp">
310
+ <Filter>Source Files\SCFG</Filter>
311
+ </ClCompile>
312
+ <ClCompile Include="..\..\..\moses2\SCFG\InputPath.cpp">
313
+ <Filter>Source Files\SCFG</Filter>
314
+ </ClCompile>
315
+ <ClCompile Include="..\..\..\moses2\SCFG\InputPaths.cpp">
316
+ <Filter>Source Files\SCFG</Filter>
317
+ </ClCompile>
318
+ <ClCompile Include="..\..\..\moses2\SCFG\Manager.cpp">
319
+ <Filter>Source Files\SCFG</Filter>
320
+ </ClCompile>
321
+ <ClCompile Include="..\..\..\moses2\SCFG\Misc.cpp">
322
+ <Filter>Source Files\SCFG</Filter>
323
+ </ClCompile>
324
+ <ClCompile Include="..\..\..\moses2\SCFG\PhraseImpl.cpp">
325
+ <Filter>Source Files\SCFG</Filter>
326
+ </ClCompile>
327
+ <ClCompile Include="..\..\..\moses2\SCFG\Sentence.cpp">
328
+ <Filter>Source Files\SCFG</Filter>
329
+ </ClCompile>
330
+ <ClCompile Include="..\..\..\moses2\SCFG\Stack.cpp">
331
+ <Filter>Source Files\SCFG</Filter>
332
+ </ClCompile>
333
+ <ClCompile Include="..\..\..\moses2\SCFG\Stacks.cpp">
334
+ <Filter>Source Files\SCFG</Filter>
335
+ </ClCompile>
336
+ <ClCompile Include="..\..\..\moses2\SCFG\TargetPhraseImpl.cpp">
337
+ <Filter>Source Files\SCFG</Filter>
338
+ </ClCompile>
339
+ <ClCompile Include="..\..\..\moses2\SCFG\TargetPhrases.cpp">
340
+ <Filter>Source Files\SCFG</Filter>
341
+ </ClCompile>
342
+ <ClCompile Include="..\..\..\moses2\SCFG\Word.cpp">
343
+ <Filter>Source Files\SCFG</Filter>
344
+ </ClCompile>
345
+ <ClCompile Include="..\..\..\moses2\SCFG\nbest\KBestExtractor.cpp">
346
+ <Filter>Source Files\SCFG\nbest</Filter>
347
+ </ClCompile>
348
+ <ClCompile Include="..\..\..\moses2\SCFG\nbest\NBest.cpp">
349
+ <Filter>Source Files\SCFG\nbest</Filter>
350
+ </ClCompile>
351
+ <ClCompile Include="..\..\..\moses2\SCFG\nbest\NBestColl.cpp">
352
+ <Filter>Source Files\SCFG\nbest</Filter>
353
+ </ClCompile>
354
+ <ClCompile Include="..\..\..\moses2\SCFG\nbest\NBests.cpp">
355
+ <Filter>Source Files\SCFG\nbest</Filter>
356
+ </ClCompile>
357
+ <ClCompile Include="..\..\..\moses2\TranslationModel\PhraseTable.cpp">
358
+ <Filter>Source Files\TranslationModel</Filter>
359
+ </ClCompile>
360
+ <ClCompile Include="..\..\..\moses2\TranslationModel\UnknownWordPenalty.cpp">
361
+ <Filter>Source Files\TranslationModel</Filter>
362
+ </ClCompile>
363
+ <ClCompile Include="..\..\..\moses2\TranslationModel\Transliteration.cpp">
364
+ <Filter>Source Files\TranslationModel</Filter>
365
+ </ClCompile>
366
+ <ClCompile Include="..\..\..\moses2\TranslationModel\Memory\PhraseTableMemory.cpp">
367
+ <Filter>Source Files\TranslationModel\Memory</Filter>
368
+ </ClCompile>
369
+ <ClCompile Include="..\..\..\util\double-conversion\bignum.cc">
370
+ <Filter>Source Files\util\double-conversion</Filter>
371
+ </ClCompile>
372
+ <ClCompile Include="..\..\..\util\double-conversion\bignum-dtoa.cc">
373
+ <Filter>Source Files\util\double-conversion</Filter>
374
+ </ClCompile>
375
+ <ClCompile Include="..\..\..\util\double-conversion\cached-powers.cc">
376
+ <Filter>Source Files\util\double-conversion</Filter>
377
+ </ClCompile>
378
+ <ClCompile Include="..\..\..\util\double-conversion\diy-fp.cc">
379
+ <Filter>Source Files\util\double-conversion</Filter>
380
+ </ClCompile>
381
+ <ClCompile Include="..\..\..\util\double-conversion\fast-dtoa.cc">
382
+ <Filter>Source Files\util\double-conversion</Filter>
383
+ </ClCompile>
384
+ <ClCompile Include="..\..\..\util\double-conversion\fixed-dtoa.cc">
385
+ <Filter>Source Files\util\double-conversion</Filter>
386
+ </ClCompile>
387
+ <ClCompile Include="..\..\..\util\double-conversion\strtod.cc">
388
+ <Filter>Source Files\util\double-conversion</Filter>
389
+ </ClCompile>
390
+ <ClCompile Include="..\..\..\util\double-conversion\double-conversion.cc">
391
+ <Filter>Source Files\util\double-conversion</Filter>
392
+ </ClCompile>
393
+ <ClCompile Include="..\..\..\util\bit_packing.cc">
394
+ <Filter>Source Files\util</Filter>
395
+ </ClCompile>
396
+ <ClCompile Include="..\..\..\util\ersatz_progress.cc">
397
+ <Filter>Source Files\util</Filter>
398
+ </ClCompile>
399
+ <ClCompile Include="..\..\..\util\exception.cc">
400
+ <Filter>Source Files\util</Filter>
401
+ </ClCompile>
402
+ <ClCompile Include="..\..\..\util\file.cc">
403
+ <Filter>Source Files\util</Filter>
404
+ </ClCompile>
405
+ <ClCompile Include="..\..\..\util\file_piece.cc">
406
+ <Filter>Source Files\util</Filter>
407
+ </ClCompile>
408
+ <ClCompile Include="..\..\..\util\float_to_string.cc">
409
+ <Filter>Source Files\util</Filter>
410
+ </ClCompile>
411
+ <ClCompile Include="..\..\..\util\integer_to_string.cc">
412
+ <Filter>Source Files\util</Filter>
413
+ </ClCompile>
414
+ <ClCompile Include="..\..\..\util\mmap.cc">
415
+ <Filter>Source Files\util</Filter>
416
+ </ClCompile>
417
+ <ClCompile Include="..\..\..\util\murmur_hash.cc">
418
+ <Filter>Source Files\util</Filter>
419
+ </ClCompile>
420
+ <ClCompile Include="..\..\..\util\parallel_read.cc">
421
+ <Filter>Source Files\util</Filter>
422
+ </ClCompile>
423
+ <ClCompile Include="..\..\..\util\pool.cc">
424
+ <Filter>Source Files\util</Filter>
425
+ </ClCompile>
426
+ <ClCompile Include="..\..\..\util\random.cc">
427
+ <Filter>Source Files\util</Filter>
428
+ </ClCompile>
429
+ <ClCompile Include="..\..\..\util\read_compressed.cc">
430
+ <Filter>Source Files\util</Filter>
431
+ </ClCompile>
432
+ <ClCompile Include="..\..\..\util\scoped.cc">
433
+ <Filter>Source Files\util</Filter>
434
+ </ClCompile>
435
+ <ClCompile Include="..\..\..\util\string_piece.cc">
436
+ <Filter>Source Files\util</Filter>
437
+ </ClCompile>
438
+ <ClCompile Include="..\..\..\util\usage.cc">
439
+ <Filter>Source Files\util</Filter>
440
+ </ClCompile>
441
+ <ClCompile Include="..\..\..\moses2\AlignmentInfo.cpp">
442
+ <Filter>Source Files</Filter>
443
+ </ClCompile>
444
+ <ClCompile Include="..\..\..\moses2\AlignmentInfoCollection.cpp">
445
+ <Filter>Source Files</Filter>
446
+ </ClCompile>
447
+ <ClCompile Include="..\..\..\moses2\ArcLists.cpp">
448
+ <Filter>Source Files</Filter>
449
+ </ClCompile>
450
+ <ClCompile Include="..\..\..\moses2\EstimatedScores.cpp">
451
+ <Filter>Source Files</Filter>
452
+ </ClCompile>
453
+ <ClCompile Include="..\..\..\moses2\HypothesisBase.cpp">
454
+ <Filter>Source Files</Filter>
455
+ </ClCompile>
456
+ <ClCompile Include="..\..\..\moses2\HypothesisColl.cpp">
457
+ <Filter>Source Files</Filter>
458
+ </ClCompile>
459
+ <ClCompile Include="..\..\..\moses2\InputPathBase.cpp">
460
+ <Filter>Source Files</Filter>
461
+ </ClCompile>
462
+ <ClCompile Include="..\..\..\moses2\InputPathsBase.cpp">
463
+ <Filter>Source Files</Filter>
464
+ </ClCompile>
465
+ <ClCompile Include="..\..\..\moses2\InputType.cpp">
466
+ <Filter>Source Files</Filter>
467
+ </ClCompile>
468
+ <ClCompile Include="..\..\..\moses2\ManagerBase.cpp">
469
+ <Filter>Source Files</Filter>
470
+ </ClCompile>
471
+ <ClCompile Include="..\..\..\moses2\MemPool.cpp">
472
+ <Filter>Source Files</Filter>
473
+ </ClCompile>
474
+ <ClCompile Include="..\..\..\moses2\Phrase.cpp">
475
+ <Filter>Source Files</Filter>
476
+ </ClCompile>
477
+ <ClCompile Include="..\..\..\moses2\pugixml.cpp">
478
+ <Filter>Source Files</Filter>
479
+ </ClCompile>
480
+ <ClCompile Include="..\..\..\moses2\Recycler.cpp">
481
+ <Filter>Source Files</Filter>
482
+ </ClCompile>
483
+ <ClCompile Include="..\..\..\moses2\Scores.cpp">
484
+ <Filter>Source Files</Filter>
485
+ </ClCompile>
486
+ <ClCompile Include="..\..\..\moses2\System.cpp">
487
+ <Filter>Source Files</Filter>
488
+ </ClCompile>
489
+ <ClCompile Include="..\..\..\moses2\TargetPhrase.cpp">
490
+ <Filter>Source Files</Filter>
491
+ </ClCompile>
492
+ <ClCompile Include="..\..\..\moses2\TranslationTask.cpp">
493
+ <Filter>Source Files</Filter>
494
+ </ClCompile>
495
+ <ClCompile Include="..\..\..\moses2\TrellisPaths.cpp">
496
+ <Filter>Source Files</Filter>
497
+ </ClCompile>
498
+ <ClCompile Include="..\..\..\moses2\TypeDef.cpp">
499
+ <Filter>Source Files</Filter>
500
+ </ClCompile>
501
+ <ClCompile Include="..\..\..\moses2\Vector.cpp">
502
+ <Filter>Source Files</Filter>
503
+ </ClCompile>
504
+ <ClCompile Include="..\..\..\moses2\Weights.cpp">
505
+ <Filter>Source Files</Filter>
506
+ </ClCompile>
507
+ <ClCompile Include="..\..\..\moses2\Word.cpp">
508
+ <Filter>Source Files</Filter>
509
+ </ClCompile>
510
+ <ClCompile Include="..\..\..\moses2\SubPhrase.cpp">
511
+ <Filter>Source Files</Filter>
512
+ </ClCompile>
513
+ <ClCompile Include="..\..\..\lm\bhiksha.cc">
514
+ <Filter>Source Files\lm</Filter>
515
+ </ClCompile>
516
+ <ClCompile Include="..\..\..\lm\binary_format.cc">
517
+ <Filter>Source Files\lm</Filter>
518
+ </ClCompile>
519
+ <ClCompile Include="..\..\..\lm\config.cc">
520
+ <Filter>Source Files\lm</Filter>
521
+ </ClCompile>
522
+ <ClCompile Include="..\..\..\lm\lm_exception.cc">
523
+ <Filter>Source Files\lm</Filter>
524
+ </ClCompile>
525
+ <ClCompile Include="..\..\..\lm\model.cc">
526
+ <Filter>Source Files\lm</Filter>
527
+ </ClCompile>
528
+ <ClCompile Include="..\..\..\lm\quantize.cc">
529
+ <Filter>Source Files\lm</Filter>
530
+ </ClCompile>
531
+ <ClCompile Include="..\..\..\lm\read_arpa.cc">
532
+ <Filter>Source Files\lm</Filter>
533
+ </ClCompile>
534
+ <ClCompile Include="..\..\..\lm\search_hashed.cc">
535
+ <Filter>Source Files\lm</Filter>
536
+ </ClCompile>
537
+ <ClCompile Include="..\..\..\lm\search_trie.cc">
538
+ <Filter>Source Files\lm</Filter>
539
+ </ClCompile>
540
+ <ClCompile Include="..\..\..\lm\sizes.cc">
541
+ <Filter>Source Files\lm</Filter>
542
+ </ClCompile>
543
+ <ClCompile Include="..\..\..\lm\trie.cc">
544
+ <Filter>Source Files\lm</Filter>
545
+ </ClCompile>
546
+ <ClCompile Include="..\..\..\lm\trie_sort.cc">
547
+ <Filter>Source Files\lm</Filter>
548
+ </ClCompile>
549
+ <ClCompile Include="..\..\..\lm\value_build.cc">
550
+ <Filter>Source Files\lm</Filter>
551
+ </ClCompile>
552
+ <ClCompile Include="..\..\..\lm\virtual_interface.cc">
553
+ <Filter>Source Files\lm</Filter>
554
+ </ClCompile>
555
+ <ClCompile Include="..\..\..\lm\vocab.cc">
556
+ <Filter>Source Files\lm</Filter>
557
+ </ClCompile>
558
+ <ClCompile Include="..\..\..\moses2\Moses2Wrapper.cpp">
559
+ <Filter>Source Files</Filter>
560
+ </ClCompile>
561
+ <ClCompile Include="..\..\..\moses2\parameters\ServerOptions.cpp">
562
+ <Filter>Source Files\parameters</Filter>
563
+ </ClCompile>
564
+ <ClCompile Include="..\..\..\moses2\TranslationModel\Dynamic\DynamicPhraseTable.cpp">
565
+ <Filter>Source Files\TranslationModel\Dynamic</Filter>
566
+ </ClCompile>
567
+ <ClCompile Include="..\..\..\moses2\DLLEntryApi.cpp">
568
+ <Filter>Source Files</Filter>
569
+ </ClCompile>
570
+ <ClCompile Include="..\..\..\moses2\TranslationModel\ProbingPT.cpp">
571
+ <Filter>Source Files\TranslationModel</Filter>
572
+ </ClCompile>
573
+ <ClCompile Include="..\..\..\probingpt\querying.cpp">
574
+ <Filter>Source Files\ProbingPT</Filter>
575
+ </ClCompile>
576
+ <ClCompile Include="..\..\..\probingpt\probing_hash_utils.cpp">
577
+ <Filter>Source Files\ProbingPT</Filter>
578
+ </ClCompile>
579
+ <ClCompile Include="..\..\..\moses2\legacy\OutputCollector.cpp">
580
+ <Filter>Source Files\legacy</Filter>
581
+ </ClCompile>
582
+ </ItemGroup>
583
+ <ItemGroup>
584
+ <None Include="packages.config" />
585
+ </ItemGroup>
586
+ <ItemGroup>
587
+ <ClInclude Include="..\..\..\moses2\TranslationModel\ProbingPT.h">
588
+ <Filter>Source Files\TranslationModel</Filter>
589
+ </ClInclude>
590
+ <ClInclude Include="..\..\..\probingpt\querying.h">
591
+ <Filter>Source Files\ProbingPT</Filter>
592
+ </ClInclude>
593
+ <ClInclude Include="..\..\..\probingpt\probing_hash_utils.h">
594
+ <Filter>Source Files\ProbingPT</Filter>
595
+ </ClInclude>
596
+ <ClInclude Include="..\..\..\moses2\AlignmentInfo.h">
597
+ <Filter>Header Files</Filter>
598
+ </ClInclude>
599
+ <ClInclude Include="..\..\..\moses2\AlignmentInfoCollection.h">
600
+ <Filter>Header Files</Filter>
601
+ </ClInclude>
602
+ <ClInclude Include="..\..\..\moses2\ArcLists.h">
603
+ <Filter>Header Files</Filter>
604
+ </ClInclude>
605
+ <ClInclude Include="..\..\..\moses2\Array.h">
606
+ <Filter>Header Files</Filter>
607
+ </ClInclude>
608
+ <ClInclude Include="..\..\..\moses2\EstimatedScores.h">
609
+ <Filter>Header Files</Filter>
610
+ </ClInclude>
611
+ <ClInclude Include="..\..\..\moses2\HypothesisBase.h">
612
+ <Filter>Header Files</Filter>
613
+ </ClInclude>
614
+ <ClInclude Include="..\..\..\moses2\HypothesisColl.h">
615
+ <Filter>Header Files</Filter>
616
+ </ClInclude>
617
+ <ClInclude Include="..\..\..\moses2\InputPathBase.h">
618
+ <Filter>Header Files</Filter>
619
+ </ClInclude>
620
+ <ClInclude Include="..\..\..\moses2\InputPathsBase.h">
621
+ <Filter>Header Files</Filter>
622
+ </ClInclude>
623
+ <ClInclude Include="..\..\..\moses2\InputType.h">
624
+ <Filter>Header Files</Filter>
625
+ </ClInclude>
626
+ <ClInclude Include="..\..\..\moses2\Main.h">
627
+ <Filter>Header Files</Filter>
628
+ </ClInclude>
629
+ <ClInclude Include="..\..\..\moses2\ManagerBase.h">
630
+ <Filter>Header Files</Filter>
631
+ </ClInclude>
632
+ <ClInclude Include="..\..\..\moses2\MemPool.h">
633
+ <Filter>Header Files</Filter>
634
+ </ClInclude>
635
+ <ClInclude Include="..\..\..\moses2\MemPoolAllocator.h">
636
+ <Filter>Header Files</Filter>
637
+ </ClInclude>
638
+ <ClInclude Include="..\..\..\moses2\Moses2Wrapper.h">
639
+ <Filter>Header Files</Filter>
640
+ </ClInclude>
641
+ <ClInclude Include="..\..\..\moses2\Phrase.h">
642
+ <Filter>Header Files</Filter>
643
+ </ClInclude>
644
+ <ClInclude Include="..\..\..\moses2\PhraseImplTemplate.h">
645
+ <Filter>Header Files</Filter>
646
+ </ClInclude>
647
+ <ClInclude Include="..\..\..\moses2\pugiconfig.hpp">
648
+ <Filter>Header Files</Filter>
649
+ </ClInclude>
650
+ <ClInclude Include="..\..\..\moses2\pugixml.hpp">
651
+ <Filter>Header Files</Filter>
652
+ </ClInclude>
653
+ <ClInclude Include="..\..\..\moses2\Recycler.h">
654
+ <Filter>Header Files</Filter>
655
+ </ClInclude>
656
+ <ClInclude Include="..\..\..\moses2\Scores.h">
657
+ <Filter>Header Files</Filter>
658
+ </ClInclude>
659
+ <ClInclude Include="..\..\..\moses2\SubPhrase.h">
660
+ <Filter>Header Files</Filter>
661
+ </ClInclude>
662
+ <ClInclude Include="..\..\..\moses2\System.h">
663
+ <Filter>Header Files</Filter>
664
+ </ClInclude>
665
+ <ClInclude Include="..\..\..\moses2\TargetPhrase.h">
666
+ <Filter>Header Files</Filter>
667
+ </ClInclude>
668
+ <ClInclude Include="..\..\..\moses2\TranslationTask.h">
669
+ <Filter>Header Files</Filter>
670
+ </ClInclude>
671
+ <ClInclude Include="..\..\..\moses2\TrellisPaths.h">
672
+ <Filter>Header Files</Filter>
673
+ </ClInclude>
674
+ <ClInclude Include="..\..\..\moses2\TypeDef.h">
675
+ <Filter>Header Files</Filter>
676
+ </ClInclude>
677
+ <ClInclude Include="..\..\..\moses2\Vector.h">
678
+ <Filter>Header Files</Filter>
679
+ </ClInclude>
680
+ <ClInclude Include="..\..\..\moses2\Weights.h">
681
+ <Filter>Header Files</Filter>
682
+ </ClInclude>
683
+ <ClInclude Include="..\..\..\moses2\Word.h">
684
+ <Filter>Header Files</Filter>
685
+ </ClInclude>
686
+ <ClInclude Include="..\..\..\moses2\legacy\Bitmap.h">
687
+ <Filter>Header Files\legacy</Filter>
688
+ </ClInclude>
689
+ <ClInclude Include="..\..\..\moses2\legacy\Bitmaps.h">
690
+ <Filter>Header Files\legacy</Filter>
691
+ </ClInclude>
692
+ <ClInclude Include="..\..\..\moses2\legacy\Factor.h">
693
+ <Filter>Header Files\legacy</Filter>
694
+ </ClInclude>
695
+ <ClInclude Include="..\..\..\moses2\legacy\FactorCollection.h">
696
+ <Filter>Header Files\legacy</Filter>
697
+ </ClInclude>
698
+ <ClInclude Include="..\..\..\moses2\legacy\gzfilebuf.h">
699
+ <Filter>Header Files\legacy</Filter>
700
+ </ClInclude>
701
+ <ClInclude Include="..\..\..\moses2\legacy\InputFileStream.h">
702
+ <Filter>Header Files\legacy</Filter>
703
+ </ClInclude>
704
+ <ClInclude Include="..\..\..\moses2\legacy\Matrix.h">
705
+ <Filter>Header Files\legacy</Filter>
706
+ </ClInclude>
707
+ <ClInclude Include="..\..\..\moses2\legacy\OutputCollector.h">
708
+ <Filter>Header Files\legacy</Filter>
709
+ </ClInclude>
710
+ <ClInclude Include="..\..\..\moses2\legacy\OutputFileStream.h">
711
+ <Filter>Header Files\legacy</Filter>
712
+ </ClInclude>
713
+ <ClInclude Include="..\..\..\moses2\legacy\Parameter.h">
714
+ <Filter>Header Files\legacy</Filter>
715
+ </ClInclude>
716
+ <ClInclude Include="..\..\..\moses2\legacy\Range.h">
717
+ <Filter>Header Files\legacy</Filter>
718
+ </ClInclude>
719
+ <ClInclude Include="..\..\..\moses2\legacy\ThreadPool.h">
720
+ <Filter>Header Files\legacy</Filter>
721
+ </ClInclude>
722
+ <ClInclude Include="..\..\..\moses2\legacy\Timer.h">
723
+ <Filter>Header Files\legacy</Filter>
724
+ </ClInclude>
725
+ <ClInclude Include="..\..\..\moses2\legacy\Util2.h">
726
+ <Filter>Header Files\legacy</Filter>
727
+ </ClInclude>
728
+ <ClInclude Include="..\..\..\moses2\legacy\xmlrpc-c.h">
729
+ <Filter>Header Files\legacy</Filter>
730
+ </ClInclude>
731
+ <ClInclude Include="..\..\..\moses2\FF\Distortion.h">
732
+ <Filter>Header Files\FF</Filter>
733
+ </ClInclude>
734
+ <ClInclude Include="..\..\..\moses2\FF\ExampleStatefulFF.h">
735
+ <Filter>Header Files\FF</Filter>
736
+ </ClInclude>
737
+ <ClInclude Include="..\..\..\moses2\FF\ExampleStatelessFF.h">
738
+ <Filter>Header Files\FF</Filter>
739
+ </ClInclude>
740
+ <ClInclude Include="..\..\..\moses2\FF\FeatureFunction.h">
741
+ <Filter>Header Files\FF</Filter>
742
+ </ClInclude>
743
+ <ClInclude Include="..\..\..\moses2\FF\FeatureFunctions.h">
744
+ <Filter>Header Files\FF</Filter>
745
+ </ClInclude>
746
+ <ClInclude Include="..\..\..\moses2\FF\FeatureRegistry.h">
747
+ <Filter>Header Files\FF</Filter>
748
+ </ClInclude>
749
+ <ClInclude Include="..\..\..\moses2\FF\FFState.h">
750
+ <Filter>Header Files\FF</Filter>
751
+ </ClInclude>
752
+ <ClInclude Include="..\..\..\moses2\FF\PhrasePenalty.h">
753
+ <Filter>Header Files\FF</Filter>
754
+ </ClInclude>
755
+ <ClInclude Include="..\..\..\moses2\FF\PointerState.h">
756
+ <Filter>Header Files\FF</Filter>
757
+ </ClInclude>
758
+ <ClInclude Include="..\..\..\moses2\FF\StatefulFeatureFunction.h">
759
+ <Filter>Header Files\FF</Filter>
760
+ </ClInclude>
761
+ <ClInclude Include="..\..\..\moses2\FF\StatelessFeatureFunction.h">
762
+ <Filter>Header Files\FF</Filter>
763
+ </ClInclude>
764
+ <ClInclude Include="..\..\..\moses2\FF\WordPenalty.h">
765
+ <Filter>Header Files\FF</Filter>
766
+ </ClInclude>
767
+ </ItemGroup>
768
+ </Project>
mosesdecoder/contrib/other-builds/probingpt/.cproject ADDED
@@ -0,0 +1,126 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
3
+ <storageModule moduleId="org.eclipse.cdt.core.settings">
4
+ <cconfiguration id="cdt.managedbuild.config.gnu.cross.lib.debug.1390723927">
5
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.cross.lib.debug.1390723927" moduleId="org.eclipse.cdt.core.settings" name="Debug">
6
+ <externalSettings>
7
+ <externalSetting>
8
+ <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/probingpt"/>
9
+ <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/probingpt/Debug"/>
10
+ <entry flags="RESOLVED" kind="libraryFile" name="probingpt" srcPrefixMapping="" srcRootPath=""/>
11
+ </externalSetting>
12
+ </externalSettings>
13
+ <extensions>
14
+ <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
15
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
16
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
17
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
18
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
19
+ </extensions>
20
+ </storageModule>
21
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
22
+ <configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cross.lib.debug.1390723927" name="Debug" parent="cdt.managedbuild.config.gnu.cross.lib.debug">
23
+ <folderInfo id="cdt.managedbuild.config.gnu.cross.lib.debug.1390723927." name="/" resourcePath="">
24
+ <toolChain id="cdt.managedbuild.toolchain.gnu.base.1892383378" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.base">
25
+ <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.GNU_ELF" id="cdt.managedbuild.target.gnu.platform.base.1942384585" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
26
+ <builder buildPath="${workspace_loc:/probingpt}/Debug" id="cdt.managedbuild.target.gnu.builder.base.572967082" keepEnvironmentInBuildfile="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.base"/>
27
+ <tool id="cdt.managedbuild.tool.gnu.archiver.base.1343809814" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
28
+ <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.626776252" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
29
+ <option id="gnu.cpp.compiler.option.include.paths.1735842464" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
30
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc}/../../boost/include&quot;"/>
31
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc}/../../&quot;"/>
32
+ </option>
33
+ <option id="gnu.cpp.compiler.option.optimization.level.1494203148" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
34
+ <option id="gnu.cpp.compiler.option.debugging.level.1379550456" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
35
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.668635091" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
36
+ </tool>
37
+ <tool id="cdt.managedbuild.tool.gnu.c.compiler.base.1738258831" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base">
38
+ <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.1689436297" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
39
+ <option id="gnu.c.compiler.option.debugging.level.1426288213" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.max" valueType="enumerated"/>
40
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.2143022963" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
41
+ </tool>
42
+ <tool id="cdt.managedbuild.tool.gnu.c.linker.base.1956788158" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base"/>
43
+ <tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.1641139310" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base"/>
44
+ <tool id="cdt.managedbuild.tool.gnu.assembler.base.2002874145" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base">
45
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1872716138" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
46
+ </tool>
47
+ </toolChain>
48
+ </folderInfo>
49
+ </configuration>
50
+ </storageModule>
51
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
52
+ </cconfiguration>
53
+ <cconfiguration id="cdt.managedbuild.config.gnu.cross.lib.release.890240571">
54
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.cross.lib.release.890240571" moduleId="org.eclipse.cdt.core.settings" name="Release">
55
+ <externalSettings>
56
+ <externalSetting>
57
+ <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/probingpt"/>
58
+ <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/probingpt/Release"/>
59
+ <entry flags="RESOLVED" kind="libraryFile" name="probingpt" srcPrefixMapping="" srcRootPath=""/>
60
+ </externalSetting>
61
+ </externalSettings>
62
+ <extensions>
63
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
64
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
65
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
66
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
67
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
68
+ </extensions>
69
+ </storageModule>
70
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
71
+ <configuration artifactExtension="a" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.staticLib" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.staticLib,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cross.lib.release.890240571" name="Release" parent="cdt.managedbuild.config.gnu.cross.lib.release">
72
+ <folderInfo id="cdt.managedbuild.config.gnu.cross.lib.release.890240571." name="/" resourcePath="">
73
+ <toolChain id="cdt.managedbuild.toolchain.gnu.cross.lib.release.885632145" name="Cross GCC" superClass="cdt.managedbuild.toolchain.gnu.cross.lib.release">
74
+ <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.targetPlatform.gnu.cross.1366680617" isAbstract="false" osList="all" superClass="cdt.managedbuild.targetPlatform.gnu.cross"/>
75
+ <builder buildPath="${workspace_loc:/probingpt}/Release" id="cdt.managedbuild.builder.gnu.cross.191907712" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.builder.gnu.cross"/>
76
+ <tool id="cdt.managedbuild.tool.gnu.cross.c.compiler.808139639" name="Cross GCC Compiler" superClass="cdt.managedbuild.tool.gnu.cross.c.compiler">
77
+ <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.option.optimization.level.224210565" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
78
+ <option id="gnu.c.compiler.option.debugging.level.53109509" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.none" valueType="enumerated"/>
79
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.474846340" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
80
+ </tool>
81
+ <tool id="cdt.managedbuild.tool.gnu.cross.cpp.compiler.825247044" name="Cross G++ Compiler" superClass="cdt.managedbuild.tool.gnu.cross.cpp.compiler">
82
+ <option id="gnu.cpp.compiler.option.optimization.level.1484316632" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
83
+ <option id="gnu.cpp.compiler.option.debugging.level.1585066416" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
84
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.149988472" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
85
+ </tool>
86
+ <tool id="cdt.managedbuild.tool.gnu.cross.c.linker.1042542443" name="Cross GCC Linker" superClass="cdt.managedbuild.tool.gnu.cross.c.linker"/>
87
+ <tool id="cdt.managedbuild.tool.gnu.cross.cpp.linker.1342788782" name="Cross G++ Linker" superClass="cdt.managedbuild.tool.gnu.cross.cpp.linker"/>
88
+ <tool id="cdt.managedbuild.tool.gnu.cross.archiver.56708033" name="Cross GCC Archiver" superClass="cdt.managedbuild.tool.gnu.cross.archiver"/>
89
+ <tool id="cdt.managedbuild.tool.gnu.cross.assembler.1620829860" name="Cross GCC Assembler" superClass="cdt.managedbuild.tool.gnu.cross.assembler">
90
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1936527691" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
91
+ </tool>
92
+ </toolChain>
93
+ </folderInfo>
94
+ </configuration>
95
+ </storageModule>
96
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
97
+ </cconfiguration>
98
+ </storageModule>
99
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
100
+ <project id="probingpt.cdt.managedbuild.target.gnu.cross.lib.1901222999" name="Static Library" projectType="cdt.managedbuild.target.gnu.cross.lib"/>
101
+ </storageModule>
102
+ <storageModule moduleId="scannerConfiguration">
103
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
104
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cross.lib.release.890240571;cdt.managedbuild.config.gnu.cross.lib.release.890240571.;cdt.managedbuild.tool.gnu.cross.cpp.compiler.825247044;cdt.managedbuild.tool.gnu.cpp.compiler.input.149988472">
105
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
106
+ </scannerConfigBuildInfo>
107
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cross.lib.release.890240571;cdt.managedbuild.config.gnu.cross.lib.release.890240571.;cdt.managedbuild.tool.gnu.cross.c.compiler.808139639;cdt.managedbuild.tool.gnu.c.compiler.input.474846340">
108
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
109
+ </scannerConfigBuildInfo>
110
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cross.lib.debug.1390723927;cdt.managedbuild.config.gnu.cross.lib.debug.1390723927.;cdt.managedbuild.tool.gnu.cross.cpp.compiler.1845983140;cdt.managedbuild.tool.gnu.cpp.compiler.input.1147743441">
111
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
112
+ </scannerConfigBuildInfo>
113
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cross.lib.debug.1390723927;cdt.managedbuild.config.gnu.cross.lib.debug.1390723927.;cdt.managedbuild.tool.gnu.cross.c.compiler.728323531;cdt.managedbuild.tool.gnu.c.compiler.input.183186094">
114
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
115
+ </scannerConfigBuildInfo>
116
+ </storageModule>
117
+ <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
118
+ <storageModule moduleId="refreshScope" versionNumber="2">
119
+ <configuration configurationName="Debug">
120
+ <resource resourceType="PROJECT" workspacePath="/probingpt"/>
121
+ </configuration>
122
+ <configuration configurationName="Release">
123
+ <resource resourceType="PROJECT" workspacePath="/probingpt"/>
124
+ </configuration>
125
+ </storageModule>
126
+ </cproject>
mosesdecoder/contrib/other-builds/probingpt/.project ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <projectDescription>
3
+ <name>probingpt</name>
4
+ <comment></comment>
5
+ <projects>
6
+ </projects>
7
+ <buildSpec>
8
+ <buildCommand>
9
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
10
+ <triggers>clean,full,incremental,</triggers>
11
+ <arguments>
12
+ </arguments>
13
+ </buildCommand>
14
+ <buildCommand>
15
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
16
+ <triggers>full,incremental,</triggers>
17
+ <arguments>
18
+ </arguments>
19
+ </buildCommand>
20
+ </buildSpec>
21
+ <natures>
22
+ <nature>org.eclipse.cdt.core.cnature</nature>
23
+ <nature>org.eclipse.cdt.core.ccnature</nature>
24
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
25
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
26
+ </natures>
27
+ <linkedResources>
28
+ <link>
29
+ <name>probingpt</name>
30
+ <type>2</type>
31
+ <locationURI>PARENT-3-PROJECT_LOC/probingpt</locationURI>
32
+ </link>
33
+ </linkedResources>
34
+ </projectDescription>
mosesdecoder/contrib/other-builds/score/.cproject ADDED
@@ -0,0 +1,153 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
3
+ <storageModule moduleId="org.eclipse.cdt.core.settings">
4
+ <cconfiguration id="cdt.managedbuild.config.gnu.exe.debug.852684782">
5
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.debug.852684782" moduleId="org.eclipse.cdt.core.settings" name="Debug">
6
+ <externalSettings/>
7
+ <extensions>
8
+ <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
9
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
10
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
11
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
12
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
13
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
14
+ </extensions>
15
+ </storageModule>
16
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
17
+ <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.debug.852684782" name="Debug" parent="cdt.managedbuild.config.gnu.exe.debug">
18
+ <folderInfo id="cdt.managedbuild.config.gnu.exe.debug.852684782." name="/" resourcePath="">
19
+ <toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.628760407" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.debug">
20
+ <targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug.40031730" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/>
21
+ <builder buildPath="${workspace_loc:/score}/Debug" id="cdt.managedbuild.target.gnu.builder.exe.debug.1494414913" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/>
22
+ <tool id="cdt.managedbuild.tool.gnu.archiver.base.1369030665" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
23
+ <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1299858559" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug">
24
+ <option id="gnu.cpp.compiler.exe.debug.option.optimization.level.1103483066" name="Optimization Level" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
25
+ <option id="gnu.cpp.compiler.exe.debug.option.debugging.level.11930558" name="Debug Level" superClass="gnu.cpp.compiler.exe.debug.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
26
+ <option id="gnu.cpp.compiler.option.include.paths.1147799314" name="Include paths (-I)" superClass="gnu.cpp.compiler.option.include.paths" useByScannerDiscovery="false" valueType="includePath">
27
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc}/../../boost/include&quot;"/>
28
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc}/../../&quot;"/>
29
+ </option>
30
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1638578889" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
31
+ </tool>
32
+ <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.debug.2096513387" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.debug">
33
+ <option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.exe.debug.option.optimization.level.1877980632" name="Optimization Level" superClass="gnu.c.compiler.exe.debug.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
34
+ <option id="gnu.c.compiler.exe.debug.option.debugging.level.1972289345" name="Debug Level" superClass="gnu.c.compiler.exe.debug.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.max" valueType="enumerated"/>
35
+ <option id="gnu.c.compiler.option.dialect.std.645941284" superClass="gnu.c.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.c.compiler.dialect.c11" valueType="enumerated"/>
36
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1767499123" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
37
+ </tool>
38
+ <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.9477188" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug"/>
39
+ <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug.1008235812" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug">
40
+ <option id="gnu.cpp.link.option.paths.2139594100" name="Library search path (-L)" superClass="gnu.cpp.link.option.paths" valueType="libPaths">
41
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/../../boost/lib64&quot;"/>
42
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/moses/Debug&quot;"/>
43
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/lm/Debug&quot;"/>
44
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/OnDiskPt/Debug&quot;"/>
45
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/util/Debug&quot;"/>
46
+ <listOptionValue builtIn="false" value="&quot;${workspace_loc:}/search/Debug&quot;"/>
47
+ <listOptionValue builtIn="false" value="/opt/local/lib"/>
48
+ </option>
49
+ <option id="gnu.cpp.link.option.libs.615408765" name="Libraries (-l)" superClass="gnu.cpp.link.option.libs" valueType="libs">
50
+ <listOptionValue builtIn="false" value="moses"/>
51
+ <listOptionValue builtIn="false" value="search"/>
52
+ <listOptionValue builtIn="false" value="OnDiskPt"/>
53
+ <listOptionValue builtIn="false" value="lm"/>
54
+ <listOptionValue builtIn="false" value="util"/>
55
+ <listOptionValue builtIn="false" value="boost_iostreams"/>
56
+ <listOptionValue builtIn="false" value="boost_serialization"/>
57
+ <listOptionValue builtIn="false" value="boost_system"/>
58
+ <listOptionValue builtIn="false" value="boost_thread"/>
59
+ <listOptionValue builtIn="false" value="boost_filesystem"/>
60
+ <listOptionValue builtIn="false" value="boost_program_options"/>
61
+ <listOptionValue builtIn="false" value="pthread"/>
62
+ <listOptionValue builtIn="false" value="z"/>
63
+ <listOptionValue builtIn="false" value="dl"/>
64
+ <listOptionValue builtIn="false" value="rt"/>
65
+ </option>
66
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.202044854" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
67
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
68
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
69
+ </inputType>
70
+ </tool>
71
+ <tool id="cdt.managedbuild.tool.gnu.assembler.exe.debug.1832317688" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug">
72
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.1877599289" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
73
+ </tool>
74
+ </toolChain>
75
+ </folderInfo>
76
+ </configuration>
77
+ </storageModule>
78
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
79
+ </cconfiguration>
80
+ <cconfiguration id="cdt.managedbuild.config.gnu.exe.release.1878418244">
81
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.release.1878418244" moduleId="org.eclipse.cdt.core.settings" name="Release">
82
+ <externalSettings/>
83
+ <extensions>
84
+ <extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/>
85
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
86
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
87
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
88
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
89
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
90
+ </extensions>
91
+ </storageModule>
92
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
93
+ <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.release.1878418244" name="Release" parent="cdt.managedbuild.config.gnu.exe.release">
94
+ <folderInfo id="cdt.managedbuild.config.gnu.exe.release.1878418244." name="/" resourcePath="">
95
+ <toolChain id="cdt.managedbuild.toolchain.gnu.exe.release.1661678477" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.release">
96
+ <targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.release.848161857" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.release"/>
97
+ <builder buildPath="${workspace_loc:/score}/Release" id="cdt.managedbuild.target.gnu.builder.exe.release.1694318208" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.exe.release"/>
98
+ <tool id="cdt.managedbuild.tool.gnu.archiver.base.1857970512" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
99
+ <tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.464441024" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release">
100
+ <option id="gnu.cpp.compiler.exe.release.option.optimization.level.1302447353" name="Optimization Level" superClass="gnu.cpp.compiler.exe.release.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
101
+ <option id="gnu.cpp.compiler.exe.release.option.debugging.level.143379331" name="Debug Level" superClass="gnu.cpp.compiler.exe.release.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
102
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.859419943" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
103
+ </tool>
104
+ <tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.release.1103707928" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.release">
105
+ <option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.exe.release.option.optimization.level.2144910639" name="Optimization Level" superClass="gnu.c.compiler.exe.release.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
106
+ <option id="gnu.c.compiler.exe.release.option.debugging.level.158963791" name="Debug Level" superClass="gnu.c.compiler.exe.release.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.none" valueType="enumerated"/>
107
+ <inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.558236570" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
108
+ </tool>
109
+ <tool id="cdt.managedbuild.tool.gnu.c.linker.exe.release.1915067544" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.release"/>
110
+ <tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.release.2131232485" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.release">
111
+ <inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.530558382" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
112
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
113
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
114
+ </inputType>
115
+ </tool>
116
+ <tool id="cdt.managedbuild.tool.gnu.assembler.exe.release.1037806386" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.release">
117
+ <inputType id="cdt.managedbuild.tool.gnu.assembler.input.2129474260" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
118
+ </tool>
119
+ </toolChain>
120
+ </folderInfo>
121
+ </configuration>
122
+ </storageModule>
123
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
124
+ </cconfiguration>
125
+ </storageModule>
126
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
127
+ <project id="score.cdt.managedbuild.target.gnu.exe.812812835" name="Executable" projectType="cdt.managedbuild.target.gnu.exe"/>
128
+ </storageModule>
129
+ <storageModule moduleId="scannerConfiguration">
130
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
131
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.1878418244;cdt.managedbuild.config.gnu.exe.release.1878418244.;cdt.managedbuild.tool.gnu.c.compiler.exe.release.1103707928;cdt.managedbuild.tool.gnu.c.compiler.input.558236570">
132
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
133
+ </scannerConfigBuildInfo>
134
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.852684782;cdt.managedbuild.config.gnu.exe.debug.852684782.;cdt.managedbuild.tool.gnu.c.compiler.exe.debug.2096513387;cdt.managedbuild.tool.gnu.c.compiler.input.1767499123">
135
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
136
+ </scannerConfigBuildInfo>
137
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.release.1878418244;cdt.managedbuild.config.gnu.exe.release.1878418244.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.464441024;cdt.managedbuild.tool.gnu.cpp.compiler.input.859419943">
138
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
139
+ </scannerConfigBuildInfo>
140
+ <scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.exe.debug.852684782;cdt.managedbuild.config.gnu.exe.debug.852684782.;cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.1299858559;cdt.managedbuild.tool.gnu.cpp.compiler.input.1638578889">
141
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
142
+ </scannerConfigBuildInfo>
143
+ </storageModule>
144
+ <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
145
+ <storageModule moduleId="refreshScope" versionNumber="2">
146
+ <configuration configurationName="Release">
147
+ <resource resourceType="PROJECT" workspacePath="/score"/>
148
+ </configuration>
149
+ <configuration configurationName="Debug">
150
+ <resource resourceType="PROJECT" workspacePath="/score"/>
151
+ </configuration>
152
+ </storageModule>
153
+ </cproject>
mosesdecoder/contrib/other-builds/score/.project ADDED
@@ -0,0 +1,106 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <projectDescription>
3
+ <name>score</name>
4
+ <comment></comment>
5
+ <projects>
6
+ <project>moses</project>
7
+ <project>util</project>
8
+ </projects>
9
+ <buildSpec>
10
+ <buildCommand>
11
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
12
+ <triggers>clean,full,incremental,</triggers>
13
+ <arguments>
14
+ </arguments>
15
+ </buildCommand>
16
+ <buildCommand>
17
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
18
+ <triggers>full,incremental,</triggers>
19
+ <arguments>
20
+ </arguments>
21
+ </buildCommand>
22
+ </buildSpec>
23
+ <natures>
24
+ <nature>org.eclipse.cdt.core.cnature</nature>
25
+ <nature>org.eclipse.cdt.core.ccnature</nature>
26
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
27
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
28
+ </natures>
29
+ <linkedResources>
30
+ <link>
31
+ <name>DomainFeature.cpp</name>
32
+ <type>1</type>
33
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/DomainFeature.cpp</locationURI>
34
+ </link>
35
+ <link>
36
+ <name>DomainFeature.h</name>
37
+ <type>1</type>
38
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/DomainFeature.h</locationURI>
39
+ </link>
40
+ <link>
41
+ <name>ExtractionPhrasePair.cpp</name>
42
+ <type>1</type>
43
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/ExtractionPhrasePair.cpp</locationURI>
44
+ </link>
45
+ <link>
46
+ <name>ExtractionPhrasePair.h</name>
47
+ <type>1</type>
48
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/ExtractionPhrasePair.h</locationURI>
49
+ </link>
50
+ <link>
51
+ <name>InputFileStream.cpp</name>
52
+ <type>1</type>
53
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/InputFileStream.cpp</locationURI>
54
+ </link>
55
+ <link>
56
+ <name>InputFileStream.h</name>
57
+ <type>1</type>
58
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/InputFileStream.h</locationURI>
59
+ </link>
60
+ <link>
61
+ <name>InternalStructFeature.cpp</name>
62
+ <type>1</type>
63
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/InternalStructFeature.cpp</locationURI>
64
+ </link>
65
+ <link>
66
+ <name>InternalStructFeature.h</name>
67
+ <type>1</type>
68
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/InternalStructFeature.h</locationURI>
69
+ </link>
70
+ <link>
71
+ <name>OutputFileStream.cpp</name>
72
+ <type>1</type>
73
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/OutputFileStream.cpp</locationURI>
74
+ </link>
75
+ <link>
76
+ <name>OutputFileStream.h</name>
77
+ <type>1</type>
78
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/OutputFileStream.h</locationURI>
79
+ </link>
80
+ <link>
81
+ <name>ScoreFeature.cpp</name>
82
+ <type>1</type>
83
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/ScoreFeature.cpp</locationURI>
84
+ </link>
85
+ <link>
86
+ <name>ScoreFeature.h</name>
87
+ <type>1</type>
88
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/ScoreFeature.h</locationURI>
89
+ </link>
90
+ <link>
91
+ <name>score-main.cpp</name>
92
+ <type>1</type>
93
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/score-main.cpp</locationURI>
94
+ </link>
95
+ <link>
96
+ <name>tables-core.cpp</name>
97
+ <type>1</type>
98
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/tables-core.cpp</locationURI>
99
+ </link>
100
+ <link>
101
+ <name>tables-core.h</name>
102
+ <type>1</type>
103
+ <locationURI>PARENT-3-PROJECT_LOC/phrase-extract/tables-core.h</locationURI>
104
+ </link>
105
+ </linkedResources>
106
+ </projectDescription>