Skip to content

Instantly share code, notes, and snippets.

@QuLogic
Last active October 5, 2017 07:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save QuLogic/25c2b6a224348ee7cf4b54bafa8f8408 to your computer and use it in GitHub Desktop.
Save QuLogic/25c2b6a224348ee7cf4b54bafa8f8408 to your computer and use it in GitHub Desktop.
Matplotlib FreeType build failures
Summary:
There are many changes in 2.6.1->2.6.2, but it's very small changes that can be papered
over with 0.1 tolerance. 2.6.4 added a new renderer, but also refactored the original
renderer. 2.6.5 reverted the new renderer, but not the original renderer, so it seems
the new failures remain.
2.6.2:
* 914 failed, 5961 passed, 26 skipped, 3 xfailed, 3 xpassed, 23 warnings
* Almost all of these are invisible, so a small tolerance change works.
* Bumping tolerance to 0.1:
- 5 failed, 6870 passed, 26 skipped, 2 xfailed, 4 xpassed, 23 warnings
- 5 failures are tests that hard-code some tolerances, except for `test_font_scaling`, which
uses many larger fonts that exaggerate the differences.
* If instead, you replace the images, then 2 or 3 continuously fail with really small differences.
* Relevant ChangeLog:
- Auto-hinter supports stem darkening. By default, stem darkening is now switched off.
- `FT_RENDER_MODE_LIGHT' now essentially means `no hinting along the horizontal axis';
in particular, no change of glyph advance widths.
- The default LCD filter has been changed to be normalized and color-balanced.
2.6.3 with tol=0.1:
* 5 failed, 6870 passed, 26 skipped, 2 xfailed, 4 xpassed, 23 warnings
* No obvious changes of consequence.
2.6.3 with files from 2.6.2:
* 2 failed, 6873 passed, 25 skipped, 2 xfailed, 4 xpassed, 23 warnings
2.6.4 with tol=0.1:
* 169 failed, 6706 passed, 26 skipped, 2 xfailed, 4 xpassed, 23 warnings
* Relevant ChangeLog:
- New subpixel hinting mode, which is now the default rendering mode for TrueType fonts,
implements (almost everything of) version 40 of the bytecode engine.
The existing code base in FreeType (the `Infinality code') was stripped to the bare
minimum and all configurability removed in the name of speed and simplicity. The
configurability was mainly aimed at legacy fonts like Arial, Times New Roman, or Courier.
[Legacy fonts are fonts that modify vertical stems to achieve clean black-and-white bitmaps.]
The new mode focuses on applying a minimal set of rules to all fonts indiscriminately so that
modern and web fonts render well while legacy fonts render okay. Activation of the subpixel
hinting support can be controlled with the `TT_CONFIG_OPTION_SUBPIXEL_HINTING' configuration
option at compile time: If set to value 1, you get the old Infinality mode (which was never
the default due to its slowness). Value 2 activates the new subpixel hinting mode, and
value 3 activates both. The default is value 2.
2.6.4 with files from 2.6.2:
* 624 failed, 6251 passed, 25 skipped, 2 xfailed, 4 xpassed, 23 warnings
2.6.5 with tol=0.1:
* 169 failed, 6706 passed, 26 skipped, 2 xfailed, 4 xpassed, 23 warnings
* Relevant ChangeLog:
- New subpixel hinting mode disabled by default; to be enabled in new 2.7.0 release.
2.6.5 with files from 2.6.2:
* 624 failed, 6251 passed, 25 skipped, 2 xfailed, 4 xpassed, 23 warnings
2.7 with tol=0.1:
* 169 failed, 6706 passed, 26 skipped, 2 xfailed, 4 xpassed, 23 warnings
2.7.1 with tol=0.1:
* 169 failed, 6706 passed, 26 skipped, 2 xfailed, 4 xpassed, 23 warnings
2.8 with tol=0.1:
* 996 failed, 5879 passed, 26 skipped, 5 xfailed, 1 xpassed, 23 warnings
2.8.1 with tol=0.1:
* 996 failed, 5879 passed, 26 skipped, 5 xfailed, 1 xpassed, 23 warnings
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment