Online Developer Meeting (2021-03-23): Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(→See also: Announce next meeting.) |
||
(9 intermediate revisions by 2 users not shown) | |||
Line 8: | Line 8: | ||
=== Octave 7 === | === Octave 7 === | ||
* | ==== Previous idea collections for Octave 7 ==== | ||
* | * [[:Category:Development#Goals_for_upcoming_releases]] | ||
* | ** [[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 (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 == | ||
* 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: | * 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]
- 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?[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)
- 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!
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]
- Similar to Matlab online
- There are already existing services
- In general Jupyter-Notebook based solutions are already highly developed
- Running an own service lacks of manpower and financial resources
Documentation[edit]
- 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[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]
- Next meeting: Online Developer Meeting (2021-04-27)
- Last meeting: Online Developer Meeting (2020-11-10)