JWE Project Ideas: Difference between revisions

no edit summary
No edit summary
Line 36: Line 36:
* Performance issues
* Performance issues
* Lack of WYSIWYG
* Lack of WYSIWYG
* Duplication of effort with FLTK and Qt widgets.  With the rest of the GUI using Qt widgets, we should eliminte the FLTK plotting widget.  To do that, we will need to make the Qt plotting widget work when Octave is started with --no-gui and ensure that all features in the FLTK widget are also present in the Qt widget.
* Duplication of effort with FLTK and Qt widgets.  With the rest of
* the GUI using Qt widgets, we should eliminte the FLTK plotting widget.  To do that, we will need to make the Qt plotting widget work when Octave is started with --no-gui and ensure that all features in the FLTK widget are also present in the Qt widget.


=== Improvements to classdef (the Matlab object-oriented programming framework) ===
=== Improvements to classdef (the Matlab object-oriented programming framework) ===
Line 42: Line 43:
* Resolve remaining Matlab compatibility issues.
* Resolve remaining Matlab compatibility issues.
* Make it possible to load and save classdef objects.
* Make it possible to load and save classdef objects.
* Improve and simplify the implementation.  Although the basic
* Improve and simplify the implementation.  Although the basic features that are implemented now appear to mostly work, the implementation seems overly complicated, making it difficult to debug and modify.  There seems to be quite a bit of room for improvement here.
  features that are implemented now appear to mostly work, the
  implementation seems overly complicated, making it difficult to
  debug and modify.  There seems to be quite a bit of room for
  improvement here.


=== String class ===
=== String class ===


* Matlab now uses "" to create string objects that behave
Matlab now uses "" to create string objects that behave differently from Octave double-quoted strings.
  differently from Octave double-quoted strings.


=== Handle UTF-8 (or whatever) characters properly ===
=== Handle UTF-8 (or whatever) characters properly ===


* Try to do this in a Matlab-compatible way.
Try to do this in a Matlab-compatible way.


=== Handle single and integer values for ranges ===
=== Handle single and integer values for ranges ===
Line 92: Line 88:
* Use C++11 features where possible.
* Use C++11 features where possible.
* Better and more complete use of C++ namespaces.
* Better and more complete use of C++ namespaces.
* Better use of C++ features.  Especially standard library features
* Better use of C++ features.  Especially standard library features as their implementation becomes more widely available.  For example, we might be able to simplify some things in Octave by using the C++17 filesystem and special functions libraries, if they provide results that are at least as good what we are using now.
  as their implementation becomes more widely available.  For
  example, we might be able to simplify some things in Octave by
  using the C++17 filesystem and special functions libraries, if
  they provide results that are at least as good what we are using
  now.


=== Eliminate C preprocessor macros where possible ===
=== Eliminate C preprocessor macros where possible ===
Line 108: Line 99:
=== Documentation ===
=== Documentation ===


* Continue to improve Doxygen documentation for Octave internals to
* Continue to improve Doxygen documentation for Octave internals to make it easier for new contributors to understand the Octave code base.
  make it easier for new contributors to understand the Octave code
  base.


=== JIT compiler ===
=== JIT compiler ===