Hello, everyone, I started working on my project early to compensate for a future vacation, so this was my first day of real work. However, I also spent some time in the past two weeks researching existing work related to my project. I've updated the wiki page[0] with my findings and some other thoughts.
I spent some time thinking of a project name. My favorite idea is "Bithenge" or "Bytehenge," since it works with binary structures :). Most existing projects use a simple imperative language (either an existing scripting language or a new domain-specific language) to define data structures. The basic commands define fields and read basic data types, but there are also expressions and control flow commands (if/while/break). It's very similar to reading the data with a general-purpose language except that reading the basic fields and formatting the output are easier. This approach is easy to understand, and general enough to work with complicated structures. One of the main disadvantages is that file modifications must be either trivial or coded by hand--the tools aren't smart enough to handle a structure changing length easily. Another problem is that the data can only be interpreted in one way; if you want to see the raw Unix time instead of a formatted date, you have to change the structure description. In order to address these shortcomings, I came up with the following set of requirements for my project: - Be portable enough to run in HelenOS. C (and maybe Lua) only! - Handle viewing the data in different ways; for instance, choose between viewing a formatted date, the integers, and the raw bytes in a FAT entry. - Check whether the data is valid and handle invalid data reasonably well. - Parse the data lazily, so structures are only read when you want to view them. - Work fully in both directions (parsing and modifying) without too much extra effort when specifying the format. I haven't spent much time learning about Bazaar or HelenOS yet, and I think I'll delay that until later when I start working with them. I have some more existing projects to investigate, but after that I'll spend the next week or two working on the basic design of my project. I want to consider both an ambitious design that might be difficult to implement and a more basic design I know is feasible. Ideas? Questions? Complaints? Thanks, Sean Bartell [0] http://trac.helenos.org/wiki/StructuredBinaryData _______________________________________________ HelenOS-devel mailing list [email protected] http://lists.modry.cz/cgi-bin/listinfo/helenos-devel
