Hello, everyone,

I've managed to extend my Bithenge FAT script[0] to decode all major
information from FAT16 filesystems, including the directory tree and
file contents. At least, it works on Linux; running it on initrd.img in
HelenOS causes a memory access error partway through, possibly due to
stack overflow. I will investigate this issue. Another problem is that
mainline r1598 seems to have broken libblock (try "blkdump bd/initrd" or
"bithenge fat.bh block:bd/initrd").

The FAT script required a number of new features, including inputless
and partial transforms, subblob and member expressions, and, or, and
concatenation operators, and self-recursion. I will document these
features while creating the new wiki pages, as explained below.
Although the FAT script is much more concise than, say, a C version
would be, it has revealed some areas where the Bithenge syntax could
still be improved.

Yet again, my plan was too optimistic: after thinking about C generation
I realized it would require some sort of type inference, and the most
flexible design might even require a virtual machine. I focused on the
FAT script instead.

This week, up until the 20th, is devoted to finishing what already
exists rather than adding new functionality. I plan to:

- Move the library parts of Bithenge from /uspace/app/ to /uspace/lib/.
  Where should test code go?

- Fill out the wiki documentation. I will create a number of pages under
  Bithenge/ with an overview and detailed information about syntax, the
  API, internals, design decisions and limitations, and future ideas.

- Write a small test suite. I find SQLite's testing[1] inspiring; I
  can't reach anywhere near that level, but I would at least like to use
  Valgrind automatically. I will fix bugs I find while testing.

- Double check the Doxygen comments for all public functions and types.
  I will run Doxygen to make sure I haven't added errors accidentally.

Thanks,
Sean Bartell

[0] 
https://bazaar.launchpad.net/~wtachi/helenos/bithenge/view/head:/uspace/dist/src/bithenge/fat.bh
[1] https://www.sqlite.org/testing.html

_______________________________________________
HelenOS-devel mailing list
[email protected]
http://lists.modry.cz/cgi-bin/listinfo/helenos-devel

Reply via email to