Source: kytea Version: 0.4.6+dfsg-2 Severity: important Hi,
I recently uploaded a new version of liblinear to experimental. This new
version bumps the SONAME. Among other things, the declaration of "struct
problem" in linear.h changed:
> struct problem
> {
> int l, n;
> - int *y;
> + double *y;
> struct feature_node **x;
> double bias; /* < 0 if no bias term */
> };
Test-rebuilding the reverse dependency kytea resulted in a FTBFS because
of the above change:
> kytea-model.cpp: In member function 'void kytea::KyteaModel::trainModel(const
> std::vector<std::vector<unsigned int> >&, std::vector<int>&, double, int,
> double, double)':
> kytea-model.cpp:180:12: error: cannot convert 'int*' to 'double*' in
> assignment
> prob.y = &ys.front();
^^^^^^
After applying the following simple workaround to
src/lib/kytea-model.cpp, the package builds successfully again:
> // }
> // cerr << endl;
> // }
> - prob.y = &ys.front();
> + vector<double> ys_d(ys.begin(), ys.end());
> + prob.y = &ys_d.front();
>
> // allocate the feature space
> feature_node** myXs =
> (feature_node**)malloc(sizeof(feature_node*)*xs.size());
However, unfortunately the one test no longer passes. It just hangs in
what appears to be an infinite loop. Specifically, it hangs at the test
for logistic regression: that's the second test (with "-solver 0") in
src/test/test-analysis.h.
The hang occurs in the trainAll() step. That calls trainWS() (commented
as "word segmenter"), which prepares some data, and then eventually calls
> wsModel_->trainModel(xs,ys,config_->getBias(),config_->getSolverType(),config_->getEpsilon(),config_->getCost());
That's as far as I got.
I'm not familiar with kytea, so I'm not sure what data is being prepared
here and how, which makes debugging difficult.
I'd appreciate it if you, or your upstream, could take a look!
Regards,
Christian
signature.asc
Description: OpenPGP digital signature

