Behdad Esfahbod [Fri, 5 Jan 2018 15:43:11 +0000 (15:43 +0000)]
[khmer] Remove indic_config->virama
Behdad Esfahbod [Fri, 5 Jan 2018 15:41:31 +0000 (15:41 +0000)]
[khmer] Remove indic_config->has_old_spec
Behdad Esfahbod [Fri, 5 Jan 2018 15:36:53 +0000 (15:36 +0000)]
[khmer] Remove Halant from Khmer shaper
Behdad Esfahbod [Fri, 5 Jan 2018 15:33:11 +0000 (15:33 +0000)]
[indic] Remove more Khmer-specific stuff from Indic shaper
No numbers changed.
Behdad Esfahbod [Fri, 5 Jan 2018 15:08:28 +0000 (15:08 +0000)]
[indic] Remove main Khmer stuff
Behdad Esfahbod [Fri, 5 Jan 2018 14:54:31 +0000 (14:54 +0000)]
[khmer] Split off Khmer shaper from Indic
Towards fixing https://github.com/harfbuzz/harfbuzz/issues/667
The Khmer spec is different enough from other Indic ones to require
its own grammar.
No change in functionality. Test numbers are:
BENGALI: 353725 out of 354188 tests passed. 463 failed (0.130722%)
DEVANAGARI: 707307 out of 707394 tests passed. 87 failed (0.0122987%)
GUJARATI: 366355 out of 366457 tests passed. 102 failed (0.0278341%)
GURMUKHI: 60729 out of 60747 tests passed. 18 failed (0.0296311%)
KANNADA: 951300 out of 951913 tests passed. 613 failed (0.0643966%)
KHMER: 299071 out of 299124 tests passed. 53 failed (0.0177184%)
MALAYALAM: 1048136 out of 1048334 tests passed. 198 failed (0.0188871%)
ORIYA: 42320 out of 42329 tests passed. 9 failed (0.021262%)
SINHALA: 271662 out of 271847 tests passed. 185 failed (0.068053%)
TAMIL: 1091754 out of 1091754 tests passed. 0 failed (0%)
TELUGU: 970555 out of 970573 tests passed. 18 failed (0.
00185457%)
Behdad Esfahbod [Fri, 5 Jan 2018 14:01:37 +0000 (14:01 +0000)]
[ot] Short-circuit base instance advance variation
Behdad Esfahbod [Fri, 5 Jan 2018 13:20:21 +0000 (13:20 +0000)]
[ot] Fix VariationStore evaluation algorithm
Ouch! Missing coords should still be evaluated as coord=0, which
most of the time results in a factor of 0. We were skipping these,
which was equivalent to a factor of 1.
Fixes https://github.com/harfbuzz/harfbuzz/issues/652
Behdad Esfahbod [Fri, 5 Jan 2018 13:17:02 +0000 (13:17 +0000)]
Minor
Behdad Esfahbod [Fri, 5 Jan 2018 13:06:25 +0000 (13:06 +0000)]
[ft] If there's no variations set, don't set them on hb-font
Behdad Esfahbod [Fri, 5 Jan 2018 12:55:39 +0000 (12:55 +0000)]
Add test font for previous commit
Behdad Esfahbod [Fri, 5 Jan 2018 12:50:22 +0000 (12:50 +0000)]
Merge remote-tracking branch 'fdo/master'
Behdad Esfahbod [Fri, 5 Jan 2018 12:46:12 +0000 (12:46 +0000)]
Improve CGJ skipping logic
Previously we made CGJ unskippable. Now, if CGJ did NOT prevent
any reordering, allow skipping over it. To make this work we
had to make changes to the Arabic mark reordering algorithm
implementation to renumber moved MCM marks. See comments.
Fixes https://github.com/harfbuzz/harfbuzz/issues/554
Ebrahim Byagowi [Fri, 5 Jan 2018 09:12:20 +0000 (12:42 +0330)]
Improve tests (#679)
Behdad Esfahbod [Thu, 4 Jan 2018 16:06:25 +0000 (16:06 +0000)]
Minor
Bruce Mitchener [Thu, 4 Jan 2018 11:40:10 +0000 (18:40 +0700)]
atomics: Favor compiler primitives over macOS APIs. (#676)
In macOS 10.12, the `OSMemoryBarrier` and related APIs were deprecated
in favor of using `std::atomic`. On the way to supporting `std::atomic`,
we can favor using the "Intel primitives" which are also available on
macOS.
Bruce Mitchener [Thu, 4 Jan 2018 11:37:35 +0000 (18:37 +0700)]
[cmake] Colorize output when using cmake + ninja. (#674)
Due to how ninja runs clang and gcc, it doesn't colorize the output
like make does. This forces color output in this situation.
Ebrahim Byagowi [Thu, 4 Jan 2018 06:41:34 +0000 (10:11 +0330)]
[cmake] Run src/ tests (#675)
Behdad Esfahbod [Wed, 3 Jan 2018 14:27:34 +0000 (14:27 +0000)]
[use] Simplify more
Behdad Esfahbod [Wed, 3 Jan 2018 14:24:44 +0000 (14:24 +0000)]
[use] Simplify
Fixes https://github.com/harfbuzz/harfbuzz/pull/661
Behdad Esfahbod [Wed, 3 Jan 2018 14:22:07 +0000 (14:22 +0000)]
[use] Fix Brahmi Number Joiner 1107F
Fixes https://github.com/harfbuzz/harfbuzz/pull/660
Behdad Esfahbod [Wed, 3 Jan 2018 12:46:29 +0000 (12:46 +0000)]
[util] Add TODO item
Ebrahim Byagowi [Tue, 2 Jan 2018 20:22:12 +0000 (23:52 +0330)]
Fix make check issue on out-of-tree builds and test it (#672)
Bruce Mitchener [Tue, 2 Jan 2018 18:23:23 +0000 (01:23 +0700)]
Fix typos.
Bruce Mitchener [Tue, 2 Jan 2018 17:15:18 +0000 (00:15 +0700)]
Improve Markdown usage in BUILD.md.
Romain Ouabdelkader [Thu, 21 Dec 2017 13:39:34 +0000 (14:39 +0100)]
link with CoreFoundation when using CoreText
Ebrahim Byagowi [Mon, 1 Jan 2018 07:47:51 +0000 (11:17 +0330)]
[cmake] Run rest of the tests on Windows (#668)
Ebrahim Byagowi [Fri, 29 Dec 2017 19:43:29 +0000 (23:13 +0330)]
[cmake] Run fuzzing and shaping tests (#666)
Ebrahim Byagowi [Mon, 25 Dec 2017 18:31:28 +0000 (22:01 +0330)]
[cmake] Use GNUInstallDirs values (#665)
Behdad Esfahbod [Sun, 24 Dec 2017 22:53:32 +0000 (17:53 -0500)]
Add Coverity badge
Ebrahim Byagowi [Sun, 24 Dec 2017 22:25:48 +0000 (01:55 +0330)]
[cmake] Enable cmake tests on distribution and test it (#664)
David Corbett [Wed, 22 Nov 2017 21:32:52 +0000 (16:32 -0500)]
Forbid Batak killers after vowel signs
Ebrahim Byagowi [Sun, 24 Dec 2017 22:02:46 +0000 (01:32 +0330)]
[ci] Add -Wno-attributes to djgpp, add alpine, format (#663)
Behdad Esfahbod [Sun, 24 Dec 2017 21:05:07 +0000 (16:05 -0500)]
[use] Allow ZWJ before/after Halant
https://github.com/harfbuzz/harfbuzz/issues/542#issuecomment-
353169729
Behdad Esfahbod [Wed, 20 Dec 2017 18:19:33 +0000 (13:19 -0500)]
Minor
Ebrahim Byagowi [Thu, 21 Dec 2017 16:45:37 +0000 (20:15 +0330)]
[ci] Add a DOS/djgpp compiler (#659)
Behdad Esfahbod [Wed, 20 Dec 2017 17:09:00 +0000 (12:09 -0500)]
1.7.4
Volker H. Simonis [Tue, 19 Dec 2017 10:33:25 +0000 (11:33 +0100)]
HarfBuzz 1.7.1 and later don't compile on AIX with xlC (#655)
Behdad Esfahbod [Tue, 19 Dec 2017 19:48:26 +0000 (14:48 -0500)]
[set] Handle nil set in add_range() / add_sorted_array()
Fixes https://github.com/harfbuzz/harfbuzz/issues/657
Behdad Esfahbod [Mon, 18 Dec 2017 14:18:51 +0000 (09:18 -0500)]
1.7.3
Behdad Esfahbod [Sun, 17 Dec 2017 17:32:33 +0000 (12:32 -0500)]
[coretext] In hb_coretext_font_create() set ptem
Otherwise setting the CTFont was ineffective as it would have been
recreated anyway unless font size was set to 18 CSS points.
Behdad Esfahbod [Sat, 16 Dec 2017 16:49:39 +0000 (11:49 -0500)]
[set] In add_sorted_array(), bail if data is not sorted
Behdad Esfahbod [Sat, 16 Dec 2017 16:11:18 +0000 (11:11 -0500)]
[collect_glyphs] Bail if input data looks like garbage
Specificaly, when a range or sorted array has unexpected order, we take that as
font data being garbage and bail out. This fixes significant slowdown on a bad
version of Chandas font which has a 600KB GPOS with garbage inside.
Later on, I like to add a maximum-work counter for collect_glyphs to protect
against malicious fonts as well.
Fixes https://bugs.chromium.org/p/chromium/issues/detail?id=794896
Behdad Esfahbod [Sat, 16 Dec 2017 16:36:16 +0000 (11:36 -0500)]
[set] Optimize add_array() / add_sorted_array()
Does page lookup as needed.
Behdad Esfahbod [Sat, 16 Dec 2017 16:07:37 +0000 (11:07 -0500)]
[collect_glyphs] handle ClassDef better
Behdad Esfahbod [Sat, 16 Dec 2017 14:18:07 +0000 (06:18 -0800)]
[collect_glyphs] In PairPosFornat2 do not collect classDef1
The coverage already covered that.
Behdad Esfahbod [Sat, 16 Dec 2017 14:12:06 +0000 (06:12 -0800)]
More work towards improving collect_glyphs() against bad input
The three "XXXXX"'s should be switched to false. Doing that separately for ease
of bisecting...
Behdad Esfahbod [Fri, 15 Dec 2017 03:33:55 +0000 (19:33 -0800)]
[set] Add add_sorted_array()
Not optimized to use sortedness yet. Also start putting in place infra
to faster reject bad data.
A version of Chandas.ttf found on some Chrome bots has 660kb of GPOS,
mostly junk. That is causing 48 million of set->add() calls in
collect_glyphs(), which is insane.
In the upcoming commits, I'll be speeding that up by optimizing
add_sorted_array(), while also reducing work by rejecting out-of-sort
arrays quickly and propagate the rejection.
Part of https://bugs.chromium.org/p/chromium/issues/detail?id=794896
Behdad Esfahbod [Fri, 15 Dec 2017 03:04:55 +0000 (19:04 -0800)]
[set] Reduce number of preallocated pages from 8 to 1
Now that pagesize is 8192, this feels better.
Behdad Esfahbod [Fri, 15 Dec 2017 02:15:14 +0000 (18:15 -0800)]
Fix partial tracing debug builds
Behdad Esfahbod [Thu, 14 Dec 2017 21:37:48 +0000 (13:37 -0800)]
Minor
Behdad Esfahbod [Thu, 14 Dec 2017 21:30:38 +0000 (13:30 -0800)]
[set] Change pagesize from 512 bits to 8192 bits
Fixes perf regression on some heavy fonts in Chrome's FT+HB
interaction.
See:
https://bugs.chromium.org/p/chromium/issues/detail?id=782220
More work to be done:
https://bugs.chromium.org/p/chromium/issues/detail?id=794896
Behdad Esfahbod [Wed, 13 Dec 2017 21:12:20 +0000 (13:12 -0800)]
[set] Add add_array()
To be used to optimize adding a whole bunch of (sorted) items at the same time,
as in CoverageFormat1.
ebraminio [Thu, 7 Dec 2017 08:54:12 +0000 (12:24 +0330)]
[test] print commented line, like the original script (#649)
ebraminio [Thu, 7 Dec 2017 08:05:36 +0000 (11:35 +0330)]
[ci] Add an after distribution test runner (#648)
ebraminio [Thu, 7 Dec 2017 07:52:55 +0000 (11:22 +0330)]
Rewrite run-tests in python (#647)
Khaled Hosny [Wed, 6 Dec 2017 19:08:20 +0000 (21:08 +0200)]
[ci] Sort out Travis configuration
Use a matrix to avoid a gazillion if's.
ebraminio [Wed, 6 Dec 2017 14:57:27 +0000 (18:27 +0330)]
[ci] minor improvements (#644)
Khaled Hosny [Tue, 5 Dec 2017 22:49:25 +0000 (00:49 +0200)]
Run cmake tests on CI builds
Khaled Hosny [Tue, 5 Dec 2017 22:43:28 +0000 (00:43 +0200)]
Add API tests to cmake build
Khaled Hosny [Tue, 5 Dec 2017 20:52:54 +0000 (22:52 +0200)]
We are already inside “if HAVE_GLIB” check
ebraminio [Wed, 6 Dec 2017 10:52:19 +0000 (14:22 +0330)]
[ci] Don't cache msys2 folder
ebraminio [Wed, 6 Dec 2017 10:21:04 +0000 (13:51 +0330)]
[ci] Enable glib and freetype on appveyor cmake (#643)
Behdad Esfahbod [Tue, 5 Dec 2017 21:12:11 +0000 (13:12 -0800)]
[debug] Use %p to print pointers
Fixes https://github.com/harfbuzz/harfbuzz/issues/640
Ebrahim Byagowi [Tue, 5 Dec 2017 20:34:30 +0000 (00:04 +0330)]
[ci] Fix appveyor badge
Nathan Willis [Tue, 5 Dec 2017 17:43:09 +0000 (17:43 +0000)]
Indic: always hyphenate pre-base-reordering, for clarity.
Behdad Esfahbod [Tue, 5 Dec 2017 17:01:28 +0000 (09:01 -0800)]
Silence unused-variables warning on MSVC
Fixes https://github.com/harfbuzz/harfbuzz/issues/635
David Corbett [Tue, 5 Dec 2017 13:28:42 +0000 (08:28 -0500)]
Allow digits in language system tags
David Corbett [Mon, 4 Dec 2017 20:15:27 +0000 (15:15 -0500)]
Fix string matching in parse_bool
Olivier Blin [Mon, 4 Dec 2017 17:58:41 +0000 (18:58 +0100)]
[hb-ft] Fix build when Multiple Master font support is disabled in freetype
FT_Set_Var_Blend_Coordinates() is not available when "Multiple Master
font interface" is disabled in freetype's modules.cfg
Behdad Esfahbod [Mon, 4 Dec 2017 16:52:39 +0000 (08:52 -0800)]
1.7.2
Behdad Esfahbod [Sat, 2 Dec 2017 23:22:04 +0000 (15:22 -0800)]
[set] Actually commit fixes mentioned in previous commit!
Behdad Esfahbod [Sat, 2 Dec 2017 23:14:26 +0000 (15:14 -0800)]
[set] Fix recent changes
Ouch!
Add tests.
Behdad Esfahbod [Sat, 2 Dec 2017 23:06:15 +0000 (15:06 -0800)]
[set] Protect against bad input in hb_set_add_range()
Behdad Esfahbod [Wed, 29 Nov 2017 07:11:34 +0000 (23:11 -0800)]
[coretext] Add hb_coretext_font_create()
Fixes https://github.com/harfbuzz/harfbuzz/issues/628
New API:
hb_coretext_font_create()
Behdad Esfahbod [Fri, 1 Dec 2017 21:56:06 +0000 (13:56 -0800)]
[set] Optimize add_range() some more
It's as good as it gets, and seems to be on par with previous set implementation
in my benchmark.
Would be great if someone can double-check my bitops.
Behdad Esfahbod [Fri, 1 Dec 2017 21:34:14 +0000 (13:34 -0800)]
[set] Optimize add_range()
With new set implementation, this became really costy. Optimize it.
There's more to be done, but this shaves off most of the fat.
Part of fixing https://bugs.chromium.org/p/chromium/issues/detail?id=782220
Behdad Esfahbod [Fri, 1 Dec 2017 20:36:26 +0000 (12:36 -0800)]
[ot] Ensure layout in hb_ot_layout_table_get_lookup_count()
Behdad Esfahbod [Thu, 30 Nov 2017 00:18:18 +0000 (16:18 -0800)]
Add another test for previous commit
From https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4273
Behdad Esfahbod [Thu, 30 Nov 2017 00:08:11 +0000 (16:08 -0800)]
[ot] Fix Extension type recurse to disallow recursing to another Extension
Particularly hazardous if the second layer mixes forward and backward lookups.
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=4336
Behdad Esfahbod [Wed, 29 Nov 2017 22:20:09 +0000 (14:20 -0800)]
Try fixing Mac build with 10.12
Related
https://github.com/harfbuzz/harfbuzz/issues/345
https://github.com/harfbuzz/harfbuzz/pull/629
Behdad Esfahbod [Wed, 29 Nov 2017 06:20:57 +0000 (22:20 -0800)]
Minor
Behdad Esfahbod [Wed, 22 Nov 2017 00:36:07 +0000 (16:36 -0800)]
[doc] Optimize HarfBuzz.png; add HarfBuzz.svg
SVG is unused. Just keeping it here.
Khaled Hosny [Tue, 21 Nov 2017 22:14:29 +0000 (00:14 +0200)]
Improve the docs commit message a bit
Ebrahim Byagowi [Tue, 21 Nov 2017 06:22:18 +0000 (09:52 +0330)]
Move gh-pages docs to harfbuzz.github.io
David Corbett [Tue, 21 Nov 2017 19:16:10 +0000 (14:16 -0500)]
Categorize U+A8B4 as Consonant_Medial
ebraminio [Tue, 21 Nov 2017 06:07:26 +0000 (01:07 -0500)]
[ci] Add Oracle Developer Studio (former Sun Studio) based compiler (#621)
Behdad Esfahbod [Tue, 21 Nov 2017 03:43:22 +0000 (19:43 -0800)]
Fix fallback positioning of double diacritic marks
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=787284
Behdad Esfahbod [Tue, 21 Nov 2017 03:39:47 +0000 (19:39 -0800)]
Minor
Behdad Esfahbod [Mon, 20 Nov 2017 23:07:48 +0000 (15:07 -0800)]
[docs] s/Harfbuzz/HarfBuzz/g
David Corbett [Mon, 20 Nov 2017 18:19:34 +0000 (13:19 -0500)]
Categorize U+0C80 as Consonant_Placeholder
ebraminio [Mon, 20 Nov 2017 19:49:22 +0000 (14:49 -0500)]
Move all references of old url to the new address (#622)
Behdad Esfahbod [Wed, 15 Nov 2017 05:53:48 +0000 (21:53 -0800)]
Limit how much recursion GSUB/GPOS does
This only counts recursions right now. Good start.
Hopefully...
Fixes https://github.com/behdad/harfbuzz/issues/429
Behdad Esfahbod [Wed, 15 Nov 2017 05:27:24 +0000 (21:27 -0800)]
Minor move
Behdad Esfahbod [Wed, 15 Nov 2017 05:09:03 +0000 (21:09 -0800)]
Add Offset16 and Offset32
Behdad Esfahbod [Wed, 15 Nov 2017 05:06:07 +0000 (21:06 -0800)]
Replace USHORT/SHORT/ULONG/etc with UINT16/INT16/UINT32/etc
Behdad Esfahbod [Wed, 15 Nov 2017 04:30:03 +0000 (20:30 -0800)]
Remove a couple of unused consts
Behdad Esfahbod [Wed, 15 Nov 2017 04:25:29 +0000 (20:25 -0800)]
[glyf] Try fixing undefined-behavior
Might fix https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=1463
Behdad Esfahbod [Wed, 15 Nov 2017 04:22:05 +0000 (20:22 -0800)]
[ot] Remove unneeded TODO item
Looks like hb-ot-font is complete after all!
CFF font names and CFF glyph metrics don't work though...
Behdad Esfahbod [Wed, 15 Nov 2017 04:16:45 +0000 (20:16 -0800)]
[hmtx] Use curiously recurring template pattern
https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern