Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/windirstat/llfio.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNiall Douglas (s [underscore] sourceforge {at} nedprod [dot] com) <spamtrap@nedprod.com>2018-04-06 19:13:03 +0300
committerNiall Douglas (s [underscore] sourceforge {at} nedprod [dot] com) <spamtrap@nedprod.com>2018-04-06 19:13:03 +0300
commitd0c561c7d38af021411c41a0161188a241364ac6 (patch)
tree28999afce9243a4c7777e7fbe0037ca92c6c0dd7 /Readme.md
parent5b26598774ec4ec67ceea1ed5cad4bcb791471e2 (diff)
Added non-volatile memory support.
Renamed mapped_view to mapped_span. Now using bug fixed Outcome, KernelTest horribly breaks, will fix it up later, but otherwise compiles fine.
Diffstat (limited to 'Readme.md')
-rw-r--r--Readme.md19
1 files changed, 16 insertions, 3 deletions
diff --git a/Readme.md b/Readme.md
index 21b90a46..aeadebb6 100644
--- a/Readme.md
+++ b/Readme.md
@@ -11,10 +11,24 @@ Tarballs of source and prebuilt binaries for Linux x64, MacOS x64 and Windows x6
### Immediate todos in order of priority:
- [x] Implement new custom C++ exception synthesis support from Outcome.
-- [ ] Finish trivial vector, which is unfinished and currently segfaults.
-- [ ] Run clang-tidy fix pass, it's got a bit untidy recently.
+- [x] Finish trivial vector, which is unfinished and currently segfaults.
+- [x] Run clang-tidy fix pass, it's got a bit untidy recently.
+- [ ] Add OS X support to `storage_profile`, this should complete the Mac OS port.
+- [x] Fix all known bugs in Outcome, plus reorg source code in prep for `status_code`.
+- [ ] Implement SG14 `status_code` as a standalone library and test in AFIO.
+- [ ] Single include generation now we're on `status_code` and it's safe.
- [ ] `atomic_append` isn't actually being tested in shared_fs_mutex
- [ ] Implement a non-toy ACID key-value BLOB store and send it to Boost for peer review.
+ - [ ] For this need to implement a file-based B+ tree. And for that, need to
+ implement a page allocator out of a single file. Some notes:
+
+ B+ trees would be based on the 4Kb page for memory mapping, and thus allocate and release whole 4Kb pages.
+
+ A simple page allocator from a file might simply keep some magic at the top, and then a list of offsets to free pages for the remainder of the page. That might be (4096 – 12) / 4 = 1021 slots (remember these are 42 bit offsets, so simply limit to 32 bit offsets << 12).
+
+ Each free page links to its next free page. Freeing a page means modulus its address >> 12 with 1021, and CASing it into its “slot” as its linked list.
+
+ Allocating pages involves iterating a round robin index, pulling free pages off the top. Only if no free pages remain do we atomic append 1021 * 4096 = 4,182,016 bytes and refill the free page index.
- [ ] All time based kernel tests need to use soak test based API and auto adjust to
valgrind.
- [ ] In DEBUG builds, have io_handle always not fill buffers passed to remind
@@ -22,7 +36,6 @@ people to use pointers returned!
- KernelTest needs to be generating each test kernel as a standalone DLL so it can be
fuzzed, coverage calculated, bloat calculated, ABI dumped etc
- Easy coverage is the usual gcov route => coveralls.io or gcovr http://gcovr.com/guide.html
-- [ ] Single include generation
### clang AST parser based todos which await me getting back into the clang AST parser: