bugGNU Octave - Bugs: bug #38369, help fails to display the help...


bug #38369: help fails to display the help text for class methods

Submitted by:  Julien Bect <jbect>
Submitted on:  Thu 21 Feb 2013 03:31:23 PM UTC  
Category:  Interpreter Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Matlab Compatibility
Status:  None Assigned to:  None
Originator Name:  Open/Closed:  Open
Release:  dev Operating System:  GNU/Linux

Add a New Comment (Rich Markup)

You are not logged in

Please log in, so followups can be emailed to you.


( Jump to the original submission)

Fri 27 Nov 2020 06:16:09 PM UTC, comment #12: 

There are a number of unresolved issues here.  The most generic syntax

help methodname

does not work for old-style classes (@class) or new-style classes (classdef).

Dot notation does work for new-style classes, but not for old-style classes.

help class.method

Slash notation does not work for new-style or old-style classes

help class/method

But extended slash notation does work for old style-classes.

help @class/method

This suggests that simply getting Octave to recognize '.' or '/' as a scope operator would then allow the existing code which actually fetches the help text to work. 

Rik <rik5>
Project Administrator
Fri 27 Nov 2020 08:24:47 AM UTC, comment #11: 

This issue is still present in Octave 5.2.0.

(context prompting my update: https://stackoverflow.com/questions/65019819/how-do-i-make-octave-suggest-the-methods-of-my-class-when-i-hit-tab-and-show-the?noredirect=1#comment114970822_65019819 )

Also, a comment on Julien's observation (comment #7 below) that matlab displays the contents of a class, actually I don't think that is true. What is more likely is that the class provides a Contents.m file. This functionality used to be supported by octave, but it seems to have broken in recent versions (see also bug #59552 )

Tasos Papastylianou <tpapastylianou>
Sun 20 Nov 2016 09:31:53 PM UTC, comment #10: 

This (documentation and help-function) issue is still present in Octave 4.2.0.

Hartmut <hardy>
Sun 24 Feb 2013 12:41:25 AM UTC, comment #9: 

Yes, let's start with the simple stuff which is documenting the behavior we have today.  We can then work on getting some Matlab compatibility.

Rik <rik5>
Project Administrator
Sat 23 Feb 2013 10:15:22 PM UTC, comment #8: 

Perhaps the first thing to do would be to extend the help text for help() itself, since no information is currently provided on how to get help for a class function.

Do you want me to propose a patch for that ?

Julien Bect <jbect>
Sat 23 Feb 2013 10:08:49 PM UTC, comment #7: 

Yet another way of using help() in Matlab, that is not currently supported by Octave:

help ClassName

displays a summary of all class methods (methods name + the first line of help text).

Julien Bect <jbect>
Sat 23 Feb 2013 10:03:46 PM UTC, comment #6: 

It's the first one: relative path with respect to pwd.

Julien Bect <jbect>
Sat 23 Feb 2013 08:38:13 PM UTC, comment #5: 

Just to be clear, when calling

help aaa/@ClassName/dudule

does Matlabe implicitly try

help `pwd`/aaa/@ClassName/dudule

or does it try everything in the PATH variable

help {PATH}/aaa/@ClassName/dudule

The first would be easier to support.

Rik <rik5>
Project Administrator
Sat 23 Feb 2013 04:04:03 PM UTC, comment #4: 

In fact, Matlab's help function allows to provide the path to the m-file for which the help text is to be displayed. So,

help aaa/@ClassName/dudule
help aaa/ClassName.dudule
help aaa/ClassName/dudule

all display the help text for the class function dudule.m if the class folder @ClassName is in ./aaa/ (even if it's not in the search path).

Julien Bect <jbect>
Sat 23 Feb 2013 03:57:24 PM UTC, comment #3: 

[Something went wrong with my previous comment...]

The syntax

help @ClassName/dudule

actually works in Octave, if @ClassName is in the search path. On the other hand, the other syntaxes don't.

Julien Bect <jbect>
Sat 23 Feb 2013 03:50:51 PM UTC, comment #2: 

Yes you're right, sorry, I was mistaken in my first post. The syntax

Julien Bect <jbect>
Fri 22 Feb 2013 08:37:49 PM UTC, comment #1: 

The last method ('help @classname/classfcn') used to be the only way to get help and that has been implemented in Octave.  Is the directory where @ClassName located in the PATH variable for Octave?

I used the following in a build tree for Octave.

./run-octave   # at shell
addpath ("./examples")
help polynomial_superiorto   # fails on method functions.
help polynomial              # BUT, does work for constructor
help polynomial/polynomial_superiorto   # fails on method functions.
help polynomial.polynomial_superiorto   # fails on method functions.
help @polynomial/polynomial_superiorto  # WORKS

Rik <rik5>
Project Administrator
Thu 21 Feb 2013 03:31:23 PM UTC, original submission:  

Assume that you have a class ClassName with a method dudule() in @ClassName/dudule.m.

In Matlab, the following syntaxes are possible :

help dudule % gets help for all overloaded dudule() functions
help ClassName/dudule
help ClassName.dudule
help @ClassName/dudule

but none of them actually works in Octave.

Julien Bect <jbect>


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

Attach Files:

No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by tpapastylianou (Posted a comment)
  • -email is unavailable- added by hardy (Posted a comment)
  • -email is unavailable- added by rik5 (Posted a comment)
  • -email is unavailable- added by jbect (Submitted the item)

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only project members can vote.




    No changes have been made to this item

    Back to the top

    Powered by Savane 3.6