Difference between revisions of "Online Developer Meeting (2021-12-28)"

From Octave
Jump to navigation Jump to search
(Create page.)
 
 
(4 intermediate revisions by 2 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).
  
=== Topic 1 ===
+
=== Release process of Octave 7.1 ===
  
* Point 1
+
* No blocking issues at the moment.
 +
** Visibility flags are disabled (on the stable branch).
 +
** Polymorphic allocators are disabled by default, but can be enabled with a configure switch.
 +
* Translations are still ongoing.
 +
* Update year in copyright notes.
 +
* Do a first release candidate during the next few days (independent on current status of translations).
 +
 
 +
=== Projects for Octave 8 ===
 +
 
 +
* Array<T> template class:
 +
** Allow implicit instantiations
 +
** Less explicit instantiations (where possible)
 +
*** Background: Current design of requiring explicit instantiations was probably "just" for optimization of compile time.
 +
** Make sorting a part of the Array<T> template (instead of a separate template).
 +
*** Background: At the time, this was first implemented, there was (probably?) no good sorting method in the STL.
 +
*** Maybe move to C++ sorting methods now if possible.
 +
** provide STL compatible iterators (might be a requirement for STL sorting)
 +
** generally try to take better advantage of templating and specializations.
 +
 
 +
* Make it explicit in the docstring if functions have a return argument.
 +
