Online Developer Meeting (2021-04-27)
Jump to navigation
Jump to search
- Date: Tuesday, April 27, 2021 @ 18:00 UTC
- Location: https://meet.jit.si/octave-dev-2021-04-27
Todays topics
- Meet and greet 5 minutes before meeting (audio testing).
MXE Octave branches and buildbots
String class strategy
- Strategy for transition to string class syntax (incompatible to current double-quoted character vectors in Octave)?
C++17
- Allow using more modern C++ dialects (C++17 STL std::filesystem or boost::filesystem)?
Previous topics
Octave 7
Previous idea collections for Octave 7
- Category:Development#Goals_for_upcoming_releases
- Discourse https://octave.discourse.group/t/goals-for-the-next-release/358
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?
- compose a list of functions that are candidates for removal from core Octave. See: Moving POSIX system call and library functions out of core Octave
- performance of symbol lookup
- use
std::unordered_map
, rather thanstd::map
to increase performance (e.g. of interpreter lookups) - Potentially implement "import" keyword? That would probably slow down symbol lookup some more.
- use
- 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? See: 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!
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)
- Function reference, like Octave Forge https://octave.sourceforge.io/docs.php
Ideas for next meeting
See also
- Next meeting: Online Developer Meeting (2021-05-25)
- Last meeting: Online Developer Meeting (2021-03-23)