Online Developer Meeting (2021-07-27): Difference between revisions

From Octave
Jump to navigation Jump to search
(→‎Octave 6.3 released: Add notes of Kai)
 
(7 intermediate revisions by 2 users not shown)
Line 9: Line 9:
* No "official" announcement happened.  Maybe reuse abandoned mailing-lists to announce important events, such as releases.
* No "official" announcement happened.  Maybe reuse abandoned mailing-lists to announce important events, such as releases.
* How do distribution maintainers get to know about Octave releases?
* How do distribution maintainers get to know about Octave releases?
** Contact Debian maintainers of the Octave package to maybe improve our communication (Kai).
** Contact Debian maintainers of the Octave package to maybe improve our communication.
*** Done, already answered: https://lists.gnu.org/archive/html/octave-maintainers/2021-07/msg00001.html


=== User expectations for "Evaluate selection" ===
=== Octave 6.4 / 7 / 8 ===
* Discussion how to continue with the development.
** jwe wants to introduce breaking changes (see below).
* Octave should stick with the ~yearly major release cycle
** Probably no Octave 6.4 (only if severe bugs occur).
** Octave 7 (default branch)
*** Should no longer receive "very" breaking changes (e.g. String-class for Octave 8)
*** Has about 305 bugs fixed (not 100% reliable figure) and should not wait another year until many bigger outstanding changes happen (will be deferred to Octave 8)
*** Tentative plan:
**** November 2021 merge default to stable.
**** End of 2021 release of Octave 7
** Octave 8 (new default branch)
*** No clear decision how to handle very breaking changes until November 2021 merge default to stable.  Depends on future needs.


=== Octave 7 / 8 ===
* [https://www.mathworks.com/help/matlab/ref/arguments.html Function argument parsing] (introduced in Matlab R2019b, rather new)
** jwe will continue to work on this feature on Octave 7 (default branch)
** If feature cannot be completed by the end of the year, it will be disabled on parser-level (error), and introduced in Octave 8 one year later.
* [https://octave.discourse.group/t/new-command-window-widget/501? New GUI command widget]
** Possible to introduce it as user opt-in in Octave 7
** Pending issues:
*** Command-widget does not look like the previous one (textbox for command input)
*** jwe needs better looking widget (avoid developing a new one)
*** No possibility to run external applications (like emacs, pager), which is already partially broken now.  Need to implement own paging strategy (scroll bars, etc.)
* Deprecation of Octave operators
** Improve Matlab compatibility
** Some extensions make it painful to implement Matlab compatible command-style function calls?  See also the [https://octave.discourse.group/t/parsing-command-style-function-call-syntax/1414/7 discussion] about this topic.
*** Remove rarely used extensions like "**" power.
*** Discussion about removal of "+=", "++", etc.  No final decision made.
*** Often used extensions must probably stay (like "!" or "!=" used in place of "~" or "~=").
=== C++ shared pointer / liboctave ===
* jwe had a look at Octave own reference counting
* Wish to replace it with C++ shared pointers
* Expert knowledge wanted!  jwe opened a [https://octave.discourse.group/t/using-std-shared-ptr-t-to-implement-copy-on-write-objects-in-octave/1436 discussion thread]
* jwe identified "copy expensive" inefficiency about mxArray to octave_value conversion? Root of the trouble lies in historical handling of complex data?  See this [https://octave.discourse.group/t/improving-performance-of-data-transfer-to-and-from-mex-functions/1437 discussion].


== Previous topics ==
== Previous topics ==
Line 50: Line 85:
* <strike>jwe will probably post something on discourse.</strike>
* <strike>jwe will probably post something on discourse.</strike>
* See: [https://octave.discourse.group/t/irc-channel-for-octave/1348 IRC channel for Octave] (on Discourse).
* See: [https://octave.discourse.group/t/irc-channel-for-octave/1348 IRC channel for Octave] (on Discourse).
== Ideas for next meeting ==
*


== See also ==
== See also ==

Latest revision as of 08:19, 29 July 2021

Todays topics[edit]

  • Meet and greet 5 minutes before meeting (audio testing).

Octave 6.3 released[edit]

Octave 6.4 / 7 / 8[edit]

  • Discussion how to continue with the development.
    • jwe wants to introduce breaking changes (see below).
  • Octave should stick with the ~yearly major release cycle
    • Probably no Octave 6.4 (only if severe bugs occur).
    • Octave 7 (default branch)
      • Should no longer receive "very" breaking changes (e.g. String-class for Octave 8)
      • Has about 305 bugs fixed (not 100% reliable figure) and should not wait another year until many bigger outstanding changes happen (will be deferred to Octave 8)
      • Tentative plan:
        • November 2021 merge default to stable.
        • End of 2021 release of Octave 7
    • Octave 8 (new default branch)
      • No clear decision how to handle very breaking changes until November 2021 merge default to stable. Depends on future needs.

Octave 7 / 8[edit]

  • Function argument parsing (introduced in Matlab R2019b, rather new)
    • jwe will continue to work on this feature on Octave 7 (default branch)
    • If feature cannot be completed by the end of the year, it will be disabled on parser-level (error), and introduced in Octave 8 one year later.
  • New GUI command widget
    • Possible to introduce it as user opt-in in Octave 7
    • Pending issues:
      • Command-widget does not look like the previous one (textbox for command input)
      • jwe needs better looking widget (avoid developing a new one)
      • No possibility to run external applications (like emacs, pager), which is already partially broken now. Need to implement own paging strategy (scroll bars, etc.)
  • Deprecation of Octave operators
    • Improve Matlab compatibility
    • Some extensions make it painful to implement Matlab compatible command-style function calls? See also the discussion about this topic.
      • Remove rarely used extensions like "**" power.
      • Discussion about removal of "+=", "++", etc. No final decision made.
      • Often used extensions must probably stay (like "!" or "!=" used in place of "~" or "~=").

C++ shared pointer / liboctave[edit]

  • jwe had a look at Octave own reference counting
  • Wish to replace it with C++ shared pointers
  • Expert knowledge wanted! jwe opened a discussion thread
  • jwe identified "copy expensive" inefficiency about mxArray to octave_value conversion? Root of the trouble lies in historical handling of complex data? See this discussion.

Previous topics[edit]

The following items were not discussed. Just some links to progress on those items are displayed.

Octave 6.3.0[edit]

OctConf?[edit]

  • Instead of an in-person conference, meet up virtually.
  • Ideas for code-sprint?
    • Improve test coverage
    • That could include automated tests for GUI features ("expect", Qt test classes, set OCTAVE_SHOW_GUI_MESSAGES to 1 to display signals with missing connections, ...). Does anyone have experience with this?

GUI[edit]

  • Make widgets more modular
    • remove connections to parents (or parents of parents,...)
    • Only pass settings objects (instead of base qwidget) to widgets?
  • Add widgets for:
    • displaying call stack. Select function in stack for appropriate dbup or dbdown command.
    • displaying result to an expression. Similar to debugger (watcher, ...)
  • User expectations for evaluation code from the editor ("Evaluate selection") or the variable editor ("plot") while there is still pending input on the command line?

Breakpoints[edit]

  • Add feature to temporarily disable breakpoints
  • Check syntax for breakpoints in subfunctions, local functions, private functions, methods, ... (dbstatus). See: Identifiers for breakpoints

gsvd[edit]

  • Current version is not Matlab-compatible nor correct in some circumstances.
  • Rik is currently implementing a replacement.

IRC channel on Freenode is down?[edit]

  • Replacement on libera?
  • jwe will probably post something on discourse.
  • See: IRC channel for Octave (on Discourse).

See also[edit]