However, I did manage to get one thing done, which is that I wrote a new container class - Deque. I'm pretty pleased with the way it turned out. This is also the first container class that includes a fast-fail mutation guard - that is, it will detect if you've mutated the container while iterating, and throw an exception. Eventually I'll want to add this to some of the other containers as well.
Also, the expression "typename?" is now a shortcut for "optional typename" which is a shortcut for "typename or Null". Originally I didn't like the way the question mark looked, however I've realized that "optional" has a number of problems due to the fact that it's a prefix, and most type modifiers in Tart are suffixes. Mixing suffixes and prefixes is a bad idea, as witnessed by the continual confusion they create in C++ with expressions like "int * items[]". There's also the fact that "optional" really means "nullable", which is a slightly different concept. So the "optional" keyword is eventually going to go away.
Overall, we are really, really close to satisfying all my self-imposed criteria for an 0.1 release of Tart. Really, there's only a small number of tasks that need to be done:
- Get the unit tests to run on 32-bit OS X (currently they all segfault).
- Test "make install" and fix any bugs.
- Finish revising the language intro doc (currently about 2/3 done.)
- Get readLine() implemented.
In fact, I'd be willing to say that only the first two of those should really be a release blocker.
No comments:
Post a Comment