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 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]]
** [[Commit message guidelines]]


= πŸ”¬ Octave development =
== [[:Category:Project_Ideas|Project ideas]] and work in progess ==
* [[Short projects]] -- Good starting point to get into the Octave development.
* [[Summer of Code Project Ideas]] -- 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.
Β 
== Tools & techniques ==


: {{Note|'''Attend our next [[meet | Online Developer Meeting]]''' πŸ™‚πŸ’¬ (See [[:Category:Meetings | all previous meetings]])}}
* [[Mercurial]] -- Version control scheme.
* [[MXE]] -- Cross-compiling to Windows.
* gdb -- debugger.Β  Useful to obtain stack traces.
** [[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:Editors|Editors]] -- A list of editors supporting Octave syntax highlighting.


== πŸ› οΈ [[:Category:Building|Building]] ==
== Documentation ==
* [[Help text]] -- Document m-files
* [[Doxygen]] -- Document C++ files


* [[Building]] -- General information how to build Octave from source.
== [[:Category:Building|Building]] ==
** [[Building on Microsoft Windows]]
* [[Building]] - General information.
** [[Building on Ubuntu Virtual Machine]]
* [[Continuous Build]]
* [[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]]
* [[Enable large arrays: Build octave such that it can use arrays larger than 2Gb.|Large array support]]


=== πŸ”§ Tools ===
== [[:Category:Testing|Testing]] ==
Β 
* [[Mercurial]] -- How to use Octave's version control scheme, creating patches (changesets).
* [[Doxygen]] -- Documentation for C++ files
* [https://ccache.samba.org/ ccache] -- How to faster compile Octave.
* [[: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]]


== 🐞 Debugging ==
== [[:Category:Packaging|Packaging]] ==
Β 
* Building binary distributions.
* [[Debugging Octave]] -- How to use [https://www.gnu.org/software/gdb/ gdb] to obtain stack traces.
** [[Create a MacOS X App Bundle Using MacPorts|Create a macOS app using MacPorts]]
* [[Finding Memory Leaks]] -- How to use [https://www.valgrind.org/ valgrind].
** [[Windows_Installer|Create a Windows Installer using MXE]]
Β 
== πŸŽ‰ [[: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.
== Code sprints ==
* [[Summer of Code - Getting Started]] -- Ideas page for GSoC, SOCIS, ... projects.
* [[2015 Code Sprint]]
* [[Projects]] -- Many things that would be nice to have done.
* [[Code sprint Zurich]]
** [[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]]
* [[5.0.0 Release Checklist]]
** [[Bug Fix List - 5.0 Release]]


== 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: