Behdad Esfahbod [Thu, 14 Feb 2019 21:45:52 +0000 (13:45 -0800)]
[iter] A couple more hb_apply() + lambda uses
Behdad Esfahbod [Thu, 14 Feb 2019 21:16:33 +0000 (13:16 -0800)]
[iter] Use hb_apply() with lambda functions in a few places
Behdad Esfahbod [Thu, 14 Feb 2019 19:53:40 +0000 (11:53 -0800)]
[iter] Remove excess use of universal references
Every time I have to study these to understand why a change is right..
Behdad Esfahbod [Thu, 14 Feb 2019 19:40:22 +0000 (11:40 -0800)]
[iter] Add hb_apply()
Behdad Esfahbod [Thu, 14 Feb 2019 19:34:55 +0000 (11:34 -0800)]
Merge branch 'master' into iter
Behdad Esfahbod [Thu, 14 Feb 2019 19:34:28 +0000 (11:34 -0800)]
[CI] Install more packages
Wish there was a way to streamline this :(.
Behdad Esfahbod [Thu, 14 Feb 2019 19:10:13 +0000 (11:10 -0800)]
[iter] Make hb_filter() a function-object
Behdad Esfahbod [Thu, 14 Feb 2019 19:07:12 +0000 (11:07 -0800)]
[iter] Make hb_zip() a function-object
Behdad Esfahbod [Thu, 14 Feb 2019 19:03:29 +0000 (11:03 -0800)]
[iter] Accept pointers to hb_sink()
Behdad Esfahbod [Thu, 14 Feb 2019 19:00:10 +0000 (11:00 -0800)]
[iter] Make hb_sink function-object
Behdad Esfahbod [Thu, 14 Feb 2019 18:51:47 +0000 (10:51 -0800)]
[iter] Back to dagger formatting for pipelines
Behdad Esfahbod [Thu, 14 Feb 2019 18:51:02 +0000 (10:51 -0800)]
[iter] Accept iterator, not iterable, in hb_sink()()
Behdad Esfahbod [Thu, 14 Feb 2019 18:49:31 +0000 (10:49 -0800)]
[iter] Accept iterator, not iterable, in hb_filter()()
Behdad Esfahbod [Thu, 14 Feb 2019 18:48:20 +0000 (10:48 -0800)]
[iter] Accept iterator, not iterable, in hb_map()()
Behdad Esfahbod [Thu, 14 Feb 2019 18:40:05 +0000 (10:40 -0800)]
[iter] Use hb_sink()
Behdad Esfahbod [Thu, 14 Feb 2019 18:39:58 +0000 (10:39 -0800)]
[iter] Add hb_sink()
Behdad Esfahbod [Thu, 14 Feb 2019 07:54:36 +0000 (23:54 -0800)]
[CI] Disable cmake-oracledeveloperstudio bot
Weird error:
"/root/project/src/hb-iter.hh", line 277: Error: Type name expected instead of "decltype()".
"/root/project/src/hb-iter.hh", line 278: Error: Invalid type while substituting into Iter::item_t.
"/root/project/src/hb-iter.hh", line 317: Error: Type name expected instead of "decltype()".
"/root/project/src/hb-iter.hh", line 318: Error: Invalid type while substituting into Iter::item_t.
Behdad Esfahbod [Thu, 14 Feb 2019 07:46:43 +0000 (23:46 -0800)]
Merge branch 'master' into iter
Behdad Esfahbod [Thu, 14 Feb 2019 07:46:17 +0000 (23:46 -0800)]
[CI] Install wget on clang-O3-O0 bot
Behdad Esfahbod [Thu, 14 Feb 2019 07:30:21 +0000 (23:30 -0800)]
[CI] Remove macos-notest-ios bot
Not sure what ancient compiler it is (gcc 4.2?), but didn't like hb_zip SFINAE
apparently:
In file included from /Users/distiller/project/src/hb-aat-layout.cc:28:
In file included from /Users/distiller/project/src/hb-open-type.hh:32:
In file included from /Users/distiller/project/src/hb.hh:642:
/Users/distiller/project/src/hb-iter.hh:364:1: note: candidate template ignored: substitution failure [with A = OT::Coverage, B = OT::OffsetArrayOf<OT::ChainRuleSet>]: non-type template argument does not refer to any declaration
hb_zip (const A& a, const B &b)
^
In file included from /Users/distiller/project/src/hb-aat-layout.cc:37:
In file included from /Users/distiller/project/src/hb-aat-layout-kerx-table.hh:31:
In file included from /Users/distiller/project/src/hb-kern.hh:32:
/Users/distiller/project/src/hb-ot-layout-gpos-table.hh:725:20: error: no matching function for call to 'hb_zip'
for (auto it = hb_zip (this+coverage, pairSet)
^~~~~~
Not going to try to appease.
Behdad Esfahbod [Thu, 14 Feb 2019 06:08:54 +0000 (22:08 -0800)]
Merge branch 'master' into iter
Ebrahim Byagowi [Wed, 13 Feb 2019 20:57:01 +0000 (00:27 +0330)]
Minor, use a meaningful naming in template parameter (#1582)
Ebrahim Byagowi [Wed, 13 Feb 2019 09:28:01 +0000 (12:58 +0330)]
Fix djgpp complains by tweaking templates (#1579)
For some reasons djgpp doesn't understand "unsigned int" can be same
with one of uint*_t anyway so lets do that for it explicitly.
Just to note, our CI's djgpp is based GCC 7.2.0 and isn't old.
Ken [Mon, 11 Feb 2019 07:46:05 +0000 (23:46 -0800)]
hb-coretext.cc: remove TARGET_OS_MAC from test (#1578)
it is always true when building on APPLE systems
and this file only builds on APPLE systems
Ebrahim Byagowi [Sat, 9 Feb 2019 21:38:05 +0000 (01:08 +0330)]
[ci] Install 'base-devel' on ArchLinux CI bot
Ebrahim Byagowi [Sat, 9 Feb 2019 13:28:02 +0000 (16:58 +0330)]
[ci] Install 'which' in ArchLinux bot
Ebrahim Byagowi [Sat, 9 Feb 2019 13:03:28 +0000 (16:33 +0330)]
[ci] Speculative fix for Alpine and ArchLinux bots
Ebrahim Byagowi [Fri, 8 Feb 2019 12:00:17 +0000 (15:30 +0330)]
[ci] Disable the just added bot
Doesn't play well with CircleCI apparently
https://circleci.com/gh/harfbuzz/harfbuzz/74289
Ebrahim Byagowi [Fri, 8 Feb 2019 11:48:26 +0000 (15:18 +0330)]
[ci] Add a Void Linux bot
https://voidlinux.org/ is yet another and different distro written from scratch, thus completely eligible to have a bot here!
Seriously however not that useful yet however but I will try to overload it other tasks later, like our other bots.
No test yet also, couldn't install cairo-devel, will try to fix that later.
Their harfbuzz package source: https://github.com/void-linux/void-packages/blob/master/srcpkgs/harfbuzz/template
Behdad Esfahbod [Wed, 6 Feb 2019 21:36:52 +0000 (13:36 -0800)]
Merge pull request #1571 from kencu/cleanostests
hb-coretext.cc: clean up macosx test
Ken Cunningham [Wed, 6 Feb 2019 04:26:49 +0000 (20:26 -0800)]
hb-coretext.cc: clean up macosx test
TARGET_OS_OSX was introduced only in late OS versions
so always returns as "0" on older systems.
if !TARGET_OS_IPHONE can work, as it returns as !0 on older
systems where TARGET_OS_IPHONE is not defined, but is not
specific
if TARGET_OS_MAC && !(defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE)
is both specific and accurate on all systems.
Behdad Esfahbod [Thu, 31 Jan 2019 21:56:58 +0000 (13:56 -0800)]
Adjust hb_is_signed<>
Fixes https://github.com/harfbuzz/harfbuzz/issues/1535
Behdad Esfahbod [Thu, 31 Jan 2019 21:49:18 +0000 (13:49 -0800)]
Remove stale comment
Behdad Esfahbod [Thu, 31 Jan 2019 00:03:16 +0000 (16:03 -0800)]
[iter] Fix mystery crash
Fuzzer caught it:
==14==ERROR: AddressSanitizer: stack-use-after-return on address 0x7fca2ed7a3e0 at pc 0x0000006057aa bp 0x7ffc3290f1d0 sp 0x7ffc3290f1c8
READ of size 4 at 0x7fca2ed7a3e0 thread T0
SCARINESS: 55 (4-byte-read-stack-use-after-return)
#0 0x6057a9 in OT::SingleSubstFormat2::subset(hb_subset_context_t*) const /src/harfbuzz/src/./hb-ot-layout-gsub-table.hh:194:40
#1 0x5ff921 in hb_subset_context_t::return_t OT::SingleSubst::dispatch<hb_subset_context_t>(hb_subset_context_t*) const /src/harfbuzz/src/./hb-ot-layout-gsub-table.hh:256:13
I can't reproduce locally, but many of the bots are failing because of this
as well.
It's a pity that operator-> must return pointer. Ugh. Why?!
Behdad Esfahbod [Wed, 30 Jan 2019 23:36:57 +0000 (18:36 -0500)]
Merge pull request #1567 from googlefonts/fuzzer
[subset] Update the subset fuzzer to get options to use from test case.
Garret Rieger [Wed, 30 Jan 2019 23:23:19 +0000 (15:23 -0800)]
[subset] Update the subset fuzzer to determine which options to use based on data in the fuzzing test case.
Add support for toggling retain_gids.
Behdad Esfahbod [Wed, 30 Jan 2019 23:10:43 +0000 (15:10 -0800)]
Merge branch 'master' into iter
Behdad Esfahbod [Wed, 30 Jan 2019 23:10:23 +0000 (15:10 -0800)]
[configure] Fix up
Behdad Esfahbod [Wed, 30 Jan 2019 23:10:23 +0000 (15:10 -0800)]
[configure] Fix up
Behdad Esfahbod [Wed, 30 Jan 2019 23:07:09 +0000 (15:07 -0800)]
Merge branch 'master' into iter
Behdad Esfahbod [Wed, 30 Jan 2019 23:06:22 +0000 (15:06 -0800)]
[configure] Print compiler version info in report
Behdad Esfahbod [Wed, 30 Jan 2019 23:06:22 +0000 (15:06 -0800)]
[configure] Print compiler version info in report
Behdad Esfahbod [Wed, 30 Jan 2019 23:02:29 +0000 (15:02 -0800)]
[ci] Switch clang-O3-O0 bot to Ubuntu image
https://github.com/harfbuzz/harfbuzz/issues/1566
Behdad Esfahbod [Wed, 30 Jan 2019 22:54:23 +0000 (14:54 -0800)]
[iter] Warning fix
Not sure why I don't get it, but this warning:
warning: base class ‘struct hb_iter_fallback_mixin_t<hb_array_t<const OT::UVSMapping>, const OT::UVSMapping&>’ should be explicitly initialized in the copy constructor [-Wextra]
Behdad Esfahbod [Wed, 30 Jan 2019 22:42:48 +0000 (14:42 -0800)]
[ci] Disable -Wunused-template on -Weverything bot
./hb-algs.hh:37:3: error: unused function template 'operator()' [-Werror,-Wunused-template]
operator () (const T& v) const { return v; }
^
Behdad Esfahbod [Wed, 30 Jan 2019 22:17:59 +0000 (17:17 -0500)]
Merge pull request #1564 from googlefonts/retain_gids
[subset] Add --retain-gids option to the subsetter.
Behdad Esfahbod [Wed, 30 Jan 2019 21:54:15 +0000 (13:54 -0800)]
2.3.1
Behdad Esfahbod [Wed, 30 Jan 2019 01:15:12 +0000 (17:15 -0800)]
[iter] Whitespace
Behdad Esfahbod [Wed, 30 Jan 2019 01:10:19 +0000 (17:10 -0800)]
[iter] Add hb_iter_with_fallback_t instead
Behdad Esfahbod [Tue, 29 Jan 2019 21:55:23 +0000 (13:55 -0800)]
[iter] Add hb_iter_with_mixin_t<>
Behdad Esfahbod [Tue, 29 Jan 2019 21:44:39 +0000 (13:44 -0800)]
[iter] Export operator << / >>
Behdad Esfahbod [Tue, 29 Jan 2019 21:39:19 +0000 (13:39 -0800)]
[iter] Rename
Garret Rieger [Tue, 29 Jan 2019 02:12:19 +0000 (18:12 -0800)]
[subset] Add expected files for retain-gids integration tests.
Garret Rieger [Tue, 29 Jan 2019 02:10:56 +0000 (18:10 -0800)]
[subset] For retain gids don't truncate glyphs past the highest requested subset glyph.
Garret Rieger [Tue, 29 Jan 2019 01:43:42 +0000 (17:43 -0800)]
[subset] Add retain-gids option to hb-subset executable.
Garret Rieger [Tue, 29 Jan 2019 01:43:11 +0000 (17:43 -0800)]
[subset] Add some subsetting integration tests covering retain gids.
Garret Rieger [Tue, 29 Jan 2019 01:05:04 +0000 (17:05 -0800)]
[subset] A few small fixes for the new subset plan api.
Garret Rieger [Tue, 29 Jan 2019 00:59:15 +0000 (16:59 -0800)]
[subset] Update hb-subset-plan.cc to match hb-subset-plan.hh.
Garret Rieger [Tue, 29 Jan 2019 00:53:01 +0000 (16:53 -0800)]
[subset] Update hb-subset-glyf.cc to use new hb-subset-plan API.
Garret Rieger [Tue, 29 Jan 2019 00:51:27 +0000 (16:51 -0800)]
[subset] Update gsub to use glyphset() method of subset plan.
Garret Rieger [Tue, 29 Jan 2019 00:50:56 +0000 (16:50 -0800)]
[subset] Correct maxp num glyph's to use new subset plan method.
Garret Rieger [Tue, 29 Jan 2019 00:50:20 +0000 (16:50 -0800)]
[subset] Re-add glyphs array to subset plan, with new name 'glyphs_deprecated'. Switch CFF subsetting to use it.
Garret Rieger [Tue, 29 Jan 2019 00:15:06 +0000 (16:15 -0800)]
Re-implement HMTX/VMTX subsetting. Update it to support glyph renumbering and simplify the implementation.
Garret Rieger [Sat, 26 Jan 2019 02:04:41 +0000 (18:04 -0800)]
Update hb-ot-vorg-table and hb-ot-layout-common to use the updated subset plan api.
Garret Rieger [Sat, 26 Jan 2019 02:03:47 +0000 (18:03 -0800)]
Remove glyph array from subset plan, make num_glyphs and glyphset private.
Garret Rieger [Sat, 19 Jan 2019 02:33:21 +0000 (18:33 -0800)]
[subset] Fix hdmx subsetting when retain gids is enabled.
Garret Rieger [Sat, 19 Jan 2019 01:49:35 +0000 (17:49 -0800)]
[subset] Compute num_glyphs during subset plan construction.
Update maxp to use the correct num glyphs.
Garret Rieger [Sat, 19 Jan 2019 01:36:32 +0000 (17:36 -0800)]
[subset] Add unit test for glyf subsetting and retain gids.
Garret Rieger [Sat, 19 Jan 2019 00:41:08 +0000 (16:41 -0800)]
[subset] fix failure to init instruction ranges values for an invalid glyph.
Garret Rieger [Fri, 18 Jan 2019 23:11:26 +0000 (15:11 -0800)]
[subset] Do some refactoring in hb-subset-glyf.cc.
- Extract code out into helper methods in several places.
- Bundle loca address, size and is short into a struct.
Garret Rieger [Fri, 18 Jan 2019 02:55:56 +0000 (18:55 -0800)]
Add retain_gids option to subset input. Update glyf and loca handling to respect retain_gids.
Behdad Esfahbod [Tue, 29 Jan 2019 02:26:23 +0000 (21:26 -0500)]
Move hb_addressof() to hb-meta.hh
Behdad Esfahbod [Tue, 29 Jan 2019 02:23:28 +0000 (21:23 -0500)]
Merge branch 'master' into iter
Behdad Esfahbod [Tue, 29 Jan 2019 02:20:12 +0000 (21:20 -0500)]
[meta] Remove _ft struct names
Using decltype() instead.
Behdad Esfahbod [Tue, 29 Jan 2019 02:16:51 +0000 (21:16 -0500)]
[pair] Use decltype
Behdad Esfahbod [Tue, 29 Jan 2019 01:47:58 +0000 (20:47 -0500)]
[CI] Peg CircleCI badge link to master branch
[skip ci]
Behdad Esfahbod [Tue, 29 Jan 2019 01:43:43 +0000 (20:43 -0500)]
[ci] Peg build status badges to master branch
[skip ci]
Behdad Esfahbod [Tue, 29 Jan 2019 01:38:15 +0000 (20:38 -0500)]
Switch README / README.md
[skip ci]
Behdad Esfahbod [Mon, 28 Jan 2019 21:39:01 +0000 (16:39 -0500)]
[iter] Add operator << to set / vector
Behdad Esfahbod [Mon, 28 Jan 2019 21:34:04 +0000 (16:34 -0500)]
[iter] Fix operator() impls
Behdad Esfahbod [Mon, 28 Jan 2019 21:23:12 +0000 (16:23 -0500)]
[iter] Add operator>> and operator<<
Behdad Esfahbod [Mon, 28 Jan 2019 21:17:36 +0000 (16:17 -0500)]
[iter] Use auto c = C.iter() internally
Behdad Esfahbod [Mon, 28 Jan 2019 19:35:41 +0000 (14:35 -0500)]
Merge branch 'master' into iter
Behdad Esfahbod [Mon, 28 Jan 2019 19:15:18 +0000 (14:15 -0500)]
[uniscribe] Whitelist function type cast
Behdad Esfahbod [Mon, 28 Jan 2019 19:12:41 +0000 (14:12 -0500)]
Fix sign comparison error
Behdad Esfahbod [Mon, 28 Jan 2019 19:09:59 +0000 (14:09 -0500)]
Fix warning
c:\projects\harfbuzz\src\hb-ot-color-cbdt-table.hh(59): warning C4146: unary minus operator applied to unsigned type, result still unsigned [C:\projects\harfbuzz\build\harfbuzz.vcxproj]
Behdad Esfahbod [Mon, 28 Jan 2019 19:09:45 +0000 (14:09 -0500)]
[pragma] Silence MSVC unknown-pragma warning
Behdad Esfahbod [Mon, 28 Jan 2019 18:41:40 +0000 (13:41 -0500)]
Try fixing MSVC build
Behdad Esfahbod [Sun, 27 Jan 2019 00:03:56 +0000 (01:03 +0100)]
[iter] Accept C arrays in hb_iter()
Behdad Esfahbod [Sat, 26 Jan 2019 23:51:43 +0000 (00:51 +0100)]
[test] Test unary operator+
"Test" as in compiles..
Behdad Esfahbod [Sat, 26 Jan 2019 23:50:54 +0000 (00:50 +0100)]
[iter] Fix hb_iter()
Behdad Esfahbod [Sat, 26 Jan 2019 23:49:37 +0000 (00:49 +0100)]
[iter] Add unary operator+ that returns a copy
Behdad Esfahbod [Sat, 26 Jan 2019 23:44:45 +0000 (00:44 +0100)]
[iter] Add hb_bool() and make hb_filter default to it for predicate
Behdad Esfahbod [Sat, 26 Jan 2019 21:58:26 +0000 (22:58 +0100)]
[meta] Back to using _ft suffix for function-object types
Seprate namespace, cleaner, more clear.
Behdad Esfahbod [Sat, 26 Jan 2019 21:54:25 +0000 (22:54 +0100)]
[iter] Test that default-constructed iterators are empty
Behdad Esfahbod [Sat, 26 Jan 2019 21:50:00 +0000 (22:50 +0100)]
pragma GCC diagnostic error "-Winjected-class-name"
See
6b6783e1588ebe5772a1edc19552219e9d931bda
Behdad Esfahbod [Sat, 26 Jan 2019 21:47:35 +0000 (22:47 +0100)]
[iter] Use hb_declval() instead of Null() to get instance
I had used Null to make one of the bots happy before. Not going
to bend to such demands anymore..
Behdad Esfahbod [Sat, 26 Jan 2019 21:44:09 +0000 (22:44 +0100)]
[iter/meta] Fix build on newer clang
The mystery failure had to do with SFINAE failure because the template
function involved was accessing ::iter_t of a type that was also named iter_t.
In this context, apparently:
warning: ISO C++ specifies that qualified reference to 'iter_t' is a
constructor name rather than a type in this context, despite preceding 'typename' keyword
[-Winjected-class-name]
We use a new macro, also called hb_iter_t(), to get iterator type of
a type. This uses declval/hb_decltype, and has the added benefit
that it returns correct type for const vs non-const objects, if they
have different iterators.
Behdad Esfahbod [Sat, 26 Jan 2019 21:15:59 +0000 (22:15 +0100)]
[meta] Mark function-objects as const
Behdad Esfahbod [Sat, 26 Jan 2019 13:05:39 +0000 (14:05 +0100)]
Merge branch 'master' into iter