Behdad Esfahbod [Tue, 5 Jun 2012 20:34:49 +0000 (16:34 -0400)]
Add gcc intrinsics implementations for atomic and mutex
Behdad Esfahbod [Tue, 5 Jun 2012 20:06:28 +0000 (16:06 -0400)]
Add gcc implementation for atomic ops
Behdad Esfahbod [Tue, 5 Jun 2012 19:37:19 +0000 (15:37 -0400)]
Add a mutex to object header
Removes one more static-initialization. A few more to go.
Behdad Esfahbod [Tue, 5 Jun 2012 19:17:44 +0000 (15:17 -0400)]
Remove static initializers from indic
Behdad Esfahbod [Tue, 5 Jun 2012 16:31:51 +0000 (12:31 -0400)]
Better hide nil objects and make them const
Behdad Esfahbod [Tue, 5 Jun 2012 18:17:32 +0000 (14:17 -0400)]
Remove constructor from hb_prealloced_array_t
This was causing all object types to be non-POD and have static
initializers. We don't need that!
Now, most nil objects just moved from .bss to .data. Fixing for that
coming soon.
Behdad Esfahbod [Tue, 5 Jun 2012 17:30:11 +0000 (13:30 -0400)]
Check for atexit()
Behdad Esfahbod [Tue, 5 Jun 2012 17:04:20 +0000 (13:04 -0400)]
Fix warnings
Behdad Esfahbod [Mon, 4 Jun 2012 14:21:22 +0000 (10:21 -0400)]
s/script-punjabi/script-gurmukhi/
Behdad Esfahbod [Mon, 4 Jun 2012 12:56:00 +0000 (08:56 -0400)]
Add --verbose to hb-shape
Just turns all --show-* options on.
Behdad Esfahbod [Mon, 4 Jun 2012 12:28:19 +0000 (08:28 -0400)]
Remove comma at the end of enum
As reported by Jonathan Kew on the list.
Behdad Esfahbod [Sun, 3 Jun 2012 19:54:19 +0000 (15:54 -0400)]
Remove const from ref_count.ref_count
According to Tom Hacohen this was breaking build with some compilers.
In file included from hb-buffer-private.hh:35:0,
from hb-ot-map-private.hh:32,
from hb-ot-shape-private.hh:32,
from hb-ot-shape.cc:29:
hb-object-private.hh: In constructor '_hb_object_header_t::_hb_object_header_t()':
hb-object-private.hh:97:8: error: uninitialized const member in 'struct hb_reference_count_t'
hb-object-private.hh:51:25: note: 'hb_reference_count_t::ref_count' should be initialized
In file included from hb-ot-shape.cc:33:0:
hb-set-private.hh: In constructor '_hb_set_t::_hb_set_t()':
hb-set-private.hh:37:8: note: synthesized method '_hb_object_header_t::_hb_object_header_t()' first required here
hb-ot-shape.cc: In function 'void hb_ot_shape_glyphs_closure(hb_font_t*, hb_buffer_t*, const hb_feature_t*, unsigned int, hb_set_t*)':
hb-ot-shape.cc:521:12: note: synthesized method '_hb_set_t::_hb_set_t()' first required here
Behdad Esfahbod [Sun, 3 Jun 2012 19:52:51 +0000 (15:52 -0400)]
Minor
Behdad Esfahbod [Sat, 2 Jun 2012 16:21:19 +0000 (12:21 -0400)]
[util] Minor
Behdad Esfahbod [Sat, 2 Jun 2012 16:13:08 +0000 (12:13 -0400)]
[util] Make hb-shape continue shaping other lines if shapers failed
Behdad Esfahbod [Fri, 1 Jun 2012 17:46:26 +0000 (13:46 -0400)]
Remove tab character like other "zero-width" characters
Uniscribe does that, this make comparing results to Uniscribe
easier.
Behdad Esfahbod [Fri, 1 Jun 2012 17:45:25 +0000 (13:45 -0400)]
Remove unused variable
Behdad Esfahbod [Mon, 28 May 2012 14:46:47 +0000 (10:46 -0400)]
Remove hb_atomic_int_set/get()
We never use them in fact...
I'm just adjusting these as I better understand the requirements of
the code and the guarantees of each operation.
Behdad Esfahbod [Mon, 28 May 2012 02:39:48 +0000 (22:39 -0400)]
Minor Malayalam test case
From https://bugs.freedesktop.org/show_bug.cgi?id=45166
Behdad Esfahbod [Mon, 28 May 2012 02:07:04 +0000 (22:07 -0400)]
Add Myanmar test case
Behdad Esfahbod [Sun, 27 May 2012 15:29:21 +0000 (11:29 -0400)]
Add hb_font_get_glyph_name() and hb_font_get_glyph_from_name()
Behdad Esfahbod [Sun, 27 May 2012 14:45:57 +0000 (10:45 -0400)]
Warn if no Unicode functions implementation is found
Behdad Esfahbod [Sun, 27 May 2012 14:20:47 +0000 (10:20 -0400)]
Cleanup atomic ops on OS X
Behdad Esfahbod [Sun, 27 May 2012 14:11:13 +0000 (10:11 -0400)]
Don't use atomic ops in hb_cache_t
We don't care about linearizability, so unprotected int read/write
are enough, no need for expensive memory barriers. It's a cache,
that's all.
Behdad Esfahbod [Sun, 27 May 2012 14:09:18 +0000 (10:09 -0400)]
Minor
Behdad Esfahbod [Sun, 27 May 2012 14:01:13 +0000 (10:01 -0400)]
Fix Windows atomic get/set
According to:
http://msdn.microsoft.com/en-us/library/65tt87y8.aspx
MemoryBarrier() is the right macro to protect these, not _ReadBarrier()
and/or _WriteBarrier().
Behdad Esfahbod [Fri, 25 May 2012 18:30:24 +0000 (14:30 -0400)]
[util] Add hidden --shaper that is equivalent of --shapers
Behdad Esfahbod [Fri, 25 May 2012 18:17:54 +0000 (14:17 -0400)]
Add set iterator
Behdad Esfahbod [Fri, 25 May 2012 17:48:00 +0000 (13:48 -0400)]
Add set symmetric difference
Behdad Esfahbod [Thu, 24 May 2012 19:00:01 +0000 (15:00 -0400)]
Minor
Behdad Esfahbod [Thu, 24 May 2012 14:46:39 +0000 (10:46 -0400)]
Fix hb_atomic_int_set() implementation for HB_NO_MT
As pointed out by Jonathan Kew.
Behdad Esfahbod [Thu, 24 May 2012 02:00:25 +0000 (22:00 -0400)]
Update TODO
Behdad Esfahbod [Thu, 24 May 2012 01:50:43 +0000 (21:50 -0400)]
Add Arabic diacritics tests
Behdad Esfahbod [Wed, 23 May 2012 02:12:22 +0000 (22:12 -0400)]
Fix substitution glyph class propagation
The old code was doing nothing.
Still got to find an example font+string that makes this matter, but
need this for fixing synthetic GDEF anyway.
Behdad Esfahbod [Fri, 18 May 2012 19:04:35 +0000 (15:04 -0400)]
Add CJK Compatibility Ideographs tests
From:
http://people.mozilla.org/~jdaggett/tests/cjkcompat.html
Behdad Esfahbod [Fri, 18 May 2012 02:04:45 +0000 (22:04 -0400)]
Add a lock-free cache type for int->int functions
To be used for cmap and advance caching if desired.
Behdad Esfahbod [Fri, 18 May 2012 02:02:08 +0000 (22:02 -0400)]
Implement hb_atomic_int_set() for OS X
Behdad Esfahbod [Fri, 18 May 2012 01:53:24 +0000 (21:53 -0400)]
Minor
Behdad Esfahbod [Fri, 18 May 2012 01:23:49 +0000 (21:23 -0400)]
Add hb_atomic_int_set() again
Behdad Esfahbod [Fri, 18 May 2012 01:01:04 +0000 (21:01 -0400)]
Fix type conflicts on Windows without glib
Behdad Esfahbod [Fri, 18 May 2012 00:55:12 +0000 (20:55 -0400)]
Don't use min/max as function names
They can be macros on some systems. Eg. mingw32.
Behdad Esfahbod [Fri, 18 May 2012 00:50:38 +0000 (20:50 -0400)]
Prefer native atomic/mutex ops to glib's
Behdad Esfahbod [Fri, 18 May 2012 00:30:46 +0000 (20:30 -0400)]
Move atomic ops into their own header
Behdad Esfahbod [Fri, 18 May 2012 00:15:49 +0000 (20:15 -0400)]
Update TODO
Behdad Esfahbod [Wed, 16 May 2012 03:53:18 +0000 (23:53 -0400)]
[util] Add hb-ot-shape-closure tool
Computes all the glyphs that may be generated given a font and
set of Unicode characters.
The order of the Unicode characters is irrelevant.
Sample output:
behdad:util 0$ ./hb-ot-shape-closure Doulos\ SIL\ Regular.ttf f
f f_f
behdad:util 0$ ./hb-ot-shape-closure Doulos\ SIL\ Regular.ttf i
i
behdad:util 0$ ./hb-ot-shape-closure Doulos\ SIL\ Regular.ttf fi
f f_i f_f_i f_f i
behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf ب
uni0628 uni0628.init uni0628.medi uni0628.fina
behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf ا
uni0627 uni0627.fina
behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf با
uni0627 uni0627.fina uni0628 uni0628.init uni0628.medi uni0628.fina
behdad:util 0$ ./hb-ot-shape-closure DroidNaskh-Regular.ttf با --no-glyph-names
5 6 133 134 135 136
Behdad Esfahbod [Wed, 16 May 2012 03:10:39 +0000 (23:10 -0400)]
[util] Refactor to accommodate for upcoming new tool
Behdad Esfahbod [Sun, 13 May 2012 16:09:29 +0000 (18:09 +0200)]
[Indic] Apply vatu feature after cjct
Testing with old Deva spec this reduces failures.
Test sequence: U+0915,U+094D,U+0930.
Behdad Esfahbod [Sun, 13 May 2012 15:10:18 +0000 (17:10 +0200)]
Minor
Behdad Esfahbod [Sun, 13 May 2012 14:48:03 +0000 (16:48 +0200)]
Refactor
Behdad Esfahbod [Sun, 13 May 2012 14:46:08 +0000 (16:46 +0200)]
Revert "[Indic] Refactoring"
This reverts commit
0831061efb78983b9c6e1e72574c977e56383c08.
Behdad Esfahbod [Sun, 13 May 2012 14:20:10 +0000 (16:20 +0200)]
Fix more warnings
Behdad Esfahbod [Sun, 13 May 2012 14:13:44 +0000 (16:13 +0200)]
Fix more unused-var warnings
Behdad Esfahbod [Sun, 13 May 2012 14:04:36 +0000 (16:04 +0200)]
Fix hb_face_set_index()
Behdad Esfahbod [Sun, 13 May 2012 14:01:08 +0000 (16:01 +0200)]
Fix warnings
Behdad Esfahbod [Sun, 13 May 2012 13:54:43 +0000 (15:54 +0200)]
Minor
Behdad Esfahbod [Sun, 13 May 2012 13:45:18 +0000 (15:45 +0200)]
Add accessort to buffer for current info, current pos, and prev info
Behdad Esfahbod [Sun, 13 May 2012 13:21:06 +0000 (15:21 +0200)]
Minor
Behdad Esfahbod [Sun, 13 May 2012 13:17:51 +0000 (15:17 +0200)]
[GSUB/GPOS] Remove context_length
The spec doesn't say contextual matching should be done this way,
and AOTS doesn't do it either. It was inherited from old HarfBuzz.
Remove it.
Behdad Esfahbod [Sun, 13 May 2012 13:04:00 +0000 (15:04 +0200)]
Minor
Behdad Esfahbod [Sun, 13 May 2012 11:03:44 +0000 (13:03 +0200)]
Remove ioctl checks
Ended up not using terminal size after all.
Behdad Esfahbod [Sun, 13 May 2012 11:02:38 +0000 (13:02 +0200)]
[util] Set ansi color only on color change
Behdad Esfahbod [Sun, 13 May 2012 10:51:02 +0000 (12:51 +0200)]
Reduce default margin
Behdad Esfahbod [Sun, 13 May 2012 00:02:58 +0000 (02:02 +0200)]
[util] Make hb-view print out Unicode art if stdout is a terminal
Behdad Esfahbod [Sat, 12 May 2012 22:54:07 +0000 (00:54 +0200)]
Minor
Behdad Esfahbod [Sat, 12 May 2012 13:54:27 +0000 (15:54 +0200)]
[util] Make tools default to stdin if no text is provided
One less argument to type in typical testing workflow!
Behdad Esfahbod [Sat, 12 May 2012 13:41:48 +0000 (15:41 +0200)]
[util] Change default font size of hb-view to 256
Most common usecase of hb-view is to test rendering of short words for
testing / inspection. Not having to type "--font-size 150" each time
isn't such a bad idea...
Behdad Esfahbod [Sat, 12 May 2012 13:40:11 +0000 (15:40 +0200)]
Fix compiler warnings
Behdad Esfahbod [Sat, 12 May 2012 13:34:40 +0000 (15:34 +0200)]
[test] Make tool usage easier by not requiring "--stdin"
Just default to it. Added "--help" instead to get usage.
Behdad Esfahbod [Sat, 12 May 2012 11:34:18 +0000 (13:34 +0200)]
[Indic] Add more Malayalam tests
Behdad Esfahbod [Fri, 11 May 2012 21:10:31 +0000 (23:10 +0200)]
Fix compiler warnings
Behdad Esfahbod [Fri, 11 May 2012 20:00:06 +0000 (22:00 +0200)]
[Indic] Unbreak Devanagari
And this, concludes the HarfBuzz Massala Hackfest.
I like to specially thank Jonathan Kew for doing all the decription and
letting me get commit points.
Behdad Esfahbod [Fri, 11 May 2012 19:42:27 +0000 (21:42 +0200)]
[Indic] Disambiguate sub vs post vs above matras
Bengali is at *just* above 5% now.
Behdad Esfahbod [Fri, 11 May 2012 19:36:32 +0000 (21:36 +0200)]
[Indic] Position Bengali Reph before matras
Behdad Esfahbod [Fri, 11 May 2012 19:10:03 +0000 (21:10 +0200)]
[Indic] Start categorizing Reph per script
Behdad Esfahbod [Fri, 11 May 2012 18:59:26 +0000 (20:59 +0200)]
[Indic] Apply 'init' feature for Bengali
Error down from 20% to 7%.
Behdad Esfahbod [Fri, 11 May 2012 18:50:53 +0000 (20:50 +0200)]
[Indic] Refactor for the arrival of 'init' feature
Yep, on Bengali now!
Behdad Esfahbod [Fri, 11 May 2012 18:02:14 +0000 (20:02 +0200)]
[Indic] Add Uniscribe bug feature for dotted circle
For dotted-circle independent clusters, Uniscribe does no Reph shaping
for the exact sequence Ra+Halant+25CC. Which also is the only possible
sequence with 25CC at the end.
Behdad Esfahbod [Fri, 11 May 2012 17:55:42 +0000 (19:55 +0200)]
[Indic] Add tests for dottedcircle
Behdad Esfahbod [Fri, 11 May 2012 17:07:58 +0000 (19:07 +0200)]
[Indic] Refactoring
Behdad Esfahbod [Fri, 11 May 2012 16:58:57 +0000 (18:58 +0200)]
Minor
Behdad Esfahbod [Fri, 11 May 2012 16:46:35 +0000 (18:46 +0200)]
[Indic] Allow multiple Consonants in Vowel/NBSP syllables
Uniscribe allows multiple Halant+Consonant after a Vowel.
Tests:
↦ * U+0905,U+094D,U+092B,U+094D,930,94d,930
Behdad Esfahbod [Fri, 11 May 2012 16:13:42 +0000 (18:13 +0200)]
[Indic] Allow two Nuktas per consonant
Uniscribe allows up to two nuktas per consonant and one per matra. It does so
indepent of whether the consonant already has a nukta in it. Tests:
* U+0916,U+093C,U+0941
* U+0959,U+093C,U+0941
* U+0916,U+093C,U+093C,U+0941
* U+0959,U+093C,U+093C,U+0941
* U+0916,U+093C,U+093C,U+093C,U+0941
* U+0959,U+093C,U+093C,U+093C,U+0941
* 915,93c,93c,,94d,U+0916,U+093C,U+093C,U+093e,93c,93c
Behdad Esfahbod [Fri, 11 May 2012 15:54:26 +0000 (17:54 +0200)]
[Indic] Fix U+0952 and similar classification to match Uniscribe
See comments.
Behdad Esfahbod [Fri, 11 May 2012 15:30:48 +0000 (17:30 +0200)]
[Indic] Treat U+0951..U+0954 all similar to U+0952
Behdad Esfahbod [Fri, 11 May 2012 15:29:40 +0000 (17:29 +0200)]
[GSUB/GPOS/Indic] Apply GSUB/GPOS within syllables only
This does not apply to the context matchings.
This regresses tests right now. And we are not sure whether this is
the right thing to do for GPOS. But we'll figure out.
Behdad Esfahbod [Fri, 11 May 2012 15:18:37 +0000 (17:18 +0200)]
[GSUB/GPOS] Fix wrong buffer access in backward skippy mask matching
Behdad Esfahbod [Fri, 11 May 2012 15:07:08 +0000 (17:07 +0200)]
[Indic] Don't use syllable serial value 0
Behdad Esfahbod [Fri, 11 May 2012 14:54:40 +0000 (16:54 +0200)]
[Indic] Implement Uniscribe Reph+Matra+Halant bug feature
Behdad Esfahbod [Fri, 11 May 2012 14:51:23 +0000 (16:51 +0200)]
[Indic] Add example of different Uniscribe behavior
Behdad Esfahbod [Fri, 11 May 2012 14:43:12 +0000 (16:43 +0200)]
[Indic] Add runtime Uniscribe bug compatibility mode!
Enable by setting envvar:
HB_OT_INDIC_OPTIONS=uniscribe-bug-compatible
Plus, LeftMatra+Halant "feature".
Behdad Esfahbod [Fri, 11 May 2012 14:25:02 +0000 (16:25 +0200)]
[Indic] Add #define UNISCRIBE_BUG_COMPATIBLE 1
Behdad Esfahbod [Fri, 11 May 2012 14:23:43 +0000 (16:23 +0200)]
[Indic] Fix Left Matra + Halant reordering
As can be seen in: U+092B,U+093F,U+094D
Behdad Esfahbod [Fri, 11 May 2012 14:23:38 +0000 (16:23 +0200)]
Minor
Behdad Esfahbod [Fri, 11 May 2012 14:22:46 +0000 (16:22 +0200)]
[Indic] Add test for Left Matra with Halant
Uniscribe doesn't move the Halant, we do. And do a broken job of it now.
Behdad Esfahbod [Fri, 11 May 2012 14:01:44 +0000 (16:01 +0200)]
[GSUB/GPOS] Check all glyph masks when matching input
Behdad Esfahbod [Fri, 11 May 2012 13:34:13 +0000 (15:34 +0200)]
[Indic] Apply Reph mask to all POS_REPH glyphs
Needed for upcoming changes to GSUB/GPOS mask matching.
Behdad Esfahbod [Fri, 11 May 2012 12:39:01 +0000 (14:39 +0200)]
[Indic] Fix state machine to backtrack
Behdad Esfahbod [Fri, 11 May 2012 09:41:39 +0000 (11:41 +0200)]
[Indic] Move syllable tracking from Indic to generic layer
This is to incorporate it into GSUB/GPOS processing.
Behdad Esfahbod [Fri, 11 May 2012 09:17:23 +0000 (11:17 +0200)]
[Indic] Disable conjuncts when a ZWJ happens
Not that the code makes any difference since the presence of ZWJ itself
causes the ligature to fail to match anyway.
Behdad Esfahbod [Fri, 11 May 2012 09:07:40 +0000 (11:07 +0200)]
[Indic] Fix bitops typo!
Another 1000 down!