Make some changes to README.md with things to do.

This commit is contained in:
Calvin Rose 2017-06-10 17:44:02 -04:00
parent abbe6b13f1
commit a382c62db8
2 changed files with 29 additions and 1 deletions

View File

@ -40,3 +40,32 @@ client directory, so running a program `script.gst` from the project directory
client/gst script.gst
```
## Todo
* Use serialization to allow creation of bytecode files that can be loaded.
This includes defining a file format for the bytecode files.
* Better error messages, expecially for compilation. This probably means string
formating functions.
* Pattern matching/regex library.
* Macro/specials system that happens before compilation
* Module system that happens before compilation. This would be closely tied to
the macro/specials system (require implemented as compile time special). For
now, a runtime require might make more sense.
* Change name (gst is the name of many projects, including GNU Smalltalk).
Maybe make logo :)?
* Automated testing, including Makefile target.
* Travis CI.
* Change C API to be stack based for fewer potential memory management
problems. This could mean making current C API internal and use separate
API externally.
* Store source information in parallel data structure after parsing
* Use source information during compilation
* Bitwise operators that operate on integer types
* Use Lua style memory alocator backend C API (one single function for
allocating/reallocating/freeing memory).
* More CLI functionality for main client
* Document builtin libraries and functions.
* Document C API.
* More builtin libraires.
* Fuzzing

View File

@ -42,7 +42,6 @@ int debug_compile_and_run(Gst *vm, GstValue ast, GstValue last) {
gst_compiler_usemodule(&c, "std.parse");
gst_compiler_usemodule(&c, "std.compile");
gst_compiler_global(&c, "_", last);
gst_compiler_globals(&c, gst_wrap_table(vm->registry));
func = gst_wrap_function(gst_compiler_compile(&c, ast));
/* Check for compilation errors */
if (c.error.type != GST_NIL) {