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 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]]
| | * [[Contributing to the development of packages/modules]] |
| ** [[Commit message guidelines]]
| | * [[Octave's file types]] |
|
| |
|
| = π¬ Octave development = | | == [[:Category:Project_Ideas|Project ideas]] and work in progess == |
| Β | | * [[Easy projects]] |
| : {{Note|'''Attend our next [[meet | Online Developer Meeting]]''' ππ¬ (See [[:Category:Meetings | all previous meetings]])}}
| | * [[GSoC Project Ideas]] |
| Β | | * [[Projects]] -- Many things that would be nice to have done.Β Not classified into things done or not done in Matlab. (Is that a project in itself?) |
| == π οΈ [[:Category:Building|Building]] == | | ** [[Classdef]] |
| Β | | ** [[Java interface]] |
| * [[Building]] -- General information how to build Octave from source. | | ** [[JIT]] |
| ** [[Building on Microsoft Windows]] | | ** [[GUI terminal widget]] -- Ideas about a new improved terminal widget. |
| ** [[Building on Ubuntu Virtual Machine]] | |
| * [[Continuous Build]] -- Check changes with [https://buildbot.net/ Buildbot]. | |
| * [[MXE]] -- Cross-compiling to MS Windows. | |
| * [[Enable large arrays: Build octave such that it can use arrays larger than 2Gb.|Large array support]]
| |
|
| |
|
| === π§ Tools === | | == Tools & techniques == |
|
| |
|
| * [[Mercurial]] -- How to use Octave's version control scheme, creating patches (changesets). | | * [[Mercurial]] -- Version control scheme. |
| * [[Doxygen]] -- Documentation for C++ files | | * [[MXE]] -- Cross-compiling to Windows. |
| * [https://ccache.samba.org/ ccache] -- How to faster compile Octave. | | * gdb -- debugger.Β Useful to obtain stack traces. |
| * [[:Category:Editors|Editors]] -- A list of editors supporting Octave syntax highlighting.
| | ** [[Debugging Octave]] -- particularly .oct files using gdb. |
| | * valgrind -- memory leak detector, profiler etc. |
| | ** [[Finding Memory Leaks]] |
| | * [https://ccache.samba.org/ ccache] -- cache compilation across builds. |
|
| |
|
| == βοΈ [[:Category:Testing|Testing]] == | | == Documentation == |
| | * [[Help_text|Help text]] -- Document m-files |
| | * [[Doxygen]] -- Document C++ files |
|
| |
|
| | == [[: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 == | | == Code sprints == |
| Β | | * [[2015 Code Sprint]] |
| * [[Debugging Octave]] -- How to use [https://www.gnu.org/software/gdb/ gdb] to obtain stack traces. | | * [[Code sprint Zurich]] |
| * [[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 =
| |
| Β | |
| * [[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 <code>classdef</code>.
| |
| ** [[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.
| |
|
| |
|
| = Other = | | == [[:Category:Releases|Release procedures]] == |
| | * [[Release Checklist]] |
|
| |
|
| | == Other == |
| * [[Project Infrastructure]] | | * [[Project Infrastructure]] |
| | * [[Status of bugs]] (outdated) |
|
| |
|
| [[Category:Contents]] | | [[Category:Contents]] |