Category:Development: Difference between revisions
Jump to navigation
Jump to search
(Reorganize.) |
(→🎉 Releasing: Octave 9.2.0 release) |
||
(41 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
:''This page contains links to pages of interest to Octave developers.'' | :''This page contains links to pages of interest to Octave developers.'' | ||
= | = 💡 Getting started 🔰 = | ||
* [[Developer FAQ]] | * [[Developer FAQ]] -- Start here. | ||
* [[Contribution guidelines]] for Octave | * [[Contribution guidelines]] for Octave | ||
** [[C++ style guide]] | ** [[C++ style guide]] | ||
** [[Octave style guide]] | ** [[Octave style guide]] | ||
** [[Help text style guide]] | ** [[Help text style guide]] | ||
** [[Commit message guidelines]] | |||
= | = 🔬 Octave development = | ||
== | : {{Note|'''Attend our next [[meet | Online Developer Meeting]]''' 🙂💬 (See [[:Category:Meetings | all previous meetings]])}} | ||
== 🛠️ [[:Category:Building|Building]] == | |||
* [[Building]] -- General information how to build Octave from source. | * [[Building]] -- General information how to build Octave from source. | ||
** [[Building on Microsoft Windows]] | ** [[Building on Microsoft Windows]] | ||
** [[Building on Ubuntu Virtual Machine]] | |||
* [[Continuous Build]] -- Check changes with [https://buildbot.net/ Buildbot]. | * [[Continuous Build]] -- Check changes with [https://buildbot.net/ Buildbot]. | ||
* [[MXE]] -- Cross-compiling to MS Windows. | * [[MXE]] -- Cross-compiling to MS Windows. | ||
* [[Enable large arrays: Build octave such that it can use arrays larger than 2Gb.|Large array support]] | * [[Enable large arrays: Build octave such that it can use arrays larger than 2Gb.|Large array support]] | ||
=== | === 🔧 Tools === | ||
* [[Mercurial]] -- How to use Octave's version control scheme. | * [[Mercurial]] -- How to use Octave's version control scheme, creating patches (changesets). | ||
* [[Doxygen]] -- Documentation for C++ files | * [[Doxygen]] -- Documentation for C++ files | ||
* [https://ccache.samba.org/ ccache] -- How to faster compile Octave. | * [https://ccache.samba.org/ ccache] -- How to faster compile Octave. | ||
* [[:Category:Editors|Editors]] -- A list of editors supporting Octave syntax highlighting. | * [[:Category:Editors|Editors]] -- A list of editors supporting Octave syntax highlighting. | ||
== | == ⚖️ [[:Category:Testing|Testing]] == | ||
* [[Tests]] | * [[Tests]] | ||
* [[BIST for m-files]] | * [[BIST for m-files]] | ||
* [[Add BIST tests for octave functions written in C++|BIST for C++ files]] | * [[Add BIST tests for octave functions written in C++|BIST for C++ files]] | ||
=== [[:Category:Releases|Releasing]] | == 🐞 Debugging == | ||
* [[Debugging Octave]] -- How to use [https://www.gnu.org/software/gdb/ gdb] to obtain stack traces. | |||
* [[Finding Memory Leaks]] -- How to use [https://www.valgrind.org/ valgrind]. | |||
== 🎉 [[:Category:Releases|Releasing]] == | |||
* The next minor release will be '''GNU Octave 9.3.0''' (a few months major release). | |||
* The next major release will be [[9.1 Release Checklist | '''GNU Octave 10.1.0''']] (beginning of 2025). | |||
* [[Release History]] | |||
* [[:Category:Releases|Old release checklists]] | |||
* "Nightly" Octave releases on https://nightly.octave.org | |||
* [[ | == 🎯 Goals for upcoming releases == | ||
* [[:Category: | |||
As discussed in the [[Online Developer Meeting (2020-10-27)]], this wiki section is for a list of possible goals for the next release. Although anyone may edit the wiki, '''this section is intended for active developers, not a place to dump wishlist items or feature requests'''. Please create a subsection for your ideas/priorities. | |||
=== jwe priorities === | |||
:''See also [[JWE Project Ideas]] for additional info about some of these items.'' | |||
==== Large New Features ==== | |||
* Compatible arguments block ([https://savannah.gnu.org/bugs/?func=detailitem&item_id=59405 some work has been done]; need to execute actions when functions are called) | |||
* Compatible local functions | |||
* Compatible string class | |||
** Define class itself ([[https://github.com/apjanke/octave-tablicious/inst initial implementation]?) | |||
** Construct strings objects from double quoted strings (painful transition). | |||
* Compatible table class ([https://github.com/apjanke/octave-tablicious initial implementation]?) | |||
* Create a low-level interface to HDF5 functions | |||
** Support Matlab's HDF5-based MAT file format using the proposed low-level interface to HDF5 functions | |||
** Allow all types of function handles to be saved and loaded | |||
** Allow [[classdef]] objects to be saved and loaded | |||
* Make import feature work | |||
==== Internal Improvements ==== | |||
* Refactor/rewrite code for handling load path | |||
* Refactor/rewrite exist and which functions | |||
* Refactor function objects | |||
* Refactor broadcasting and make it work for sparse matrices | |||
* Replace the [[GUI terminal widget|terminal widget in the GUI]] | |||
* Write stack-based byte-code interpreter that doesn't result in deeply nested function calls to evaluate code | |||
* JIT compiler | |||
* Move more code inside octave namespace | |||
* Eliminate mutable class data where possible | |||
* Eliminate singleton objects | |||
* Use classdef for handle graphics? | |||
==== Other ==== | |||
* Bug fixes, especially those related to compatibility issues | |||
* Work through the open bug reports for which patches have been submitted - review/apply/reject and close as many of these reports as possible | |||
= 💡 [[:Category:Project_Ideas|Project ideas]] and work in progress = | |||
* [[Short projects]] -- Good starting point to get into the Octave development. | * [[Short projects]] -- Good starting point to get into the Octave development. | ||
* [[Summer of Code | * [[Summer of Code - Getting Started]] -- Ideas page for GSoC, SOCIS, ... projects. | ||
* [[Projects]] -- Many things that would be nice to have done. | * [[Projects]] -- Many things that would be nice to have done. | ||
** [[Classdef]] -- Define own data types using <code>classdef</code>. | ** [[Classdef]] -- Define own data types using <code>classdef</code>. | ||
Line 49: | Line 96: | ||
** [[Pythonic]] -- Calling Python functions directly from Octave. | ** [[Pythonic]] -- Calling Python functions directly from Octave. | ||
== | = Other = | ||
* [[Project Infrastructure]] | * [[Project Infrastructure]] | ||
[[Category:Contents]] | [[Category:Contents]] |
Latest revision as of 19:31, 28 June 2024
- This page contains links to pages of interest to Octave developers.
💡 Getting started 🔰[edit]
- Developer FAQ -- Start here.
- Contribution guidelines for Octave
🔬 Octave development[edit]
- Attend our next Online Developer Meeting 🙂💬 (See all previous meetings)
🛠️ Building[edit]
- Building -- General information how to build Octave from source.
- Continuous Build -- Check changes with Buildbot.
- MXE -- Cross-compiling to MS Windows.
- Large array support
🔧 Tools[edit]
- Mercurial -- How to use Octave's version control scheme, creating patches (changesets).
- Doxygen -- Documentation for C++ files
- ccache -- How to faster compile Octave.
- Editors -- A list of editors supporting Octave syntax highlighting.
⚖️ Testing[edit]
🐞 Debugging[edit]
- Debugging Octave -- How to use gdb to obtain stack traces.
- Finding Memory Leaks -- How to use valgrind.
🎉 Releasing[edit]
- The next minor release will be GNU Octave 9.3.0 (a few months major release).
- The next major release will be GNU Octave 10.1.0 (beginning of 2025).
- Release History
- Old release checklists
- "Nightly" Octave releases on https://nightly.octave.org
🎯 Goals for upcoming releases[edit]
As discussed in the Online Developer Meeting (2020-10-27), this wiki section is for a list of possible goals for the next release. Although anyone may edit the wiki, this section is intended for active developers, not a place to dump wishlist items or feature requests. Please create a subsection for your ideas/priorities.
jwe priorities[edit]
- See also JWE Project Ideas for additional info about some of these items.
Large New Features[edit]
- Compatible arguments block (some work has been done; need to execute actions when functions are called)
- Compatible local functions
- Compatible string class
- Define class itself ([initial implementation?)
- Construct strings objects from double quoted strings (painful transition).
- Compatible table class (initial implementation?)
- Create a low-level interface to HDF5 functions
- Support Matlab's HDF5-based MAT file format using the proposed low-level interface to HDF5 functions
- Allow all types of function handles to be saved and loaded
- Allow classdef objects to be saved and loaded
- Make import feature work
Internal Improvements[edit]
- Refactor/rewrite code for handling load path
- Refactor/rewrite exist and which functions
- Refactor function objects
- Refactor broadcasting and make it work for sparse matrices
- Replace the terminal widget in the GUI
- Write stack-based byte-code interpreter that doesn't result in deeply nested function calls to evaluate code
- JIT compiler
- Move more code inside octave namespace
- Eliminate mutable class data where possible
- Eliminate singleton objects
- Use classdef for handle graphics?
Other[edit]
- Bug fixes, especially those related to compatibility issues
- Work through the open bug reports for which patches have been submitted - review/apply/reject and close as many of these reports as possible
💡 Project ideas and work in progress[edit]
- Short projects -- Good starting point to get into the Octave development.
- Summer of Code - Getting Started -- Ideas page for GSoC, SOCIS, ... projects.
- Projects -- Many things that would be nice to have done.
- Classdef -- Define own data types using
classdef
. - JIT -- Just in time compiler for Octave.
- GUI terminal widget -- Ideas about a new improved terminal widget.
- International Characters Support -- Using Octave in your own language.
- Pythonic -- Calling Python functions directly from Octave.
- Classdef -- Define own data types using
Other[edit]
Subcategories
This category has the following 7 subcategories, out of 7 total.
Pages in category "Development"
The following 23 pages are in this category, out of 23 total.