JWE Project Ideas: Difference between revisions
Jump to navigation
Jump to search
m (Protected "JWE Project Ideas" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)) [cascading]) |
|||
Line 3: | Line 3: | ||
'''2021-11-19: This page is out of date -- jwe''' | '''2021-11-19: This page is out of date -- jwe''' | ||
== | == Project Ideas == | ||
The following are projects that I'm interested in working on, roughly | |||
prioritized by my level of interest. I intend to provide expanded explanations of each project. | |||
=== | === Comment parsing === | ||
Refactor comment handling in lexer and parser. | |||
=== | === MException object === | ||
=== FTLK graphics widget === | |||
Eliminate fltk graphics widget or move to external package. | |||
=== gnuplot graphics widget === | |||
Eliminate gnuplot graphics widget or move to external package. | |||
=== | === Function objects === | ||
Refactor function objects. | |||
=== | === arguments blocks === | ||
Finish implementation of Mmatlab-compatible argument validation blocks. | |||
=== | === local functions === | ||
Matlab | Implement Matlab-compatible local functions in script files. | ||
=== | === string object === | ||
=== load_path class === | |||
Refactor (or rewrite) load_path class. | |||
=== | === Broadcasting === | ||
* Refactor broadcasting. | |||
* Make broadcasting work for sparse matrices. | |||
=== | === GUI command widget === | ||
Make common command widget for Windows and Unixy systems work well enough to become the default command line interface for the GUI. | |||
=== | === OpenGL graphics === | ||
Modernize our use of OpenGL graphics to use shader programs instead of the legacy OpenGL API. | |||
=== | === classdef === | ||
Refactor (or rewrite) classdef implementation. | |||
=== | === Qt graphics widget === | ||
Refactor (or rewrite) Qt graphics widget. | |||
=== | === graphics properties === | ||
Refactor graphics properties classes. | |||
=== graphics threading issues === | |||
Fix handling of graphics properties to be properly thread safe. | |||
=== HDF5 load and save === | |||
Implement Matlab compatible HDF5-based load and save functions. | |||
=== | === External editors === | ||
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. | |||
=== | === who -file === | ||
Fix who -file to just read file and list info, not create dummy scope. | |||
=== | === import === | ||
Make "import" work in a matlab-compatible way === | |||
=== | === Code quality === | ||
** 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. | |||
** Use const in more parse tree functions. | |||
** remove, replace, or at least rename the "added static" concept in the symbol_record class. | |||
** Should not expose symbol_record in call_stack functions if possible. | |||
** Remove unused symbol_table/scope/record functions. | |||
** Do recursive functions work properly with load/save now? | |||
** Use enums for options internally (typically to replace bool values). | |||
** Audit global variables and eliminate them where possible. | |||
** Audit use of panic_* functions and replace with calls to error where possible. | |||
** Fix symbol visibility so we are mostly tagging namespace decls, not individual functions. | |||
** Complete use of dispatch types for functions (search for "classes:" to find the few current examples). | |||
** Tag for built-in functions to specify maxiumum number of inputs. | |||
== GUI == | == GUI == |