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

From Octave
Jump to navigation Jump to search
m (→‎Command Window Widget: slightly re-worded)
Line 43: Line 43:
* Unify widget for all OSes
* Unify widget for all OSes
* Make jwe's patch a configurable options for testing (nothing to use productively yet)
* Make jwe's patch a configurable options for testing (nothing to use productively yet)
* Need to implement own pager (scroll bar)
* Need to implement own pager (alternatively: scroll bar only)
* Better responsibility delegation between GUI and interpreter
* Better responsibility delegation between GUI and interpreter
** Big matrix output: interpreter asks GUI to print big matrix, GUI can confirm with user, etc.
** Big matrix output: interpreter could ask GUI to print big matrix, GUI could confirm with user, etc.
** Formatting (colors, URLs, etc.) can be done by the GUI.  Interpreter does not know about window-width, etc.
** Formatting (colors, URLs, etc.) could be done by the GUI.  Interpreter does not need to know about window-width, etc.


===== Backend code improvements =====
===== Backend code improvements =====

Revision as of 08:01, 13 April 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 (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?
    • Rik will compile a list of functions that are candidates for removal from core Octave.
  • performance of symbol lookup
    • use std::unordered_map, rather than std::map to increase performance of interpreter lookups
    • Potentially implement "import" keyword? That will 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
    • Maybe require C++14 or C++17?
  • 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

Documentation

Ideas for next meeting

  • 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