Online Developer Meeting (2024-01-23)

From Octave
Jump to navigation Jump to search

Today's topics[edit]

  • Enable polymorphic-allocators by default? In Octave 9? In Octave 10? Later? See Enable polymorphic allocator by default (if available)? Leave it disabled by default on Octave 9. Enable it by default for Octave 10. Test in the next year, notify in NEWS that it will require a C++17 compiler so that packages can update their flags.
  • Disable visibility flags by default for Octave 9? Yes, disable visibility flags for Octave 9, meaning export all symbols by default. Make necessary refactoring on default branch for Octave 10. Maybe examine whether templates and classes should be refactored as well.
  • Release candidate for Octave 9? Any pending changes still missing for the RC? With no changes to previous two items, this is good to go. Pending activities: update README for Windows, merge MXE with all new package updates, then good to go.
    • Discussion about making edits to Statistics package so it can make it into MXE for Octave 9. Related to recent changes with isargout.
    • Discussion about "nargout <=" vs "nargout ==", making a policy of "nargout <=" and "nargout >=" going forward, no equality.
    • Discussion about iterators and range-based loops and auto types.
    • jwe will post about coding standard updates on the above topics.
  • Blocking tasks before moving any classdef-based class (e.g., string, table, datetime, ...) into Octave core?
    • There is already classdef in Octave core, like inputParser. The difference is that typically there is only one object of inputParser, but Octave core doesn't currently have arrays of classdefs, which would be necessary for arrays of strings etc. See [1] for example
    • The second major shortcoming is that classdefs cannot currently be saved in files.
  • Discuss a road map to port @table class from Tablicious package into Octave core, while making it a dependency for Statistics until @table gets into core (possibly by Octave 10).

Previous topics[edit]

  • Octave 9 remaining release activities
    • Blocking bugs
    • Translation files
    • 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
    • Approximate date for release candidate
  • Octave coding guidelines
    • Need refresh as recommendations are out of date
      • Line length
      • 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
      • #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.

See also[edit]