From 5f180d1bd02715d60aff30f2eb37bad3f56afca2 Mon Sep 17 00:00:00 2001 From: Jeremy Tregunna Date: Thu, 17 May 2012 07:52:24 -0600 Subject: [PATCH] adds a few more tasks --- doc/TODO.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/TODO.md b/doc/TODO.md index b5a98c7..83a3d3b 100644 --- a/doc/TODO.md +++ b/doc/TODO.md @@ -5,3 +5,7 @@ In no specific order, these are the tasks that are outstanding * Simple type checking on objects internally. Is that object we're getting out of `msg_eval_arg_at()` actually a block? * CMake precompiled header integration. We depend on Clang and to have clang generate a precompiled header, we use the following: `clang -cc1 test.h -emit-pch -o test.h.pch`. Candidates for inclusion include: * * branch_prediction.h +* Garbage Collection — Baker's copying collector or treadmill is preferred for now, will likely move to a different system which includes a one-bit reference counting system once the object persistance and versioning system is in place. +* Object Persistance - We need to be able to serialize all core types into in-memory versions of themselves, suitable for transmission over a wire. Additionally, this representation should be able to be written to a file. +* Object Versioning - An object, much like a commit in distributed version control, must have an implicit version increase upon modifications to the structure. +* Shapes - An object shape is defined as being a hash of the slot names of an object. A shape is like a loose type, and should be an integer. It must be recalculated on any modification to an object that affects the slot table. \ No newline at end of file