* Allow <code>@seealso</code> links to point to old class functions - like <code>@ftp/open</code>. (Doesn't work currently in doc cache.)
 +
* Lookup classdef methods for help and debugger.
 +
* Check reason for "disappearing" classdef constructor for MException class: [https://savannah.gnu.org/bugs/?40828 bug #40828]
 +
* Is it possible to simplify the implementation of classdef in Octave core?
 +
 
 +
* General note on changes: Don't over-complicate code for micro-optimizations. Use STL where possible and where it makes sense.
 +
 
 +
=== Update strategy for MXE Octave ===
 +
 
 +
* <code>default</code> branch was merged to <code>release</code> a couple of weeks ago. That was meant to get the CI working after the merge from <code>default</code> to <code>stable</code> in the main Octave repository. It was '''not''' meant to freeze the branch...
 +
* When should the "actual" merge happen? For the (first?) release candidate? For the final release?
 +
** Merge some time during the next few days. Before the first release candidate.
 +
** After that, fix bugs as necessary.
 +
 
 +
=== Status of plotting in Octave ===
 +
 
 +
* https://octave.discourse.group/t/plotting-backend-for-web-ui/2008
 +
** The "gnuplot" graphics interface will eventually be removed.
 +
** It's probably difficult (or impossible) to make it a package.
 +
** The "qt" graphics interface is the default now.
 +
 
 +
== Previous topics ==
 +
:''The following items were not discussed.  Just some links to progress on those items are displayed.''
 +
 
 +
=== Octave 7 ===
 +
 
 +
* Octave 7.1.0 release activities and timeline
 +
** [[7.1 Release Checklist]]
 +
** Merge default to stable now
 +
** '''No new features anymore''' (explain on Octave Discourse @jwe?)
 +
*** Focus on stabilization
 +
*** Bugs to be fixed marked on Savannah with "7.0.90" or "Octave 7" on https://octave.space/savannah/
 +
** Go through "ready for test" list, close as much as possible
 +
** Call for translations
 +
*** https://octave.discourse.group/t/how-to-update-the-gui-translation-files/1834
 +
** Approx. final release date (early 2022)
 +
 
 +
=== MXE Octave merge strategy ===
 +
 
 +
* When should the default branch of MXE Octave be merged to the release branch?
 +
** Around the same time as the merge of the default branch of Octave to its stable branch.
 +
* Which branches should the buildbots use in the pre-release phase? Different for jwe's buildbots and octave.space?
 +
** Keep them running like they are. Evaluate if buildbot failures need action in the transition period before the major release.
 +
 
 +
=== UCRT version of Octave? ===
 +
 
 +
* Should we distribute an UCRT version of Octave for Windows?
 +
** No big opposition to adding new versions if it doesn't become too many and they add value.
 +
** Probably changes inside Octave necessary as well. Long time project. Maybe for Octave 8 (or later).
 +
** See: [https://octave.discourse.group/t/1821 Windows, UTF-8, and UCRT - yet another variant of Octave on Windows?]
 +
 
 +
=== [https://en.wikipedia.org/wiki/Bus_factor Bus factor] ===
 +
 
 +
* Octave needs more documentation of release tasks.
 +
** E.g. https://octave.discourse.group/t/how-to-update-the-gui-translation-files/1834
 +
* jwe updates [[Project Infrastructure]] page.
 +
* Start an Octave Discourse thread about ideas how to ensure project continuity.
 +
 
 +
=== Octave 8 ideas ===
 +
 
 +
* jwe updated [[:Category:Development#jwe_priorities]] and clean up outdated [[JWE Project Ideas]].
 +
** @jwe: shall I (Kai) merge and redirect [[JWE Project Ideas]] into the general [[Projects]] page??
 +
* jwe wants to work on argument-list syntax.
 +
* rik wants to consistently use <code>OCTAVE_LOCAL_BUFFER</code> in liboctave.
 +
* OpenMP parallelization for trivial cases (e.g. initialize matrix with constant)?
 +
** Ensure thread safeness of Array classes (especially GUI-interpreter communication)
 +
** Maybe based on <code>std:shared_ptr</code>? But they aren't guaranteed to be thread-safe by design either.
 +
** Eliminate <code>mutable</code> class data.
 +
* Other performance improvements:
 +
** Idea: memory pools: bug {{bug|57321}}
 +
** Idea: static_cast vs. dynamic_cast: patch {{patch|10139}}
 +
** General remark: Prefer standard features instead of "reinventing the wheel" by implementing intricate optimizations.
  
 
== See also ==
 
== See also ==

Latest revision as of 20:34, 28 December 2021

Todays topics[edit]

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

Release process of Octave 7.1[edit]

  • No blocking issues at the moment.
    • Visibility flags are disabled (on the stable branch).
    • Polymorphic allocators are disabled by default, but can be enabled with a configure switch.
  • Translations are still ongoing.
  • Update year in copyright notes.
  • Do a first release candidate during the next few days (independent on current status of translations).

Projects for Octave 8[edit]

  • Array<T> template class:
    • Allow implicit instantiations
    • Less explicit instantiations (where possible)
      • Background: Current design of requiring explicit instantiations was probably "just" for optimization of compile time.
    • Make sorting a part of the Array<T> template (instead of a separate template).
      • Background: At the time, this was first implemented, there was (probably?) no good sorting method in the STL.
      • Maybe move to C++ sorting methods now if possible.
    • provide STL compatible iterators (might be a requirement for STL sorting)
    • generally try to take better advantage of templating and specializations.
  • Make it explicit in the docstring if functions have a return argument.
  • Allow @seealso links to point to old class functions - like @ftp/open. (Doesn't work currently in doc cache.)
  • Lookup classdef methods for help and debugger.
  • Check reason for "disappearing" classdef constructor for MException class: bug #40828
  • Is it possible to simplify the implementation of classdef in Octave core?
  • General note on changes: Don't over-complicate code for micro-optimizations. Use STL where possible and where it makes sense.

Update strategy for MXE Octave[edit]

  • default branch was merged to release a couple of weeks ago. That was meant to get the CI working after the merge from default to stable in the main Octave repository. It was not meant to freeze the branch...
  • When should the "actual" merge happen? For the (first?) release candidate? For the final release?
    • Merge some time during the next few days. Before the first release candidate.
    • After that, fix bugs as necessary.

Status of plotting in Octave[edit]

Previous topics[edit]

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

Octave 7[edit]

MXE Octave merge strategy[edit]

  • When should the default branch of MXE Octave be merged to the release branch?
    • Around the same time as the merge of the default branch of Octave to its stable branch.
  • Which branches should the buildbots use in the pre-release phase? Different for jwe's buildbots and octave.space?
    • Keep them running like they are. Evaluate if buildbot failures need action in the transition period before the major release.

UCRT version of Octave?[edit]

Bus factor[edit]

Octave 8 ideas[edit]

  • jwe updated Category:Development#jwe_priorities and clean up outdated JWE Project Ideas.
  • jwe wants to work on argument-list syntax.
  • rik wants to consistently use OCTAVE_LOCAL_BUFFER in liboctave.
  • OpenMP parallelization for trivial cases (e.g. initialize matrix with constant)?
    • Ensure thread safeness of Array classes (especially GUI-interpreter communication)
    • Maybe based on std:shared_ptr? But they aren't guaranteed to be thread-safe by design either.
    • Eliminate mutable class data.
  • Other performance improvements:
    • Idea: memory pools: bug #57321
    • Idea: static_cast vs. dynamic_cast: patch #10139
    • General remark: Prefer standard features instead of "reinventing the wheel" by implementing intricate optimizations.

See also[edit]