bugGNU Octave - Bugs: bug #59125, v = ver('Octave') missing release...

 
 

bug #59125: v = ver('Octave') missing release date

Submitter:  Ray Zimmerman <rdzman>
Submitted:  Thu 17 Sep 2020 06:49:51 PM UTC
   
 
Category:  Octave Function Severity:  4 - Important
Priority:  5 - Normal Item Group:  Incorrect Result
Status:  Fixed Assigned to:  rik5
Originator Name:  Open/Closed:  * Closed
Release:  * 6.0.90 Operating System:  * Any
Fixed Release:  None Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Thu 17 Sep 2020 09:42:12 PM UTC, comment #10: 

I agree with your take on OO programming...

I wonder if the choice of a class is driven by Matlab limitation to chain-index functions' output.


octave> v = ver().Name
v = Octave
octave> v = ver.Name
v = Octave


vs


>> v = ver().Name
v =
    'MATLAB'
>> v = ver.Name
Unable to resolve the name ver.Name.


With a class, it will just be accessing properties.

Just for fun, ver().Date is '29-Jul-2020' and matlabRelease.Date is 26-Aug-2020 (as a datetime object). The other properties of matlabRelease are of the string class - we are going to see more and more of these.

Guillaume <gyom>
Thu 17 Sep 2020 09:14:29 PM UTC, comment #9: 

Probably because internally Matlab has been swept away by the object-oriented programming paradigm.  This is a simple function and hardly requires a class to implement it.  And there isn't any advantage because it's not like you are going to use this as a base class and extend it with subclasses for other purposes. 

Procedural programming is far easier to explain to scientists and engineers who don't want to be software developers, but rather just want to solve whatever analysis problem they have today.  I think Matlab developers these days are more interested in coding for themselves than for their actual users.

As if it weren't bad enough, they have engaged in change for change's sake.  The return object/struct still has four fields, but they have changed names compared to the output from ver().  Doesn't seem that there was any good reason to do that.

Rik <rik5>
Group administrator
Thu 17 Sep 2020 09:04:43 PM UTC, comment #8: 

Note that Matlab has a brand new matlabRelease:
https://www.mathworks.com/help/matlab/ref/matlabrelease.html
Not sure why it has to be a class but we could have an octaveRelease...

Guillaume <gyom>
Thu 17 Sep 2020 09:01:34 PM UTC, comment #7: 

I fixed things in this changeset http://hg.savannah.gnu.org/hgweb/octave/rev/8e8cfb6304e1.

This was made on the stable branch and will be part of the next release of octave, version 6.1.

Marking as fixed and closing report.

Rik <rik5>
Group administrator
Thu 17 Sep 2020 08:55:57 PM UTC, comment #6: 

I have a patch which I am testing now.  Shouldn't be too long.

Rik <rik5>
Group administrator
Thu 17 Sep 2020 08:32:37 PM UTC, comment #5: 

Apparently this is a long standing failure.  I checked back to Octave version 3.2.4 and it always has the wrong behavior.

Rik <rik5>
Group administrator
Thu 17 Sep 2020 08:31:12 PM UTC, comment #4: 

I can confirm that using the 1-input form works with installed packages, but fails with "Octave".

Rik <rik5>
Group administrator
Thu 17 Sep 2020 08:28:28 PM UTC, comment #3: 

Don't think that's a problem. Things are fine when calling ver() without any arguments, but you may get a struct with more than 1 entry (i.e. for Octave and some extra toolboxes).

However, when you call ver() with a single argument equal to 'Octave', the date field is blank.

Ray Zimmerman <rdzman>
Thu 17 Sep 2020 08:25:33 PM UTC, comment #2: 

@Dmitri: It's not broken.  ver() returns information about Octave as well as packages you might have installed.  You must have more than thing installed because you got a 1x2 struct array back from the call to ver().  When you ask for v.Date you are then getting a comma-separated list of two dates.

Try 'v.Name' to see what it is actually documenting.

Rik <rik5>
Group administrator
Thu 17 Sep 2020 07:00:34 PM UTC, comment #1: 

With
 __octave_config_info__ ("hg_id")
ans = b12ff2cea46a

I got:

 v = ver()
v =

  1x2 struct array containing the fields:

    Name
    Version
    Release
    Date

octave:10> v.Date
ans = 2020-08-26
ans = 2019-04-01
octave:11>

So it is even more broken?

Dmitri.
--

Dmitri A. Sergatskov <dasergatskov>
Thu 17 Sep 2020 06:49:51 PM UTC, original submission:  

Not sure how long this bug has been around, but here's from 5.2.0 on a Mac


octave:1> v = ver(); v.Date
ans = 2020-01-31

octave:2> v = ver('Octave'); v.Date
ans = [](0x0)


Looks trivial to fix ... just a missing ...


__octave_config_info__ ("release_date"))


Ray Zimmerman <rdzman>

 

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

Attach Files:
   
   
Comment:
   

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 gyom (Posted a comment)
  • -email is unavailable- added by rik5 (Posted a comment)
  • -email is unavailable- added by dasergatskov (Posted a comment)
  • -email is unavailable- added by rdzman (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 9 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2020-09-17 rik5 StatusIn Progress Fixed
        Open/ClosedOpen Closed
    2020-09-17 rik5 StatusFixed In Progress
        Assigned toNone rik5
        Open/ClosedClosed Open
    2020-09-17 rik5 StatusConfirmed Fixed
        Open/ClosedOpen Closed
    2020-09-17 rik5 Severity3 - Normal 4 - Important
    2020-09-17 rik5 StatusNone Confirmed

    Back to the top

    Powered by Savane 3.13-d3ae.
    Corresponding source code