Release candidate for the control package

The release of version 3.3.0 of the control package is currently in preparation. Among other changes, it fixes issues with depreciated LAPACK-functions, which required a change in the build process. Before the release, I would appreciate if those of you who are using the control package on a regular basis, could give the release candidate control-3.2.91 a try.

I just installed it and got this:

/tmp/octave-help-YIkjxu:141: table requires an argument: the formatter for @item
/tmp/octave-help-YIkjxu:141: table requires an argument: the formatter for @item
warning: doc_cache_create: unusable help text found in file ‘rlocusx’
warning: called from
doc_cache_create>handle_function at line 98 column 5
doc_cache_create>create_cache at line 118 column 36
gen_doc_cache_in_dir>@ at line 150 column 16
doc_cache_create>gen_doc_cache_in_dir at line 151 column 9
doc_cache_create at line 62 column 12
install>generate_lookfor_cache at line 823 column 5
install at line 235 column 7
pkg at line 568 column 9

There are probably three instances of the int/long problem left, and the same 10 failures in ltimodels.m, that I already reported in the Forge ticket (thus I do not attach fntest.log again) :slightly_smiling_face:

>> pkg install "https://sourceforge.net/p/octave/package-releases/_discuss/thread/59fdfb4658/fb9e/attachment/control-3.2.91.tar.gz"

This version 3.2.91 is a release candidate for the
next official release 3.3.0 of the control package.

In file included from __control_slicot_functions__.cc:5:
sl_ab13bd.cc: In function ‘octave_value_list F__sl_ab13bd__(const octave_value_list&, int)’:
sl_ab13bd.cc:128:74: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘F77_INT’ {aka‘long int’} [-Wformat=]
  128 |             warning ("lti: norm: __sl_ab13bd__: AB13BD returned iwarn = %d", iwarn);
      |                                                                         ~^   ~~~~~
      |                                                                          |   |
      |                                                                          int F77_INT {aka long int}
      |                                                                         %ld
In file included from __control_slicot_functions__.cc:42:
sl_ident.cc: In function ‘octave_value_list F__sl_ident__(const octave_value_list&, int)’:
sl_ident.cc:433:43: warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘F77_INT’ {aka ‘long int’} [-Wformat=]
  433 |             error ("__sl_ident__: nsmpl (%d) < 2*(m+l)*nobr (%d)", nsmpl, nobr);
      |                                          ~^                        ~~~~~
      |                                           |                        |
      |                                           int                      F77_INT {aka long int}
      |                                          %ld
sl_ident.cc:433:63: warning: format ‘%d’ expects argument of type ‘int’, but argument 3 has type ‘F77_INT’ {aka ‘long int’} [-Wformat=]
  433 |             error ("__sl_ident__: nsmpl (%d) < 2*(m+l)*nobr (%d)", nsmpl, nobr);
      |                                                              ~^           ~~~~
      |                                                               |           |
      |                                                               int         F77_INT {aka long int}
      |                                                              %ld
For information about changes from previous versions of the control package, run 'news control'.
>> pkg test control
Testing functions in package 'control':

