Online Developer Meeting (2021-09-28): Difference between revisions
Jump to navigation
Jump to search
(→Todays topics: Add topics that came up during the meeting) |
(→Approximate release date for Octave 7?: Add link to bug report) |
||
Line 27: | Line 27: | ||
* Unfinished projects: | * Unfinished projects: | ||
** Symbol visibility breaks tests for indexing expressions on macOS. Also many linker warnings similar to this: | ** Symbol visibility breaks tests for indexing expressions on macOS. Also many linker warnings similar to this (see [https://savannah.gnu.org/bugs/index.php?59820 bug #59820]): | ||
ld: warning: direct access in function 'conv_to_int_array(Array<octave::idx_vector> const&)' from file 'liboctave/array/.libs/libarray.a(libarray_la-Array-util.o)' to global weak symbol 'vtable for Array<long long>' from file 'liboctave/array/.libs/libarray.a(libarray_la-Array-i.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. | ld: warning: direct access in function 'conv_to_int_array(Array<octave::idx_vector> const&)' from file 'liboctave/array/.libs/libarray.a(libarray_la-Array-util.o)' to global weak symbol 'vtable for Array<long long>' from file 'liboctave/array/.libs/libarray.a(libarray_la-Array-i.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings. | ||
** Support paths including spaces (mostly for Windows - '''not''' relying on short file names). What about package Makefiles? Probably best if we defer that one to later. | ** Support paths including spaces (mostly for Windows - '''not''' relying on short file names). What about package Makefiles? Probably best if we defer that one to later. |
Latest revision as of 07:28, 29 September 2021
- Date: Tuesday, September 28, 2021 @ 18:00 UTC
- Location: https://meet.jit.si/octave-dev-2021-09-28
Todays topics[edit]
- Meet and greet 5 minutes before meeting (audio testing).
Octave 6.4.0?[edit]
- Last(?) Octave 6 release?
- Background: 12 changes on the stable branch (~10 on the release branch of MXE Octave) since the last release. Most important ones:
- Octave GUI doesn't start for some Windows users. Bug in Qt 5.14 that is fixed in Qt 5.15.
- Crash to desktop fixed in Octave core (bug #61191).
- Crash to desktop fixed in librsb (bug #60042, only affects Windows bundle).
- Command line arguments with parameters (e.g.
--path
) can't be combined with--gui
(bug #60886).
- Ask on discourse for pending changes and do a new release.
Approximate release date for Octave 7?[edit]
- Last few cycles: merge to stable and release date of first stable version:
- 6.x: merge to stable: 2020-02-17 --- release: 2020-11-26 (~ 9.5 month)
- 5.x: merge to stable: 2018-12-20 --- release: 2019-02-23 (~ 2 month)
- 4.4.x: merge to stable: 2018-04-04 --- release: 2018-04-30 (< 1 month)
- 4.2.x: merge to stable: 2016-09-28 --- release: 2016-11-13 (~ 1.5 month)
- Unfinished projects:
- Symbol visibility breaks tests for indexing expressions on macOS. Also many linker warnings similar to this (see bug #59820):
ld: warning: direct access in function 'conv_to_int_array(Array<octave::idx_vector> const&)' from file 'liboctave/array/.libs/libarray.a(libarray_la-Array-util.o)' to global weak symbol 'vtable for Array<long long>' from file 'liboctave/array/.libs/libarray.a(libarray_la-Array-i.o)' means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
- Support paths including spaces (mostly for Windows - not relying on short file names). What about package Makefiles? Probably best if we defer that one to later.
- more efficient mex file interface with direct pointers to data in Octave arrays (jwe)
- Prefer OCTAVE_LOCAL_BUFFER over Array objects where possible (Rik, not a blocker)
- Probably merge default to stable some time in November
- Probably release Octave 7 around the end of this year or early 2022.
CamelCase in Octave functions?[edit]
- What is our current stance on that? --> Avoid it for consistency. Allowed for compatibility.
Octave released on MSYS2[edit]
- Not aiming to replace MXE Octave (more reliable, tested, stable(?)). Rather complement it.
- Target group:
- Users that want to use e.g. Octave packages that depends on third party packages not included in MXE Octave.
- Users that need features of newer versions of packages that are included in MXE Octave.
GCC plugins[edit]
- Call out to anyone who has experience with compiler plugins
- Is it possible to write a compiler plugin that identifies variables that match certain conditions? E.g.,
m_
prefix for member variables. - Might allow other analysis of the code: E.g., are static or global variables used in a thread-safe manner?
Convenience function to check for integer property[edit]
- Add a function that checks if a double has an integer value.
- Also return true for integer type input.
- What is a good name (in Octave and C++ code)?
Broadcasting with special matrix types[edit]
- Topic comes up repeatedly in bug reports.
- Add convenience option to disable support for these types (range, diagonal matrix, permutation matrix)?
- Cast to full matrices before broadcasting? Special handling for NaN and Inf values!
Previous topics[edit]
- The following items were not discussed. Just some links to progress on those items are displayed.
Switch this meeting to more casual format[edit]
- In the future notes of the talks will be added to this wiki in a more sparse fashion.
liboctave[edit]
- Make more use of STL
- Not all liboctave components can be replaced by STL containers, as the ND-indexing is not supported.
string_vector
class probably replaceable by STL containers.
Tips for Octave C++ code writers[edit]
Such as packages, toolboxes, etc.
- Prefer
OCTAVE_LOCAL_BUFFER
over heavy-weightArray
object to store results of (Fortran-) library calls. - Prefer
octave_value
type variables over internal data structures.- Examples: Function handle class and Range class.
For package maintainers[edit]
- Do not use
error_state
anymore! https://octave.discourse.group/t/eliminating-use-of-error-state-in-octave-code/1515 - Do not suppress compiler warnings about deprecated features today, those are the bug reports of tomorrow, when it is too late.
octave namespace[edit]
- jwe made many breaking changes on the default branch moving symbols in the octave namespace, to keep the namespaces tidy.
Deprecations[edit]
- The operators
.+
,.-
, and**
https://octave.discourse.group/t/deprecating-fortran-style-exponent-operator/1516 will be deprecated.
Trolling[edit]
- In case of trolling behavior of users, please mark the thread, thus a Discourse admin can close the threat and mute the user.
- DO NOT FEED THE TROLL: Any further answer or conversation is most likely a waste of emotions and time.
- Any user violating the usage conditions https://octave.discourse.group/tos#heading--conditions will be muted or removed from the forum entirely.
Code sprints[edit]
- Wish for more code sprints, e.g.,
- "m_" convention https://octave.discourse.group/t/using-m-prefix-for-member-variables-in-c-classes/1517/17
- Close easy closable bugs Short_projects#Easy_Closes
See also[edit]
- Next meeting: Online Developer Meeting (2021-10-26)
- Last meeting: Online Developer Meeting (2021-08-24)