Difference between revisions of "Online Developer Meeting (2021-03-23)"

From Octave
Jump to navigation Jump to search
(→‎Octave 7: Update with notes of Kai)
Line 8: Line 8:
 
=== Octave 7 ===
 
=== Octave 7 ===
  
* Not only providing major releases that "fix Matlab incompatibilities".
+
==== Previous idea collections for Octave 7 ===
* Great new features for a great new release.
+
* [[:Category:Development#Goals_for_upcoming_releases]]
* Code sprints.
+
** [[JWE Project Ideas]]
 +
** [[GUI terminal widget]]
 +
* Discourse https://octave.discourse.group/t/goals-for-the-next-release/358
 +
** https://octave.discourse.group/t/new-command-window-widget/501
 +
 
 +
==== How to make Octave 7 visibly special? ====
 +
 
 +
* Implement Matlabs new String-class
 +
** Difficult, but highly demanded.
 +
* Builtin hash-operator
 +
** Distinct feature from Matlab
 +
 
 +
===== Improve graphics =====
 +
 
 +
* Use "new" OpenGL code path
 +
** Nice overview by [[User:Hg200]]
 +
** Likely to make plotting faster (more efficient methods to move data to graphics card)
 +
** Does '''not''' solve "double precision" problem, scaling must happen on Octave side even with new OpenGL code path
 +
* Consult professional OpenGL developer to review code
 +
** General agreement to spend Octave project money on this
 +
 
 +
===== Implement Matlabs new input validation =====
 +
 
 +
* jwe can create dummy tree-elements
 +
** Problem if values are evaluated, the "right" action must be done
 +
* Can those validation statements come at arbitrary positions or only at the beginning of the file?
 +
 
 +
===== Command Window Widget =====
 +
 
 +
* [[GUI terminal widget]], https://octave.discourse.group/t/new-command-window-widget/501 (jwe's patch!)
 +
* Of special interest for MS Windows users
 +
* Unify widget for all OSes
 +
* Make jwe's patch a configurable options for testing (nothing to use productively yet)
 +
* Need to implement own pager (scroll bar)
 +
* Better responsibility delegation between GUI and interpreter
 +
** Big matrix output: interpreter asks GUI to print big matrix, GUI can confirm with user, etc.
 +
** Formatting (colors, URLs, etc.) can be done by the GUI.  Interpreter does not know about window-width, etc.
 +
 
 +
===== User invisible code improvements =====
 +
 
 +
* "Ditch" old UNIX system functions (e.g. popen)
 +
** Move to package?
 +
* import-operator
 +
** use <code>std::unordered_map</code>, rather than <code>std::map</code> to increase interpreter lookups
 +
** symbol resolution slow
 +
* use <code>std::shared_ptr</code> instead of custom reference counting
 +
* favor C++ std-library functions over gnulib!
 +
* improve HDF5 integration
 +
** Key to support latest Matlab file formats.
 +
** Some developers very interested in this!
 +
 
 +
==== Testing Matlab code ====
 +
 
 +
* jwe will a single Discourse thread to ask for tests in Matlab
 +
** Old Discourse threads many maintainers receive notifications.
 +
 
 +
==== Octave online service ====
 +
 
 +
* Similar to Matlab online
 +
* There are already existing services
 +
** https://cocalc.com/doc/octave.html
 +
** https://octave-online.net/
 +
* In general Jupyter-Notebook based solutions are already highly developed
 +
* Running an own service lacks of manpower and financial resources
  
Some idea collections so far:
+
==== Documentation ====
* "jwe priorities" in [[:Category:Development#Goals_for_upcoming_releases]], see also [[JWE Project Ideas]]
 
** Bug fixes, especially those related to compatibility issues.
 
** Work through the open bug reports for which patches have been submitted.  Review/apply/reject and close as many of these reports as possible.
 
** Refactor/rewrite code for handling load path.
 
** Refactor/rewrite exist and which functions.
 
** Create a low-level interface to HDF5 functions.
 
** Support Matlab's HDF5-based MAT file format using the proposed low-level interface to HDF5 functions.
 
*** Allow all types of function handles to be saved and loaded.
 
*** Allow [[classdef]] objects to be saved and loaded.
 
** Replace the [[GUI terminal widget|terminal widget in the GUI]], see also https://octave.discourse.group/t/new-command-window-widget/501
 
** Accept Matlab's new argument validation syntax in parser.
 
  
* Discourse https://octave.discourse.group/t/goals-for-the-next-release/358
+
* Split Octave manual https://octave.org/doc/latest into
 +
** Function reference, like Octave Forge https://octave.sourceforge.io/docs.php
 +
*** Need knowledge how it was created (Kai looks at this again)
 +
*** Once succeeded, hosted at https://octave.org/doc/
 +
** Usage manual (like the current one, more detailed, without @docstrings)
  
 
== Ideas for next meeting ==
 
== Ideas for next meeting ==

Revision as of 19:13, 23 March 2021

Todays topics

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

Octave 7

= Previous idea collections for Octave 7

How to make Octave 7 visibly special?

  • Implement Matlabs new String-class
    • Difficult, but highly demanded.
  • Builtin hash-operator
    • Distinct feature from Matlab
Improve graphics
  • Use "new" OpenGL code path
    • Nice overview by User:Hg200
    • Likely to make plotting faster (more efficient methods to move data to graphics card)
    • Does not solve "double precision" problem, scaling must happen on Octave side even with new OpenGL code path
  • Consult professional OpenGL developer to review code
    • General agreement to spend Octave project money on this
Implement Matlabs new input validation
  • jwe can create dummy tree-elements
    • Problem if values are evaluated, the "right" action must be done
  • Can those validation statements come at arbitrary positions or only at the beginning of the file?
Command Window Widget
  • GUI terminal widget, https://octave.discourse.group/t/new-command-window-widget/501 (jwe's patch!)
  • Of special interest for MS Windows users
  • Unify widget for all OSes
  • Make jwe's patch a configurable options for testing (nothing to use productively yet)
  • Need to implement own pager (scroll bar)
  • Better responsibility delegation between GUI and interpreter
    • Big matrix output: interpreter asks GUI to print big matrix, GUI can confirm with user, etc.
    • Formatting (colors, URLs, etc.) can be done by the GUI. Interpreter does not know about window-width, etc.
User invisible code improvements
  • "Ditch" old UNIX system functions (e.g. popen)
    • Move to package?
  • import-operator
    • use std::unordered_map, rather than std::map to increase interpreter lookups
    • symbol resolution slow
  • use std::shared_ptr instead of custom reference counting
  • favor C++ std-library functions over gnulib!
  • improve HDF5 integration
    • Key to support latest Matlab file formats.
    • Some developers very interested in this!

Testing Matlab code

  • jwe will a single Discourse thread to ask for tests in Matlab
    • Old Discourse threads many maintainers receive notifications.

Octave online service

Documentation

Ideas for next meeting

Topic suggestions

  • ...

See also