Difference between revisions of "Online Developer Meeting (2021-04-27)"

From Octave
Jump to navigation Jump to search
(→‎Previous topics: Strip finished topics.)
 
(17 intermediate revisions by 3 users not shown)
Line 6: Line 6:
 
* Meet and greet 5 minutes before meeting (audio testing).
 
* Meet and greet 5 minutes before meeting (audio testing).
  
=== MXE Octave branches and buildbots ===
+
=== MXE Octave branches ===
  
*  
+
* Which changes should go on which branch?
 +
** "default": everything new
 +
** "release": conservative updates
 +
*** new Octave packages + dependent libraries (if necessary and applicable)
 +
*** MXE libraries which have severe bugs / security issues.
 +
* Which branch should the buildbots use?
 +
** http://buildbot.octave.org:8010/ (jwe)
 +
*** Probably add builders to jwe's buildbot that build the current Octave stable branch with MXE Octave's release branch.
 +
*** Is there a way to trigger daily builds of the mxe builders only if there have been changes in Octave or MXE Octave.
 +
** https://buildbot.octave.space/ (Kai)
 +
*** General move to "release" branch (probably May)
 +
*** One additional build of "w64" with "default" branch
 +
 
 +
=== Buildbots ===
 +
 
 +
* Find out how to trigger a build on changes in two repositories?
 +
** Untested idea: https://github.com/gnu-octave/octave-buildbot/pull/9/files
 +
 
 +
=== GitHub ===
 +
 
 +
* Markus wants to try out using GitHub runners
 +
** https://octave.discourse.group/t/ci-with-github-hosted-runners/1081
 +
** Try out macOS runners
 +
* Therefore a folder ".github" will be added to the Octave main repo
 +
** Can be removed anytime if it proves as not useful.
 +
* If other services (despite GitHub) are going to be tested, respective files might be added too.
  
 
=== String class strategy ===
 
=== String class strategy ===
  
 
* Strategy for transition to string class syntax (incompatible to current double-quoted character vectors in Octave)?
 
* Strategy for transition to string class syntax (incompatible to current double-quoted character vectors in Octave)?
 +
** Issue treatment of escape characters (first interpreted when Xprintf is applied).
 +
*** https://www.mathworks.com/help/matlab/ref/string.html
 +
* Suggestion to implement an initial string class at one point
 +
** Many existing Octave code (packages) might break.
 +
** In the transition time using
 +
*** Octave .oct-config files to manage how double quoted strings are treated
 +
*** Implement convertStringsToChars and solve issue per function basis (Matlab compatible, probably straight forward, but many changes).
 +
**** https://www.mathworks.com/help/matlab/ref/convertstringstochars.html
 +
* Initial implementation by Andrew Janke
 +
** https://github.com/apjanke/octave-tablicious/blob/master/inst/string.m
 +
** http://blog.apjanke.net/2019/04/20/matlab-string-representation-is-a-mess.html
 +
 +
=== Classdef ===
 +
 +
* Wish to define classdef classes from C++ "nicely" (currently only from m-files comfortable usable).
 +
* This would also help implementing the string class.
  
 
=== C++17 ===
 
=== C++17 ===
  
 +
* Updates: https://octave.discourse.group/t/using-c-17-features/1026
 
* Allow using more modern C++ dialects (C++17 STL std::filesystem or boost::filesystem)?
 
* Allow using more modern C++ dialects (C++17 STL std::filesystem or boost::filesystem)?
 +
** qt6 requires C++17 https://www.qt.io/blog/qt-6.0-released
 +
** gcc 8.x (2018) still not C++17 feature complete (e.g. std::filesystem cannot fully be used, no benefit)
 +
*** https://en.cppreference.com/w/cpp/compiler_support#cpp17
 +
*** https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2017
 +
 +
General consensus was to stay with C++11 until a "killer application" shows up that rectifies changing to a newer standard.
 +
 +
=== Short introduction: SavannahAPI ===
  
 +
