Online Developer Meeting (2021-10-26): Difference between revisions
Jump to navigation
Jump to search
Fallback topic:
(Create page.) |
(Copy topics from last meeting. Add two potential topics for this meeting.) |
||
Line 6: | Line 6: | ||
* Meet and greet 5 minutes before meeting (audio testing). | * Meet and greet 5 minutes before meeting (audio testing). | ||
=== | === Progress of Octave 6.4.0 release === | ||
[https://octave.discourse.group/t/start-release-process-for-octave-6-4-0/1652 Start release process for Octave 6.4.0] | |||
* State of OpenBLAS compilation bug(?): [https://savannah.gnu.org/bugs/index.php?61246 bug #61246: matrix inversions give wrong results (inv, lu, mldivide)] | |||
* <code>pkg test sparsersb</code> crashes Octave (only when installed to read-only directory?). Needs further investigation. | |||
* Which version numbers to update in which files on (minor) release? (CITATION file?) | |||
* Update of merge date for Octave 7.x? | |||
=== Fallback topic: <code>spawn</code> with <code>P_OVERLAY</code> works differently on POSIX and Windows === | |||
(Only if there is nothing else to talk about.) | |||
Markus' current understanding: | |||
* <code>spawn</code> with <code>P_OVERLAY</code> replaces the current process with a new one. On POSIX, another process waiting for the original process (like a terminal) will wait for the '''replacing''' process instead. | |||
* On Windows, <code>spawn</code> with <code>P_OVERLAY</code> also replaces the current process. But each process has a distinct id on Windows. I.e., the new process gets a different process id from the original one. Another process (like a terminal) waiting for the original process id will resume once the '''original''' process terminates. (The same happens with <code>exec</code>.) That leads to issues when trying to use the <code>octave.exe</code> wrapper on Windows. | |||
* Could we use <code>spawn</code> with <code>P_WAIT</code> instead? IIUC, that would require passing the return code from the spawned process. What else? | |||
== Previous topics == | |||
:''The following items were not discussed. Just some links to progress on those items are displayed.'' | |||
=== Octave 6.4.0? === | |||
* 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 ([https://savannah.gnu.org/bugs/?61191 bug #61191]). | |||
** Crash to desktop fixed in librsb ([https://savannah.gnu.org/bugs/?60042 bug #60042], only affects Windows bundle). | |||
** Command line arguments with parameters (e.g. <code>--path</code>) can't be combined with <code>--gui</code> ([https://savannah.gnu.org/bugs/?60886 bug #60886]). | |||
* Ask on discourse for pending changes and do a new release. | |||
=== Approximate release date for Octave 7? === | |||
* 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 [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. | |||
** 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? === | |||
* What is our current stance on that? --> Avoid it for consistency. Allowed for compatibility. | |||
=== Octave released on MSYS2 === | |||
* 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 === | |||
* 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., <code>m_</code> 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 === | |||
* 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 === | |||
* 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! | |||
== See also == | == See also == |
Revision as of 09:13, 25 October 2021
- Date: Tuesday, October 26, 2021 @ 18:00 UTC
- Location: https://meet.jit.si/octave-dev-2021-10-26
Todays topics
- Meet and greet 5 minutes before meeting (audio testing).
Progress of Octave 6.4.0 release
Start release process for Octave 6.4.0
- State of OpenBLAS compilation bug(?): bug #61246: matrix inversions give wrong results (inv, lu, mldivide)
pkg test sparsersb
crashes Octave (only when installed to read-only directory?). Needs further investigation.- Which version numbers to update in which files on (minor) release? (CITATION file?)
- Update of merge date for Octave 7.x?
Fallback topic: spawn
with P_OVERLAY
works differently on POSIX and Windows
(Only if there is nothing else to talk about.)
Markus' current understanding:
spawn
withP_OVERLAY
replaces the current process with a new one. On POSIX, another process waiting for the original process (like a terminal) will wait for the replacing process instead.- On Windows,
spawn
withP_OVERLAY
also replaces the current process. But each process has a distinct id on Windows. I.e., the new process gets a different process id from the original one. Another process (like a terminal) waiting for the original process id will resume once the original process terminates. (The same happens withexec
.) That leads to issues when trying to use theoctave.exe
wrapper on Windows. - Could we use
spawn
withP_WAIT
instead? IIUC, that would require passing the return code from the spawned process. What else?
Previous topics
- The following items were not discussed. Just some links to progress on those items are displayed.
Octave 6.4.0?
- 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?
- 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?
- What is our current stance on that? --> Avoid it for consistency. Allowed for compatibility.
Octave released on MSYS2
- 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
- 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
- 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
- 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!
See also
- Next meeting: Online Developer Meeting (2021-11-23)
- Last meeting: Online Developer Meeting (2021-09-28)