Skip to content

v1.1: A critical bug fix, a nice-to-have feature, and better tooling

Compare
Choose a tag to compare
@apparebit apparebit released this 17 Oct 21:33
· 166 commits to boss since this release
de5d7c9

User-Visible Changes

This release makes the following major changes:

  • It fixes a crashing bug for mirrored CLDR files.
  • It improves terminal input/output, notably by --incrementally/-I displaying character blots. That does markedly slow down tool output. But it also allows for measuring the size of character blots by querying the terminal.

Internal Changes

This release also makes significant internal changes. Notably, the UCD implementation is becoming more uniform and more decoupled. The long-term goal is to provide a generally useful UCD abstraction that may not be the fastest but has excellent support for exploratory coding against the UCD.

The development setup has also been updated. Instead of mypy, demicode now uses pyright for type-checking. In my experience, pyright is more accurate than mypy for the same annotations. It has also surfaced two very subtle bugs. They both are fixed.

The runtest.py script runs both type checker and unit tests. Tests are based on Python's unittest package because I find pytest too invasive and too magical, which always ends up interfering with tests in the long term. Unfortunately, unittest is rather baroque and hard to extend because (1) its interfaces are too wide and (2) it hides critical state. The test.runtime module introduces adapter classes that fix these issues for unittest.TestCase and unittest.TestResult. The test script uses them to provide more readable and helpful output.