Integrated test scripts:

  ..ko1056/.local/share/octave/6.2.0/control-3.2.91/@iddata/cat.m  pass    1/1
  ..56/.local/share/octave/6.2.0/control-3.2.91/@iddata/detrend.m  pass    4/4
  ..ko1056/.local/share/octave/6.2.0/control-3.2.91/@iddata/fft.m  pass    2/2
  ..056/.local/share/octave/6.2.0/control-3.2.91/@iddata/filter.m  pass    4/4
  ..056/.local/share/octave/6.2.0/control-3.2.91/@iddata/iddata.m  pass    4/4
  ../siko1056/.local/share/octave/6.2.0/control-3.2.91/@lti/c2d.m  pass    8/8
  ..o1056/.local/share/octave/6.2.0/control-3.2.91/@lti/connect.m  pass    4/4
  ../siko1056/.local/share/octave/6.2.0/control-3.2.91/@lti/d2c.m  pass    3/3
  ../siko1056/.local/share/octave/6.2.0/control-3.2.91/@lti/d2d.m  pass    5/5
  ..ko1056/.local/share/octave/6.2.0/control-3.2.91/@lti/dcgain.m  pass    3/3
  ..1056/.local/share/octave/6.2.0/control-3.2.91/@lti/feedback.m  pass    5/5
  ..o1056/.local/share/octave/6.2.0/control-3.2.91/@lti/horzcat.m  pass    1/1
  ../siko1056/.local/share/octave/6.2.0/control-3.2.91/@lti/inv.m  pass    1/1
  ..local/share/octave/6.2.0/control-3.2.91/@lti/isminimumphase.m  pass    1/1
  ..o1056/.local/share/octave/6.2.0/control-3.2.91/@lti/minreal.m  pass   15/15
  ..ko1056/.local/share/octave/6.2.0/control-3.2.91/@lti/mtimes.m  pass    1/1
  ..siko1056/.local/share/octave/6.2.0/control-3.2.91/@lti/norm.m  pass    4/4
  ..siko1056/.local/share/octave/6.2.0/control-3.2.91/@lti/plus.m  pass    1/1
  ..siko1056/.local/share/octave/6.2.0/control-3.2.91/@lti/pole.m  pass    5/5
  ..1056/.local/share/octave/6.2.0/control-3.2.91/@lti/prescale.m  pass   22/22
  ..1056/.local/share/octave/6.2.0/control-3.2.91/@lti/sminreal.m  pass   12/12
  ..o1056/.local/share/octave/6.2.0/control-3.2.91/@lti/subsref.m  pass    1/1
  ..siko1056/.local/share/octave/6.2.0/control-3.2.91/@lti/zero.m  pass   27/27
  ..siko1056/.local/share/octave/6.2.0/control-3.2.91/@ss/ss2ss.m  pass    1/1
  ..iko1056/.local/share/octave/6.2.0/control-3.2.91/__dss2ss__.m  pass   10/10
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/acker.m  pass    1/1
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/bode.m . pass    1/1
  ..siko1056/.local/share/octave/6.2.0/control-3.2.91/bstmodred.m  pass    2/2
  ..siko1056/.local/share/octave/6.2.0/control-3.2.91/btaconred.m  pass    2/2
  ..siko1056/.local/share/octave/6.2.0/control-3.2.91/btamodred.m  pass    2/2
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/care.m . pass    7/7
  ../siko1056/.local/share/octave/6.2.0/control-3.2.91/cfconred.m  pass    2/2
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/covar.m  pass    4/4
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/ctrb.m . pass    1/1
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/ctrbf.m  pass    4/4
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/damp.m . pass    3/3
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/dare.m . pass    3/3
  ..me/siko1056/.local/share/octave/6.2.0/control-3.2.91/db2mag.m  pass    2/2
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/dlyap.m  pass    2/2
  ..siko1056/.local/share/octave/6.2.0/control-3.2.91/dlyapchol.m  pass    2/2
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/dsort.m  pass    2/2
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/esort.m  pass    2/2
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/estim.m  pass    2/2
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/filt.m . pass    4/4
  ..me/siko1056/.local/share/octave/6.2.0/control-3.2.91/fitfrd.m  pass    1/1
  ..iko1056/.local/share/octave/6.2.0/control-3.2.91/fwcfconred.m  pass    2/2
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/gram.m . pass    5/5
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/h2syn.m  pass    2/2
  ..e/siko1056/.local/share/octave/6.2.0/control-3.2.91/hinfsyn.m  pass    4/4
  ..siko1056/.local/share/octave/6.2.0/control-3.2.91/hnamodred.m  pass    2/2
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/hsvd.m . pass    1/1
  ..e/siko1056/.local/share/octave/6.2.0/control-3.2.91/impulse.m  pass    3/3
  ..e/siko1056/.local/share/octave/6.2.0/control-3.2.91/initial.m  pass    2/2
  ../siko1056/.local/share/octave/6.2.0/control-3.2.91/issample.m  pass   30/30
  ..me/siko1056/.local/share/octave/6.2.0/control-3.2.91/kalman.m  pass    3/3
  ..siko1056/.local/share/octave/6.2.0/control-3.2.91/ltimodels.m  pass   25/47
                                                                   FAIL   10
                                                    (reported bug) XFAIL  12
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/lyap.m . pass    3/3
  ../siko1056/.local/share/octave/6.2.0/control-3.2.91/lyapchol.m  pass    3/3
  ..me/siko1056/.local/share/octave/6.2.0/control-3.2.91/mag2db.m  pass    2/2
  ..me/siko1056/.local/share/octave/6.2.0/control-3.2.91/margin.m  pass    2/2
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/moen4.m  pass   17/17
  ..me/siko1056/.local/share/octave/6.2.0/control-3.2.91/ncfsyn.m  pass   27/27
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/obsv.m . pass    1/1
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/place.m  pass    4/4
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/pole.m . pass    5/5
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/pzmap.m  pass    2/2
  /home/siko1056/.local/share/octave/6.2.0/control-3.2.91/sigma.m  pass    2/2
  ..me/siko1056/.local/share/octave/6.2.0/control-3.2.91/thiran.m  pass    7/7

Fixed test scripts:


Summary:

  PASS                              348
  FAIL                               10
  XFAIL (reported bug)               12

See the file /home/siko1056/work/octave/projects/pkg/fntests.log for additional details.

@dastew what is the output of

system ("makeinfo --version")

For me it is “texi2any (GNU texinfo) 6.7” and I do not see this problem :thinking:

Thanks for testing again. These occurrences slipped through my find and replace scheme. The 10 failed tests have already been existing in older versions of the package. These will be tackled n one of the next releases.

Doug, thanks for testing. This warning generally indicates a missing format specifier for @item entries after the @table command. I got this some time ago and fixed it with changeset b5e31cfb60b9. I am wondering what triggers this warning since there is no @table without format specifier in rlocusx.m.

Does help rlocusx give the expected help text?

Regarding the failing tests in ltimodels: The tests marked XFAIL are the ones against the correct results as given in the SLICOT documentations which require the use of the BLAS lib insteadof OpenBLAS (see bug #45008). The FAIL tests are tests against the results when using OpenBLAS. To my opinion, the failure of both groups of tests is indicating that the (inaccurate) results with OpenBLAS have changed.
Installing the control package in a recent mxe-build on windows leads to no XFAIL and 12 FAIL tests. The same happens when I uninstall the OpenBLAS lib on my Debian system.

@dastew, would it be preferable to remove the tests against the incorrect results such that a correct test with the BLAS lib leads to no errors at all? Failing tests with other libs would still be linked to the related bug report.

ttl
You are more knowledgeable about these libraries, than I am. So I will let you decide.

Okay, although this might be some sort of over-estimation :grinning_face_with_smiling_eyes: