Difference between revisions of "Category:Development"

From Octave
Jump to navigation Jump to search
(β†’β€ŽπŸŽ‰ Releasing: next minor release will be Octave 7.2.0)
Β 
(12 intermediate revisions by 2 users not shown)
Line 7: Line 7:
Β 
** [[Octave style guide]]
Β 
** [[Octave style guide]]
Β 
** [[Help text style guide]]
Β 
** [[Help text style guide]]
Β +
** [[Commit message guidelines]]
Β Β 
Β 
= πŸ”¬ Octave development =
Β 
= πŸ”¬ Octave development =
Β Β 
βˆ’
: {{Note|Attend our [[Online Developer Meeting (2021-07-27)]] πŸ™‚πŸ’¬ (See [[:Category:Meetings | all meetings]])}}
+
: {{Note|'''Attend our next [[meet | Online Developer Meeting]]''' πŸ™‚πŸ’¬ (See [[:Category:Meetings | all previous meetings]])}}
Β Β 
Β 
== πŸ› οΈ [[:Category:Building|Building]] ==
Β 
== πŸ› οΈ [[:Category:Building|Building]] ==
Line 19: Line 20:
Β 
* [[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 ===
Line 41: Line 42:
Β 
== πŸŽ‰ [[:Category:Releases|Releasing]] ==
Β 
== πŸŽ‰ [[:Category:Releases|Releasing]] ==
Β Β 
βˆ’
* The next major release will be '''GNU Octave 7.1'''. The release procedure has not yet started.Β  Use '''[[6.1 Release Checklist]]''' as template for organization.
+
* The next major release will be [[7.1 Release Checklist | '''GNU Octave 7.1.0''']] (beginning of 2022).
βˆ’
* The next minor release will be '''GNU Octave 6.3.0'''. The release procedure has started and progress may be tracked on the [[6.3 Release Checklist]] page.
+
* The next minor release will be '''GNU Octave 7.2.0''' (after major release).
βˆ’
* [[:Category:Releases|Older releases]]
+
* [[Release History]]
Β +
* [[:Category:Releases|Old release checklists]]
Β 
* "Nightly" Octave releases on https://octave.space
Β 
* "Nightly" Octave releases on https://octave.space
Β Β 
Line 53: Line 55:
Β 
:''See also [[JWE Project Ideas]] for additional info about some of these items.''
Β 
:''See also [[JWE Project Ideas]] for additional info about some of these items.''
Β Β 
βˆ’
* Bug fixes, especially those related to compatibility issues.
+
==== Large New Features ====
βˆ’
* Work through the open bug reports for which patches have been submitted. Review/apply/reject and close as many of these reports as possible.
+
* 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)
βˆ’
* Refactor/rewrite code for handling load path.
+
* Compatible local functions
βˆ’
* Refactor/rewrite exist and which functions.
+
* Compatible string class
βˆ’
* Create a low-level interface to HDF5 functions.
+
** Define class itself ([[https://github.com/apjanke/octave-tablicious/inst initial implementation]?)
βˆ’
* Support Matlab's HDF5-based MAT file format using the proposed low-level interface to HDF5 functions.
+
** Construct strings objects from double quoted strings (painful transition).
βˆ’
** Allow all types of function handles to be saved and loaded.
+
* Compatible table class ([https://github.com/apjanke/octave-tablicious initial implementation]?)
βˆ’
** Allow [[classdef]] objects to be saved and loaded.
+
* Create a low-level interface to HDF5 functions
βˆ’
* Replace the [[GUI terminal widget|terminal widget in the GUI]].
+
** Support Matlab's HDF5-based MAT file format using the proposed low-level interface to HDF5 functions
βˆ’
* Accept Matlab's new argument validation syntax in parser.
+
** 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 =
Β 
= πŸ’‘ [[:Category:Project_Ideas|Project ideas]] and work in progress =

Latest revision as of 17:32, 23 November 2021

This page contains links to pages of interest to Octave developers.

πŸ’‘ Getting started πŸ”°[edit]

πŸ”¬ Octave development[edit]

Info icon.svg
Attend our next Online Developer Meeting πŸ™‚πŸ’¬ (See all previous meetings)

πŸ› οΈ Building[edit]

πŸ”§ 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]

πŸŽ‰ Releasing[edit]

🎯 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]

Other[edit]