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
