Skip to content

Commit

Permalink
Version bump.
Browse files Browse the repository at this point in the history
  • Loading branch information
RazrFalcon committed Jun 29, 2024
1 parent 23bfc13 commit afe7320
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 10 deletions.
9 changes: 8 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).

## [Unreleased]

## [0.15.0] - 2024-06-29
- Sync with HarfBuzz 8.5.0 🎉<br>
`rustybuzz` is finally in-sync with `harfbuzz`.
Thanks to [@LaurenzV](https://github.com/LaurenzV).

### Fixed
- `gvar` phantom points handling which fixes some variable fonts shaping.

Expand Down Expand Up @@ -194,7 +200,8 @@ At this point, this is just a simple Rust bindings to a stripped down harfbuzz.
Embedded harfbuzz relies only on internal TrueType implementation.
- Most of the non-shaping harfbuzz API.

[Unreleased]: https://github.com/RazrFalcon/rustybuzz/compare/v0.14.1...HEAD
[Unreleased]: https://github.com/RazrFalcon/rustybuzz/compare/v0.15.0...HEAD
[0.15.0]: https://github.com/RazrFalcon/rustybuzz/compare/v0.14.1...v0.15.0
[0.14.1]: https://github.com/RazrFalcon/rustybuzz/compare/v0.14.0...v0.14.1
[0.14.0]: https://github.com/RazrFalcon/rustybuzz/compare/v0.13.0...v0.14.0
[0.13.0]: https://github.com/RazrFalcon/rustybuzz/compare/v0.12.1...v0.13.0
Expand Down
5 changes: 2 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "rustybuzz"
version = "0.14.1"
version = "0.15.0"
authors = ["Evgeniy Reizner <[email protected]>"]
edition = "2021"
description = "A complete harfbuzz shaping algorithm port to Rust."
Expand All @@ -23,8 +23,7 @@ unicode-script = "0.5.2"
libm = { version = "0.2.2", optional = true }

[dependencies.ttf-parser]
git = "https://github.com/RazrFalcon/ttf-parser"
rev = "0fd9707"
version = "0.22.0"
default-features = false
features = [
"opentype-layout",
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,21 +54,21 @@ Subsetting was removed. Unicode code was mostly moved to external crates.
We don't need custom containers because Rust's std is good enough.
And we do not use any non Rust libraries, so no glue code either.

In the end, we still have around 20 KLOC. While harfbuzz is around 80 KLOC.
In the end, we still have around 23 KLOC. While harfbuzz is around 80 KLOC.

## Lines of code

As mentioned above, rustybuzz has around 20 KLOC. But this is not strictly true,
As mentioned above, rustybuzz has around 23 KLOC. But this is not strictly true,
because there are a lot of auto-generated data tables.

You can find the "real" code size using:

```sh
tokei --exclude unicode_norm.rs --exclude complex/vowel_constraints.rs \
tokei --exclude hb/unicode_norm.rs --exclude hb/ot_shaper_vowel_constraints.rs \
--exclude '*_machine.rs' --exclude '*_table.rs' src
```

Which gives us around 13 KLOC, which is still a lot.
Which gives us around 17 KLOC, which is still a lot.

## Future work

Expand All @@ -87,10 +87,10 @@ so that bugs specific to `rustybuzz` can be tested as well.
- **Fuzzing against harfbuzz**: While `rustybuzz` passes the whole `harfbuzz` test suite, this does not mean that
output will always be 100% identical to `harfbuzz`. Given the complexity of the code base, there are bound to be
other bugs that just have not been discovered yet. One potential way of addressing this issue could be to create a
fuzzer that takes random fonts, and shapes them with a random set of Unicode codepoints as well as
fuzzer that takes random fonts, and shapes them with a random set of Unicode codepoints as well as
input settings. In case of a discovered discrepancy, this test case could then be investigated and once the
bug has been identified, added to our custom test suite. On the one hand we could use the Google Fonts font
collection for this so that the fonts can be added to the repository,
collection for this so that the fonts can be added to the repository,
but we could also just use MacOS/Windows system fonts and only test them in CI, similarly
to how it's currently done for AAT in `harfbuzz`.
- **Performance**: `harfbuzz` contains tons of optimization structures
Expand Down

0 comments on commit afe7320

Please sign in to comment.