- Reflection of default constructors now works, allowing objects to be created via reflection.
- Started implementing the standard hash functions (using MurmurHash). This is needed so I can write a HashTable collection.
- Sketched out a few more i/o classes and interfaces.
- Added a new linker pass that attempts to calculate the overhead of reflection. The largest chunk is the strings representing class and method names.
- Started work on Tart implementation of String.format.
- Tracking down bugs.
Unfortunately, there are a number of issues that are vexing me and won't go away. This includes:
- CMake making me crazy.
- I have two libraries, almost identical - yet when I declare both libs to be a dependency of a custom target, only one gets rebuilt. I can force CMake to build the second one by explicitly giving the name on the command line, but it fails as a dependency.
- Another CMake problem is that I can't seem to make a rule that causes dsymutil to run on OS X but not on Linux.
- And yet another issue is that CMake's lack of extensibility means that there's no way to scan a Tart module for dependencies. I'm constantly running into problems where a module is out of sync with one that it is based on. (Eventually I am going to make my own Tart-based built tool, "mint", but that's a long ways off.) I do have the dependency info embedded in the generated module (using metadata nodes), but there's nothing that can read it.
- However, being able to generate an eclipse / MSVC / makefile project is just too useful to give up. So I don't want to migrate away from CMake.
- Several of the unit tests fail when LLVM optimization is turned on, and I can't figure out why.
- Still haven't been able to generate correct DWARF info for parameters and local vars. Also, I sort of figured out how to get my exception personality function to "see" the stack trace (using dlsym), but unfortunately none of the LLVM-generated functions appear on it - only the ones written in C.
- LLVM IR is so hard to read, what the world really needs is a graphical browser for global variables and functions.
-- Talin
No comments:
Post a Comment