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

From Octave
Jump to navigation Jump to search
(→‎See also: Announce next meeting.)
 
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
* Date: [https://octave.discourse.group/t/online-developer-meeting-2020-11-10-the-future-of-octave-packages/349 Tuesday, November 11, 2020 @ 18:00 UTC]
* Date: [https://octave.discourse.group/t/online-developer-meeting-announcements/333/10? Tuesday, March 23, 2021 @ 18:00 UTC]
* Location: https://meet.jit.si/octave-dev-2020-11-10
* Location: https://meet.jit.si/octave-dev-2021-03-23


== Todays topics ==
== Todays topics ==
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


Some idea collections so far:
==== How to make Octave 7 visibly special? ====
* "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
* 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 (alternatively: scroll bar only)
* Better responsibility delegation between GUI and interpreter
** Big matrix output: interpreter could ask GUI to print big matrix, GUI could confirm with user, etc.
** Formatting (colors, URLs, etc.) could be done by the GUI.  Interpreter does not need to know about window-width, etc.
 
===== Backend code improvements =====
 
* "Ditch" old UNIX system functions (e.g. popen)
** Move to package?
** compose a list of functions that are candidates for removal from core Octave. See: [https://octave.discourse.group/t/moving-posix-system-call-and-library-functions-out-of-core-octave/1027 Moving POSIX system call and library functions out of core Octave]
* performance of symbol lookup
** use <code>std::unordered_map</code>, rather than <code>std::map</code> to increase performance (e.g. of interpreter lookups)
** Potentially implement "import" keyword? That would probably slow down symbol lookup some more.
* Replace custom reference counters with implementation using <code>std::shared_ptr</code>
** Some instances are more difficult to replace. jwe will post something about this on the discourse forum.
* favor C++ std-library functions over gnulib where possible
** Maybe require C++14 or C++17? See: [https://octave.discourse.group/t/using-c-17-features/1026 Using C++17 features]
* improve HDF5 integration
** Add "wrapper" for libhdf5 functions in Octave's scripting language.
** Key to support latest Matlab file formats. Try to implement in the interfaces for that format in .m file functions.
** 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
 
==== Documentation ====
 
* 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 ==


=== Topic suggestions ===
* Automatically reschedule the meeting monthly (Kai suggests on Discourse)
 
* MXE Octave branches and buildbots
* ...
* Strategy for transition to string class syntax (incompatible to current double-quoted character vectors in Octave)?
* Allow using more modern C++ dialects (C++17 STL std::filesystem or boost::filesystem)?


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


* Next meeting: TBA
* Next meeting: [[Online Developer Meeting (2021-04-27)]]
* Last meeting: [[Online Developer Meeting (2020-11-10)]]
* Last meeting: [[Online Developer Meeting (2020-11-10)]]


[[Category:2021]]
[[Category:2021]]
[[Category:Meetings]]
[[Category:Meetings]]

Latest revision as of 02:54, 22 April 2021

Todays topics[edit]

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

Octave 7[edit]

Previous idea collections for Octave 7[edit]

How to make Octave 7 visibly special?[edit]

  • Implement Matlabs new String-class
    • Difficult, but highly demanded.
  • Builtin hash-operator
    • Distinct feature from Matlab
Improve graphics[edit]
  • 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[edit]
  • 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[edit]
  • 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 (alternatively: scroll bar only)
  • Better responsibility delegation between GUI and interpreter
    • Big matrix output: interpreter could ask GUI to print big matrix, GUI could confirm with user, etc.
    • Formatting (colors, URLs, etc.) could be done by the GUI. Interpreter does not need to know about window-width, etc.
Backend code improvements[edit]
  • "Ditch" old UNIX system functions (e.g. popen)
  • performance of symbol lookup
    • use std::unordered_map, rather than std::map to increase performance (e.g. of interpreter lookups)
    • Potentially implement "import" keyword? That would probably slow down symbol lookup some more.
  • Replace custom reference counters with implementation using std::shared_ptr
    • Some instances are more difficult to replace. jwe will post something about this on the discourse forum.
  • favor C++ std-library functions over gnulib where possible
  • improve HDF5 integration
    • Add "wrapper" for libhdf5 functions in Octave's scripting language.
    • Key to support latest Matlab file formats. Try to implement in the interfaces for that format in .m file functions.
    • Some developers very interested in this!

Testing Matlab code[edit]

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

Octave online service[edit]

Documentation[edit]

Ideas for next meeting[edit]

  • Automatically reschedule the meeting monthly (Kai suggests on Discourse)
  • MXE Octave branches and buildbots
  • Strategy for transition to string class syntax (incompatible to current double-quoted character vectors in Octave)?
  • Allow using more modern C++ dialects (C++17 STL std::filesystem or boost::filesystem)?

See also[edit]