Online Developer Meeting (2021-04-27): Difference between revisions
Jump to navigation
Jump to search
(→C++17) |
|||
(4 intermediate revisions by 2 users not shown) | |||
Line 15: | Line 15: | ||
* Which branch should the buildbots use? | * Which branch should the buildbots use? | ||
** http://buildbot.octave.org:8010/ (jwe) | ** 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) | ** https://buildbot.octave.space/ (Kai) | ||
*** General move to "release" branch (probably May) | *** General move to "release" branch (probably May) | ||
Line 24: | Line 25: | ||
* Find out how to trigger a build on changes in two repositories? | * Find out how to trigger a build on changes in two repositories? | ||
** Untested idea: https://github.com/gnu-octave/octave-buildbot/pull/9/files | ** 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 === | ||
Line 69: | Line 95: | ||
== Previous topics == | == Previous topics == | ||
:''The following items were not discussed. Just some links to progress on those items are displayed.'' | |||
=== Octave 7 === | === Octave 7 === |
Latest revision as of 06:18, 28 April 2021
- Date: Tuesday, April 27, 2021 @ 18:00 UTC
- Location: https://meet.jit.si/octave-dev-2021-04-27
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
- http://buildbot.octave.org:8010/ (jwe)
Buildbots[edit]
- 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[edit]
- 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[edit]
- 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).
- 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).
- Initial implementation by Andrew Janke
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]
- 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)?
- 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)
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 pageso 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 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.
- improve HDF5 integration
Documentation[edit]
- Updates: https://octave.discourse.group/t/function-reference-documentation/959/7 and bug #60313
- Split Octave manual https://octave.org/doc/latest into
- Function reference, like Octave Forge https://octave.sourceforge.io/docs.php
- Prototype (Kai): https://octave.org/doc/ref/octave/overview.html
- 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]
See also[edit]
- Next meeting: Online Developer Meeting (2021-05-25)
- Last meeting: Online Developer Meeting (2021-03-23)