Hello, everyone,

The goal of the Bithenge project is to make structured binary data
easier to deal with in a variety of ways. I successfully implemented the
core functionality: a HelenOS-compatible library and program that can
parse a script describing a binary format and apply it to data, printing
the decoded result. By the end of GSoC, the script language was powerful
enough for a FAT script[0] capable of decoding all major information
from FAT12/16 filesystems while being simpler and more readable than it
would be in a general-purpose language. The library also provides a
number of building blocks for future functionality.

Because of poor planning on my part, I failed to implement several
features included in my schedules. The major ones are editing support, C
code generation from scripts, DWARF reading, and an interactive browser.
I want to continue working on Bithenge after GSoC and at least start
implementation of these features, and of course others are welcome to
join in. Other issues and ideas of various scopes are listed in the
wiki[1].

After the soft deadline on the 13th, most of my work was on testing. I
extended the test scripts to improve coverage and added correct output
files to compare against, allowing automated black-box testing. In
HelenOS, "batch test.bdsh" in src/bithenge runs bithenge on each of the
test files, checking the result with a cmp command I added to bdsh. In
Linux, more advanced testing is possible; I use failure injection to
reach almost 90% line coverage and Valgrind to check for memory-related
errors. Most of the remaining untested areas are unused code or code
that handles invalid input.

I also made bithenge into a library in uspace/lib/bithenge, fixed the
Doxygen documentation, and replaced the old wiki page with four expanded
new ones[2]. In particular, there is now much more documentation about
the language syntax.

Thanks,
Sean Bartell

[0] 
https://bazaar.launchpad.net/~wtachi/helenos/bithenge/view/head:/uspace/dist/src/bithenge/fat.bh
[1] http://trac.helenos.org/wiki/Bithenge/Design
[2] http://trac.helenos.org/wiki/Bithenge

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

Reply via email to