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

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to