JWE Project Ideas: Difference between revisions

Jump to navigation Jump to search
No edit summary
Line 87: Line 87:
== Code quality ==
== Code quality ==


** 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 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.
* 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.
** Use const in more parse tree functions.
* Use const in more parse tree functions.
** remove, replace, or at least rename the "added static" concept in the symbol_record class.
* 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.
* Should not expose symbol_record in call_stack functions if possible.
** Remove unused symbol_table/scope/record functions.
* Remove unused symbol_table/scope/record functions.
** Do recursive functions work properly with load/save now?
* Do recursive functions work properly with load/save now?
** Use enums for options internally (typically to replace bool values).
* Use enums for options internally (typically to replace bool values).
** Audit global variables and eliminate them where possible.
* Audit global variables and eliminate them where possible.
** Audit use of panic_* functions and replace with calls to error 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.
* 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).
* 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.
* Tag for built-in functions to specify maxiumum number of inputs.


== Windows distribution ==
== Windows distribution ==

Navigation menu