Remove some TODO items

Signed-off-by: Gavin Howard <gavin@yzena.com>
master
Gavin D. Howard 2 months ago
parent cf0fb4bd25
commit dd8a14f3c8
Signed by: gavin
GPG Key ID: F890265DD80E4E90

@ -4,11 +4,8 @@
This is in order of priority.
0. Add `__attribute__((warn_unused_result))` to clang only. (GCC is not okay.)
0. Add debug versions of the function enter and exit macros.
1. Change every function to use the above macros.
2. Implement Yvm.
3. Implement Yvm Interpreter.
1. Implement Yvm.
2. Implement Yvm Interpreter.
* Implement permissions and capabilities.
* Implement translation of value names to indices and back.
* Have three stackpools:
@ -18,20 +15,13 @@ This is in order of priority.
* This requires that there is no "address of" instruction.
* Instead, everything that needs an address must be stack allocated.
* Could also use the above design for the C backend.
4. Change Yao Standard Library to Have Keywords.
5. Change Yao Lexer and Parser to Use Packages.
* This includes using the `rig` package properly, with its own keywords.
6. Change Yao Lexer and Parser to Generate Yvm.
* Keep track of temporaries for each statment.
* Use those as feeders into the list of BB arguments.
7. Add Variables to Yao.
8. Add Control Flow to Yao.
3. Add Variables to Yao.
4. Add Control Flow to Yao.
* `if` statements.
* `for` loops.
* `while` loops.
9. Add Compiler and Platform Database to Rig.
10. Add Functions to Yao.
11. Change All Relevant Allocations to Use Stackpools.
5. Add Compiler and Platform Database to Rig.
6. Change All Relevant Allocations to Use Stackpools.
* Obviously, if something needs to be dynamically allocated, it should be.
* But all dynamic allocations should have their root in a stackpool.
* Things that need to be dynamically allocated include:
@ -41,17 +31,17 @@ This is in order of priority.
* Also, make a way to attach mutex and other lock unlocking to stackpools.
* Probably allocate a pointer to the lock.
* Make sure to use a scope opener beforehand.
12. Add a Way for Users to Say Which Env Vars to Save with `rigc`.
13. Tie Config in with Build in Rig.
7. Add a Way for Users to Say Which Env Vars to Save with `rigc`.
8. Tie Config in with Build in Rig.
* Make the config constant.
* If the user wants to have choices, they should define multiple and pick
one when executing a target.
14. Bootstrap on Mac OSX.
15. Bootstrap on Windows.
16. Finish GAML fuzz program.
17. Finish Cryptopals.
9. Bootstrap on Mac OSX.
10. Bootstrap on Windows.
11. Finish GAML fuzz program.
12. Finish Cryptopals.
* This is for Yar.
18. Make a context stack for random number generators.
13. Make a context stack for random number generators.
## Testing
@ -79,8 +69,6 @@ This is in order of priority.
* Add commands to opt parsing.
* Add base64 and base16 encoding.
* Tweak ternary in style?
* A Type type, to define size, destructor, copy function, etc.
* Also distinguish between primitives, pointers, and structs.
* A `copy()` function that uses the Type `copy()` function.
* A `move()` function that uses `memcpy()` and then zeroes the source.
* Add design-by-contract facilities, if possible. See the Ada book.
@ -100,13 +88,8 @@ This is in order of priority.
* A function to make soft and hard links.
* `chroot`.
* Various allocators.
* Stack allocator, like `alloca()`, except that it doesn't directly use the
stack.
* Slab allocator.
* Allocator by Type.
* Have two kinds of allocators:
* A stack-like allocator that can only deallocate in reverse order.
* A general-purpose allocator.
* Fixed Point numbers.
* Connecting to items on the Internet.
* Sockets, etc.
@ -118,7 +101,6 @@ This is in order of priority.
* Serialization and deserialization.
* Owned references, borrowed references, and a way to access parent pointers, if
possible. (To remove the need for weak references, for example.)
* Add build option to remove `y` and `Y` prefixes. This will be done by macros.
* Html templating engine.
* GAML parsing and dumping.
* Use base64 or base16 for binary data, and support that natively? Probably
@ -148,10 +130,6 @@ This is in order of priority.
* Cancel Tokens with deadlines (not timeouts) and also programmatic
cancellation.
* Shell parsing (just commands like `shlex` in Python).
* Yao.
* Make compatible with C by allowing packages to specify function and type
prefixes. Also, have default ones. This is to prevent name mangling from
being a thing.
* Benchmark how long it takes to do a clock_gettime().
* Benchmark arithmetic implementations versus gcc/clang builtins.
* Yesno.

Loading…
Cancel
Save