Editing Online Developer Meeting (2021-09-28)

Jump to navigation Jump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
* Date: Tuesday, September 28, 2021 @ 18:00 UTC
* Date: Tuesday, September 28, 2021 @ 18:00 UTC
* Location: https://meet.jit.si/octave-dev-2021-09-28
* Location: https://meet.jit.si/octave-dev-2021-09-28


== Todays topics ==
== Todays topics ==
Line 7: Line 6:
* Meet and greet 5 minutes before meeting (audio testing).
* Meet and greet 5 minutes before meeting (audio testing).


=== Octave 6.4.0? ===
=== First topic ===
 
* 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!
 
== Previous topics ==
:''The following items were not discussed.  Just some links to progress on those items are displayed.''
 
=== Switch this meeting to more casual format ===
 
* In the future notes of the talks will be added to this wiki in a more sparse fashion.
 
=== liboctave ===
 
* Make more use of STL
* Not all liboctave components can be replaced by STL containers, as the ND-indexing is not supported.
* <code>string_vector</code> class probably replaceable by STL containers.
 
=== Tips for Octave C++ code writers ===
 
Such as packages, toolboxes, etc.
 
* Prefer <code>OCTAVE_LOCAL_BUFFER</code> over heavy-weight <code>Array</code> object to store results of (Fortran-) library calls.
* Prefer <code>octave_value</code> type variables over internal data structures.
** Examples: Function handle class and Range class.
 
=== For package maintainers ===
 
* Do not use <code>error_state</code> 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 ===
 
* jwe made many breaking changes on the default branch moving symbols in the octave namespace, to keep the namespaces tidy.
 
=== Deprecations ===
 
* The operators <code>.+</code>, <code>.-</code>, and <code>**</code> https://octave.discourse.group/t/deprecating-fortran-style-exponent-operator/1516 will be deprecated.
 
=== Trolling ===
 
* 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 ===
 
* 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 ==
== See also ==
Please note that all contributions to Octave may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Octave:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)