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

 
 

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

Submitted by:  Ray Zimmerman <rdzman>
Submitted on:  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:  Rik <rik5>
Originator Name:  Open/Closed:  Closed
Release:  6.0.90 Operating System:  Any

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)

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>
Project AdministratorIn charge of this item.
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>
Project AdministratorIn charge of this item.
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>
Project AdministratorIn charge of this item.
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>
Project AdministratorIn charge of this item.
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>
Project AdministratorIn charge of this item.
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>
Project AdministratorIn charge of this item.
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)
  •  

    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.

     

     

     

    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.5