* Former [https://octave.discourse.group/t/remaining-items-for-the-6-1-release/350 "Release burn down chart"].
 +
* https://octave.space/savannah/
  
== Previous topics ==
+
=== Bug Maintenance/Clean Up ===
 +
 
 +
:''The author of this topic did not attend the meeting.  There was a short discussion about [[GSoC]] and the [[Short projects]] page.''
 +
 
 +
There are already ~1600 open bugs at 1 min/bug this is over 1 day.
 +
This is not manageable. Many of these could be closed:
 +
 
 +
* Are complete because a new version is released {{bug|53576}}
 +
 
 +
* Can be implemented since there is a new version {{bug|50820}} notice comments 24 & 25
 +
 
 +
* Maintainers have the function but have not submitted it {{bug|58530}}
  
=== Octave 7 ===
+
For preparing for [[GSoC]] it states to fix bugs, missing functions, etc.
 +
The ideal scenario would mean being inundated with fixes, and new functions.
 +
A maintained [[Short projects]] page would be necessary to avoid comments as in {{bug|32088}}.
  
==== Previous idea collections for Octave 7 ====
+
What is the best approach to resolving this?
* [[:Category:Development#Goals_for_upcoming_releases]]
+
* <strike>A new wiki page</strike> so one with permission can see all the "easy closes".
** [[JWE Project Ideas]]
+
** Please reuse the [[Short projects]] page for this purpose, which is currently unmaintained.
** [[GUI terminal widget]]
+
* Pinging bugs/patches for a status update.
* Discourse https://octave.discourse.group/t/goals-for-the-next-release/358
+
** Yes, always a good idea and this is basically what happens very slowly. It would be great to see more volunteers triaging the bug and patch trackers.
** https://octave.discourse.group/t/new-command-window-widget/501
 
  
==== How to make Octave 7 visibly special? ====
+
== Previous topics ==
 +
:''The following items were not discussed.  Just some links to progress on those items are displayed.''
  
* Implement Matlabs new String-class
+
=== Octave 7 ===
** Difficult, but highly demanded.
 
* Builtin hash-operator
 
** Distinct feature from Matlab
 
  
 
===== Improve graphics =====
 
===== Improve graphics =====
  
* Use "new" OpenGL code path
+
* Consult professional OpenGL developer to review code '''Any news here?'''
** 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
 
** General agreement to spend Octave project money on this
  
Line 54: Line 112:
 
===== Command Window Widget =====
 
===== Command Window Widget =====
  
* [[GUI terminal widget]], https://octave.discourse.group/t/new-command-window-widget/501 (jwe's patch!)
+
* Updates: https://octave.discourse.group/t/new-command-window-widget/501/29
* 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 =====
 
===== Backend code improvements =====
  
 
* "Ditch" old UNIX system functions (e.g. popen)
 
* "Ditch" old UNIX system functions (e.g. popen)
 +
** https://octave.discourse.group/t/moving-posix-system-call-and-library-functions-out-of-core-octave/1027
 
** Move to package?
 
** 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
 
* performance of symbol lookup
 
** use <code>std::unordered_map</code>, rather than <code>std::map</code> to increase performance (e.g. of interpreter lookups)
 
** use <code>std::unordered_map</code>, rather than <code>std::map</code> to increase performance (e.g. of interpreter lookups)
Line 73: Line 124:
 
* Replace custom reference counters with implementation using <code>std::shared_ptr</code>
 
* 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.
 
** 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
 
* 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 ====
 
==== Documentation ====
  
 +
* Updates: https://octave.discourse.group/t/function-reference-documentation/959/7 and bug {{bug|60313}}
 
* Split Octave manual https://octave.org/doc/latest into
 
* Split Octave manual https://octave.org/doc/latest into
 
** Function reference, like Octave Forge https://octave.sourceforge.io/docs.php
 
** Function reference, like Octave Forge https://octave.sourceforge.io/docs.php
*** Need knowledge how it was created (Kai looks at this again)
+
*** Prototype (Kai): https://octave.org/doc/ref/octave/overview.html
*** Once succeeded, hosted at https://octave.org/doc/
 
 
** Usage manual (like the current one, more detailed, without @docstrings)
 
** Usage manual (like the current one, more detailed, without @docstrings)
  

Latest revision as of 23:18, 27 April 2021

Todays topics[edit]

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

MXE Octave branches[edit]

  • Which changes should go on which branch?
    • "default": everything new
    • "release": conservative updates
      • new Octave packages + dependent libraries (if necessary and applicable)
      • MXE libraries which have severe bugs / security issues.
  • Which branch should the buildbots use?
    • http://buildbot.octave.org:8010/ (jwe)
      • Probably add builders to jwe's buildbot that build the current Octave stable branch with MXE Octave's release branch.
      • Is there a way to trigger daily builds of the mxe builders only if there have been changes in Octave or MXE Octave.
    • https://buildbot.octave.space/ (Kai)
      • General move to "release" branch (probably May)
      • One additional build of "w64" with "default" branch

Buildbots[edit]

GitHub[edit]

  • Markus wants to try out using GitHub runners
  • Therefore a folder ".github" will be added to the Octave main repo
    • Can be removed anytime if it proves as not useful.
  • If other services (despite GitHub) are going to be tested, respective files might be added too.

String class strategy[edit]

Classdef[edit]

  • Wish to define classdef classes from C++ "nicely" (currently only from m-files comfortable usable).
  • This would also help implementing the string class.

C++17[edit]

General consensus was to stay with C++11 until a "killer application" shows up that rectifies changing to a newer standard.

Short introduction: SavannahAPI[edit]

Bug Maintenance/Clean Up[edit]

The author of this topic did not attend the meeting. There was a short discussion about GSoC and the Short projects page.

There are already ~1600 open bugs at 1 min/bug this is over 1 day. This is not manageable. Many of these could be closed:

  • Are complete because a new version is released #53576
  • Can be implemented since there is a new version #50820 notice comments 24 & 25
  • Maintainers have the function but have not submitted it #58530

For preparing for GSoC it states to fix bugs, missing functions, etc. The ideal scenario would mean being inundated with fixes, and new functions. A maintained Short projects page would be necessary to avoid comments as in #32088.

What is the best approach to resolving this?

  • A new wiki page so one with permission can see all the "easy closes".
    • Please reuse the Short projects page for this purpose, which is currently unmaintained.
  • Pinging bugs/patches for a status update.
    • Yes, always a good idea and this is basically what happens very slowly. It would be great to see more volunteers triaging the bug and patch trackers.

Previous topics[edit]

The following items were not discussed. Just some links to progress on those items are displayed.

Octave 7[edit]

Improve graphics[edit]
  • Consult professional OpenGL developer to review code Any news here?
    • 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]
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.
  • improve HDF5 integration

Documentation[edit]

Ideas for next meeting[edit]

See also[edit]