JWE Project Ideas: Difference between revisions

Jump to navigation Jump to search
m
No edit summary
m (→‎GUI command window: Add wiki link)
(5 intermediate revisions by one other user not shown)
Line 1: Line 1:
* Improve interface for communication between GUI and interpreter
=== Improve interface for communication between GUI and interpreter ===


Currently, communication between the GUI and the interpreter
Currently, communication between the GUI and the interpreter
Line 8: Line 8:
would be more flexible and reliable.
would be more flexible and reliable.


* GUI command window
=== [[GUI terminal widget|GUI command window]] ===


The implementation of the GUI command window for Unix-like systems
The implementation of the GUI command window for Unix-like systems
Line 18: Line 18:
could be improved.
could be improved.


* Interrupt handling in the GUI
=== Interrupt handling in the GUI ===


This issue is related to the GUI command window.  Interrupt
This issue is related to the GUI command window.  Interrupt
Line 27: Line 27:
find a way to reliably interrupt the interpreter.
find a way to reliably interrupt the interpreter.


* Generating publication-quality figures
=== Generating publication-quality figures ===


Generating EPS or PDF versions of figures needs improvement.
Generating EPS or PDF versions of figures needs improvement.


* OpenGL graphics system issues
=== OpenGL graphics system issues ===
** Scaling plot data values/ranges to fit in single-precision OpenGL values
** Performance issues
** 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.


* Improvements to classdef (the Matlab object-oriented program framework)
* Scaling plot data values/ranges to fit in single-precision OpenGL values
** Resolve remaining Matlab compatibility issues.
* Performance issues
** Make it possible to load and save classdef objects.
* Lack of WYSIWYG
** Improve and simplify the implementationAlthough the basic
* Duplication of effort with FLTK and Qt widgets. With the rest of
  features that are implemented now appear to mostly work, the
* the GUI using Qt widgets, we should eliminte the FLTK plotting widgetTo 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.
  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
=== Improvements to classdef (the Matlab object-oriented programming framework) ===


** Matlab now uses "" to create string objects that behave
* Resolve remaining Matlab compatibility issues.
differently from Octave double-quoted strings.
* Make it possible to load and save classdef objects.
* 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.


* Handle UTF-8 (or whatever) characters properly
=== String class ===


** Try to do this in a Matlab-compatible way.
Matlab now uses "" to create string objects that behave differently from Octave double-quoted strings.


* Handle single and integer values for ranges
=== Handle UTF-8 (or whatever) characters properly ===


* Local functions
Try to do this in a Matlab-compatible way.
 
=== Handle single and integer values for ranges ===
 
=== Local functions ===


The semantics for local functions in scripts is different from the
The semantics for local functions in scripts is different from the
Line 67: Line 61:
files.
files.


* Allow large files to be loaded and saved
=== Allow large files to be loaded and saved ===


Make the load and save commands compatible with Matlab's
Make the load and save commands compatible with Matlab's
Line 73: Line 67:
something like this to support large arrays anyway.
something like this to support large arrays anyway.


* Matlab packages (+DIR directories in the loadpath; relate classdef)
=== Matlab packages (+DIR directories in the loadpath; related to classdef) ===


Octave already searches for files in package directories and
Octave already searches for files in package directories and
Line 80: Line 74:
it efficiently and in a way that is compatible with Matlab.
it efficiently and in a way that is compatible with Matlab.


* Toolboxes
=== Toolboxes ===


Move some core toolboxes (communications, control systems, image
Move some core toolboxes (communications, control systems, image
Line 90: Line 84:
equations package have already been moved to Octave.
equations package have already been moved to Octave.


* General code quality improvements
=== General code quality improvements ===
** Use C++11 features where possible.
** Better and more complete use of C++ namespaces.
** 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.


* Use C++11 features where possible.
* Better and more complete use of C++ namespaces.
* 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.
* Eliminate C preprocessor macros where possible
* Eliminate C preprocessor macros where possible


* GUI code editor
=== GUI code editor ===


Make it possible to use external editors such as Emacs, vim, or
Make it possible to use external editors such as Emacs, vim, or
others with the GUI in addition to Octave's built-in code editor
others with the GUI in addition to Octave's built-in code editor


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


* JIT compiler
=== JIT compiler ===


A proof-of-concept implementation was done several years ago by a
A proof-of-concept implementation was done several years ago by a
Line 124: Line 112:
and Octave internals.
and Octave internals.


* Windows distribution
=== Windows distribution ===


Eliminate the following msys packages.  Some might be removed
Eliminate the following msys packages.  Some might be removed
216

edits

Navigation menu