@@ -1,5 +1,17 @@
2014-09-23 David Malcolm <dmalcolm@redhat.com>
+ * TODO.rst: Rename "Initial Release" section to "API", and
+ remove completed items: builtins, docs, pkgconfig file, fuzz
+ testing. Move ability to name contexts and stmt_list per block
+ ideas to a new "Nice to have" section and note that it might be
+ better to go straight to gimple.
+ Move code coverage to "Test suite" section.
+ Add a "Probably not needed" section, moving some items to it.
+ Note that we're still missing shift operators.
+ Add idea that we could warn about unused objects in a context.
+
+2014-09-23 David Malcolm <dmalcolm@redhat.com>
+
* docs/examples/tut03-toyvm/toyvm.c: Include <dejagnu.h>.
Add missing typedef of compilation_state.
(toyvm_function_parse): Add "name param.
@@ -1,8 +1,8 @@
TODOs
-----
-Initial Release
-===============
+API
+===
* error-handling:
* have a client-provided error-handling callback for the context, and
call it, rather than asserting/crashing etc, to make the API resilient and helpful
@@ -49,18 +49,14 @@ Initial Release
be better? (for expressing how hot the current location is)
-* ability to give contexts names, for ease of debugging?
-
-* can we call into GCC builtins? What might people need?
-
-* docs
-
* add a SONAME to the library (and potentially version the symbols?)
* do we need alternative forms of division (floor vs rounding)?
* are we missing any ops?
+ * shift operators
+
* error-checking:
* gcc_jit_context_new_unary_op: various checks needed
@@ -77,11 +73,6 @@ Initial Release
* gcc_jit_block_add_assignment_op: check the types
-* Currently each function has a single stmt_list, which is built in
- postprocessing by walking the list of blocks. Presumably we could
- have each block have its own stmt_list, avoiding the need for this
- traversal, and having the block structure show up within tree dumps.
-
* Implement more kinds of casts e.g. pointers
Bugs
@@ -91,8 +82,6 @@ Bugs
* make the dirty dirty hacks less egregious...
-* pkgconfig .pc file
-
* test under valgrind; fix memory leaks
* re-architect gcc so we don't have to reinitialize everything every time
@@ -102,23 +91,36 @@ Test suite
==========
* get DejaGnu to build and run C++ testcases
+* measure code coverage in testing of libgccjit.so
+
Future milestones
=================
* try porting llvmpipe to gcc
-* fuzz testing
-
* inline assembler?
-* measure code coverage in testing of libgccjit.so
+* Detect and issue warnings/errors about uses of uninitialized variables
-* "switch" and "case" ?
+* Warn about unused objects in a context (e.g. rvalues/lvalues)?
-* Detect and issue warnings/errors about uses of uninitialized variables
+Nice to have
+============
+* Currently each function has a single stmt_list, which is built in
+ postprocessing by walking the list of blocks. Presumably we could
+ have each block have its own stmt_list, avoiding the need for this
+ traversal, and having the block structure show up within tree dumps.
+ Alternatively, could we skip tree and go straight to gimple?
+
+* ability to give contexts names, for ease of debugging?
+
+
+Probably not needed
+===================
+* "switch" and "case" ?
-* do we need unary plus?
-* shift operators?
* sizeof (should this be an API hook?) do we even need it? presumably
client code can just do the sizeof() in its own code.
+* do we need unary plus?
+
etc etc