bugGNU Octave - Bugs: bug #62362, __unimplemented__.m package...


bug #62362: __unimplemented__.m package function lists are out of date

Submitter:  Muhali <muhali>
Submitted:  Mon 25 Apr 2022 08:32:10 AM UTC
Category:  Octave Function Severity:  2 - Minor
Priority:  3 - Low Item Group:  Documentation
Status:  Confirmed Assigned to:  None
Originator Name:  Open/Closed:  * Open
Release:  * dev Operating System:  * Any
Fixed Release:  None Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup

Jump to the original submission

Wed 18 May 2022 12:54:49 PM UTC, comment #6: 

I guess the updated list of functions is a bit orthogonal to the original issue. I think there's some confusion here about the goal of the error messages displayed and I'd argue that this is i npart working as intended. With the statistics package unloaded, we get:

1. for nlinfit a message saying to load the optim package. The nlfint function is part of the Matlab optimisation package, so Octave says that it is probably in the optim package. It does not know whether it is implemented or not, but if it, then it should be done there.

2. for linprog, it tells to use glpk. Besides pointing to the right package (for Matlab functions), it also has some smarter hints for alternatives. Maybe it's time we stop recommending glpk for those that want to use linprog.

3. for powell we just have standard missing function error. powell is not a function in any of the Matlab toolboxes, that's why there's no "smarter" error message. I don't think we want to compile all the functions for all the packages (and deal with possible clashes).

Carnë Draug <carandraug>
Group Member
Wed 18 May 2022 12:34:52 PM UTC, comment #5: 

I attach a patch that updates the list for the image package. See discussion on https://octave.discourse.group/t/implementing-unimplemented-m/2706

(file #53222)

Carnë Draug <carandraug>
Group Member
Tue 17 May 2022 02:40:35 PM UTC, comment #4: 

It would only take a minute or so to tweak the three optim function cases mentioned in comment #0, but looking at the optim function list on Octave Forge [1] (which I believe hasn't been updated in years) there are 55 functions listed while the __unimplemented__.m file on default lists about 20. So, there definitely seems to be a need to at least bring it up to date, likely the same for all of the packages. Ideally it would be brought up to date with the latest releases. Could bring it up to date with the out-of-date Octave Forge manually with some scripting or clever copy/paste/reformatting from the website. But I also noticed that there are a lot of package function names in __unimplemented__.m that haven't been implemented yet.  It's not clear how the list of functions that 'should be' in the package was generated. Just copy/pasting the list from Octave Forge, we'll lose all of those.

Does anyone know where those came from? Any idea how to update a package function list but distinguish between those 'not yet' functions from those that may have been removed or moved elsewhere?

[1] https://octave.sourceforge.io/list_functions.php?sort=package#optim

Nicholas Jankowski <nrjank>
Group Member
Mon 16 May 2022 07:31:40 PM UTC, comment #3: 

the ideal situtation of automating the __unimplemented.m__ process has been discussed before, but until then it's a fairly manual process. is there a way to export a function manifest as part of the package release process? then maybe that could sit in some queue (separate bug report if handled separately?) to be checked against current __unimplemented.m__?  Otherwise I'm not sure how else to easily maintain a 'to do list' for package function updates.

Nicholas Jankowski <nrjank>
Group Member
Tue 26 Apr 2022 10:29:03 PM UTC, comment #2: 

Echoing Markus, it should be easy to simply move functions between the packages that they actually exist in within the script _unimplemented_.m

Rik <rik5>
Group administrator
Mon 25 Apr 2022 01:23:56 PM UTC, comment #1: 

Octave carries hard coded lists of function names that are attributed to some packages here:

Those lists haven't seen updates in a while. Patches are welcome. 🙂

Markus Mützel <mmuetzel>
Group administrator
Mon 25 Apr 2022 08:32:10 AM UTC, original submission:  

If the optim package is unloaded, I get

help nlinfit
error: help: The 'nlinfit' function belongs to the statistics package from Octave

Interestingly, for another function from the optim package I get

help linprog
error: help: Octave does not currently provide linprog.  Linear programming problems may be solved using 'glpk'.

And this one:

help powell
error: help: 'powell' not found

Quite confusing.

Muhali <muhali>


(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:

Attached Files
file #53222:  62362-update-image-pkg.patch added by carandraug (15KiB - text/x-patch - patch to update list for image package)


Carbon-Copy List
  • -email is unavailable- added by nrjank (Posted a comment)
  • -email is unavailable- added by mmuetzel (Posted a comment)
  • -email is unavailable- added by muhali (Submitted the item)

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.


    Follow 11 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2022-07-22 lostbard Dependencies- bugs #62798 is dependent
    2022-07-22 lostbard Dependencies- bugs #62797 is dependent
    2022-06-03 rik5 Carbon-CopyRemoved 72865 -
    2022-05-18 carandraug Attached File- Added 62362-update-image-pkg.patch, #53222
    2022-05-17 nrjank Release7.1.0 dev
        Summary'help nlinfit' points to statistics package instead of optim _unimplemented_.m package function lists are out of date
    2022-04-30 rik5 Severity3 - Normal 2 - Minor
        Priority5 - Normal 3 - Low
    2022-04-26 rik5 StatusNone Confirmed
    2022-04-25 mmuetzel CategoryNone Octave Function
        Operating SystemGNU/Linux Any

    Back to the top

    Powered by Savane 3.13-4b48.
    Corresponding source code