Editing Category:Development

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:
:''This page contains links to pages of interest to Octave developers.''
:''This page contains links to pages of interest to Octave developers.''


= πŸ’‘ Getting started πŸ”° =
== Getting started ==
* [[Developer FAQ]] -- Start here.
* [[Developer FAQ]]
* [[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 =
== Octave development ==


: {{Note|'''Attend our next [[meet | Online Developer Meeting]]''' πŸ™‚πŸ’¬ (See [[:Category:Meetings | all previous meetings]])}}
=== [[:Category:Building|Building]] ===
Β 
== πŸ› οΈ [[: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 ===
==== Tools ====


* [[Mercurial]] -- How to use Octave's version control scheme, creating patches (changesets).
* [[Mercurial]] -- How to use Octave's version control scheme.
* [[Doxygen]] -- Documentation for C++ files
* [[Doxygen]] -- Documentation for C++ files
* [[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].
* [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]] ==
=== [[: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]]


== 🐞 Debugging ==
=== [[:Category:Releases|Releasing]] ===
Β 
* [[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.2.0''' (a few months major release).
* The next major release will be [[9.1 Release Checklist | '''GNU Octave 9.1.0''']] (beginning of 2024).
* [[Release History]]
* [[:Category:Releases|Old release checklists]]
* "Nightly" Octave releases on https://octave.space
Β 
== 🎯 Goals for upcoming releases ==
Β 
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 =
* The next release will be '''GNU Octave 6.1'''. See the '''[[6.1 Release Checklist]]''' for more information.
* [[:Category:Releases|Older releases]]


== [[:Category:Project_Ideas|Project ideas]] and work in progess ==
* [[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 - Getting Started]] -- Ideas page for GSoC, SOCIS, ... projects.
* [[Summer of Code Project Ideas]] -- 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 96: Line 47:
** [[Pythonic]] -- Calling Python functions directly from Octave.
** [[Pythonic]] -- Calling Python functions directly from Octave.


= Other =
== Meetings ==
Β 
* Read about past [[:Category:Meetings | developer meetings]].


== Other ==
* [[Project Infrastructure]]
* [[Project Infrastructure]]


[[Category:Contents]]
[[Category:Contents]]
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)

Template used on this page: