[MPEG-OTSPEC] Introducing breaking changes into the spec (was: RE: [EXTERNAL] Proposal to deprecate derived search values)

David Singer singer at apple.com
Fri Sep 11 23:42:38 CEST 2020



> On Sep 11, 2020, at 14:33 , Adam Twardoch (Lists) <list.adam at twardoch.com> wrote:
> 
> I think OFF2 should strive to limit the choices unless really necessary. This helps creation of test suites. The less you need to test the better, and also with this approach to add extra fields to the tables, implementers often internally model their software on the lattest version and somehow synthesize the missing values.
> 
> For example OS/2 v0 & 1 don't have x-height or caps height, but the latest CSS drafts have provisions for starting the first line at caps-height. So a font engine has to have a fallback to synth these values even though 99.9999% of fonts has OS/2 newer than v1. And of course those synthesized fallbacks will differ across implementations.
> 
> So why not disallow those old versions altogether in OFF2? Then a browser maker might be able to safely get rid of that synthesizing code, at least in the faster OFF2-compliant code path. Fewer lines of code, fewer "ifs", faster execution and a feasible compliance test suite! 
> 
> OS/2 is just an example. There are tons of such things in there. :)

Yes. Another thing to do is to consider version-linking a load of stuff, for example:

A conformant OFF2 font file shall contain:
an XXXX table of version Y or greater
…

and shall not contain:
a depr table
…

this doesn’t stop people making older versions; it does simplify the world, in that you should not find files with old version of aaaa but modern bbbb, and so on. The testing is then easier, as the version combination explosion is contained.


David Singer
Manager, Software Standards, Apple Inc.



More information about the mpeg-otspec mailing list