Online Developer Meeting (2023-12-19)

From Octave
Jump to navigation Jump to search

Today's topics

  • Octave 9 remaining release activities
    • Blocking bugs
      • Change in BLAS/LAPACK condition number for `inf (2,2)`. Should we disable tests for this feature to avoid confusion that something is wrong with Octave, while we work on a strategy for this? Rik to create bug report, Change BIST tests to use %!xtest with new bug number, Investigate long-term returning 0 for rcond of Inf matrix
      • Windows Terminal problems
    • Translation files Rik to ping Marco about Italian translation
    • First names or abbreviated names in `contributors.in`? Rik will follow up with individuals
    • `-fsanitize` and other checks on code
      • Should leaks be analyzed in Discourse thread or a Savannah bug report? Discourse to start, bug afterwards
    • Update of Copyright statements. jwe to do this
    • Approximate date for release candidate
  • Octave coding guidelines
    • Need refresh as recommendations are out of date
      • Line length Re-write from hard limit (80) to user preference as long as code is clear. Clear code can sometimes mean putting all of the statement on one line so it is one unit
      • Break return type of function and put on separate line for class methods within class definition? Original reason no longer applies, so use judgment based on e.g. length of return type l
      • `enum`, `struct` style not particularly clear or documented. Document that style should be like functions with opening '{' not indented but appearing on its own line
      • #ifdef indentation and styling No clear preference
  • Public roadmap discussion.
  • Proposal [from cbm]: set aside last 15 or 20 minutes to hack on the bytecode interpreter.
    • JWE asks questions, rest of us file issues or take notes.
    • Example: last meeting something came up about int types...
      • perhaps we can find a few more "low hanging fruit"
    • If nothing else, a few of us will spend a few minutes trying the interpreter.
    • Or could spend time trying to break testing the experimental terminal widget to start generating a buglist
    • Long discussion of code. JWE will try to merge stack frames for tree evaluator and bytecode interpreter. Meeting with Petter planned.

Previous topics

  • Octave 9 release activities
  • Consider reverting the removal of the configure flag that allows disabling the bytecode VM?
  • Clarify changes that should target the stable or the default branch.
    • No universal guidelines, generally ask whether it absolutely needs to be in stable without introducing new problems
    • Importance of impact, if any: does it make a difference whether it addresses a crash vs addresses something minor?
    • Importance of frequency, if any: does it make a difference whether the bug is commonly encountered or rare?
    • Size of code change, if any.
    • When to graft changes from default to stable?
  • Clarify what should be part of reviewing a change before pushing it to the repository. Any difference for changes to the stable or the default branch?
    • No all-use guidelines, but avoid compiler specific code, platform specific code, and in general ask why something is written this way
  • Decide on criteria for which bugs should be fixed before 9.1.0 release
    • Tag all bugs which meet criteria with Planned Release of 9.1.0
  • Default to Qt6 for Octave 9? Also for MXE Octave? That raises minimum requirements for compiler (C++17) and target platform (for Windows: minimum Windows 10 64-bit, see post on discourse).
  • Enable polymorphic allocators by default (C++17 feature)? Might prevent Octave packages from building if they set a lower C++ standard. (Known example: the ltfat package does this currently, adding -std=gnu++11 to its flags, preventing it from being built as-is with polymorphic allocators.)

See also