kc3-lang/harfbuzz/src/test-repacker.cc

Branch :


Log

Author Commit Date CI Message
554ed06f 2022-12-01 21:51:17 [repacker] add cycle detection to the graph sort. This allows us to bail early if the graph is not acyclic.
59c45f6d 2022-11-22 12:54:50 Use hb_memcpy instead of memcpy consistently
015ca5bc 2022-08-18 21:52:55 [repacker] fix compiler alignment warning.
683c5dd2 2022-08-18 20:57:04 [repacker] further reduce base count.
5ddf41fc 2022-08-18 20:28:05 [repacker] speed up MarkBasePos test case by using a smaller basecount.
a3ed9f90 2022-08-17 23:39:11 [repacker] fix graph comparison, and mark base pos generation for the tests.
19c51ed3 2022-08-17 19:15:55 [repacker] Get mark base pos test working.
8c3db8bd 2022-08-17 00:36:23 [repacker] more progress on MarkBasePos tests.
1405f96b 2022-08-15 23:48:00 [repacker] change run_resolve_overflow_test to check for graph equivalence. Replaces a check for an exact match on the final serialized bytes. The previous check enforced equivalent topological sorting between result and expected, but we only really care that the graph's are equivalent and don't overflow.
0e48a65d 2022-08-05 20:19:11 [repacker] estimate size of classDef1 and coverage during PairPos2 split point analysis.
e1ab3550 2022-08-05 01:25:16 [repacker] correct lookup link insertion.
a733a9af 2022-08-05 00:32:47 [repacker] insert new subtables immediately after the subtable they split from in the lookup.
fdd1952c 2022-08-04 19:21:16 [repacker] PairPosFormat2 splitting - fix coverage and classdef splitting. The old code was splitting based on coverage index, but should have been splitting on class value.
51a50602 2022-08-03 22:30:42 [repacker] add test for splitting a PairPos2 w/ device tables.
54fab21c 2022-08-03 21:57:37 [repacker] get basic pair pos 2 split test working.
60d6ffb3 2022-08-03 21:01:23 [repacker] always duplicate classDef2 when splitting a PairPos2. Splits are done in a way that it shouldn't be possible to share the classDef2 between split PairPos2's so pre-emptively duplicate it.
6be15242 2022-08-03 19:02:20 [repacker] add basic test for PairPos2 splitting.
04d28d94 2022-08-01 07:45:25 [repacker] fix signedness of char in tests
674f0194 2022-07-29 17:59:50 [repacker] add extension pairpos split test.
1d2516f0 2022-07-29 17:57:18 [repack] get basic pairpos split test working.
4e7360f7 2022-07-28 22:56:47 [repacker] begin adding tests for PairPosFormat1 splitting.
f56e66f3 2022-07-25 21:55:03 [repacker] for ext promotion choose lookups from highest subtables per byte to lowest. Attempts to roughly maximize the number of subtables that are non-ext.
9d0b2da5 2022-07-25 20:46:49 [repacker] count subtable size in each group of consecutive layers for extension promotion decisions. Enforce that the following groups are all <64k in size: - LookupList + Lookups - Lookups + SubTables - SubTables + Descendants
7de136f8 2022-07-22 21:04:34 [repacker] add ext promotion test.
6fad6b41 2022-07-06 19:18:27 [repacker] add tests for special casing of 24bit offsets.
7078560e 2022-06-24 19:20:20 [repacker] extract graph serialization code into a seperate file.
20b02a67 2022-06-24 18:58:17 [repacker] Begin splitting up the repacker implementation into several files.
b32ca2a2 2022-05-19 20:45:39 [subset-perf] remove sort_kahn from repacker. Without an optimized FIFO queue implementation it's nearly as slow as the now optimized sort_shortest_distance.
441877f5 2021-12-09 16:38:05 [repacker] add test case for using max priority to resolve an overflow.
fa966bcc 2021-12-06 12:54:19 [repacker] create repacker output buffer after final length is known. Don't rely on a buffer provided by the caller, as it may not be large enough.
9121ed0c 2021-11-30 13:45:22 [subset] Improve sharing of Ligature subtables. Ligature subtables use virtual links to enforce an ordering constraint between the subtables and the coverage table. Unfortunately this has the sideeffect of prevent the subtables from being shared by another Ligature with a different coverage table since object equality compares all links real and virtual. This change makes virtual links stored separately from real links and updates the equality check to only check real links. If an object is de-duped any virtual links it has are merged into the object that replaces it.
5bfc7d10 2021-09-23 14:45:20 [repacker] remove VirtualOffset struct. Make and add_virtual_link () specialization of add_link() instead.
bc4c5341 2021-09-23 14:41:42 [repacker] Add test for virtual links in the repacker.
7f0ede4f 2021-10-05 13:10:01 [repacker] refactor resolve overflow tests to use a helper.
7883b7ed 2021-10-05 12:46:59 [repacker] Add additional splitting spaces test. Fix issues it uncovered.
6265663d 2021-10-05 11:30:04 [repacker] add test for splitting spaces.
0dccbf36 2021-09-29 14:28:27 [repacker] Handle the case where a subgraph root has an incoming 32 and 16 bit edge. In this case the entire subgraph from that root will be duplicated.
816c5302 2021-09-28 16:04:27 [repacker] restrict 32 bit subgraph connected component search to only nodes reachable via directed links.
67eb222b 2021-09-28 13:36:06 [repacker] when assigning each connected subgraph a space, also isolate it. This will break any links coming from space 0 (ie. the 16 bit offset only space).
307acf7f 2021-09-28 12:08:18 [repacker] add space assignment based on connected components. Assign each connected component that is underneath one or more 32 bit offsets into a unique space. This ensures that 32 bit subgraphs which are connected are packed into the same space.
efda2f14 2021-09-24 16:28:34 [repacker] fix bug in subgraph isolation. Prior to this fix id remapping at the end of the isolation operation was fed the old subgraph instead of the new one. Which results in object indices being remapped for the nodes outside of the new subgraph. Adds a test which detects this problem.
9247d24d 2021-09-22 16:00:02 [repacker] s/0/HB_TAG_NONE
d0daa7a5 2021-09-09 10:25:43 [repacker] add a couple more complex isolation tests.
58facaad 2021-09-08 16:08:48 [repacker] put each 32 bit subgraph into it's own packing space. Each subgraph pointed to by a 32 bit offset should be packed into it's own space. This adds a space property to vertices which affects the distance calculation. This effectively places the distances for all of the nodes of a 32 bit subgraph into a distinct range. Thus all of the nodes of the subgraph will be packed together.
543a3f97 2021-09-08 15:07:02 [repacker] Add repacker test for subgraph isolation.
41bbf281 2021-09-08 10:14:00 [repacker] do extension subtable isolation before starting resolution attempts.
bb48bf52 2021-07-08 10:53:45 Rename misc uses of "free" In preparation for fixing https://github.com/harfbuzz/harfbuzz/issues/3044
73ed59f7 2021-03-17 15:53:10 [subset] store errors in the serializer as a flag set. Make check_assign/check_equal specify the type of error to set.
e2f14e81 2020-11-11 13:55:35 [subset] fix memory leaks in test-repacker.
a7a86a6e 2020-11-06 16:22:48 [subset] Add prioritization offset resolution. Vertices can now be prioritized to force them to sort closer to their parent. The resolver will attempt to use this for overflows on non-shared vertices.
b452b2c7 2020-11-06 15:37:05 [subset] refactor repacker graph to cache edge count and distances of vertices.
75414e82 2020-11-05 16:39:23 [subset] Add table duplication overflow resolution.
4c8dd41e 2020-11-05 09:21:25 [subset] re-write compute distances to use an array lookup for the distance map.
aaa7873d 2020-11-02 16:16:27 [subset] add topological sort by closest distance via Dijkstra's algorithm.
8ebe5d73 2020-11-02 14:51:39 Implement will_overflow ().
f4c78cc7 2020-10-30 10:29:51 [subset] Implement Kahn's algo for topological sorting instead of BFS.
00f393dc 2020-10-29 14:58:34 [subset] finish up BFS sort implementation.
1584d3cb 2020-10-28 17:49:09 [subset] Start a proof of concept implementation of the GSUB/GPOS offset overflow resolver.