# Fontlog.txt
# -*- encoding: ASCII -*-

Kurinto Font Folio v2.196 [Full] - Revision History

    This file provides a log of revisions made to Kurinto. This information
    should be distributed along with the Kurinto fonts. If you use these
    fonts in a derivative work, you should augment this Revision History and
    distribute it along with your derived fonts.

    The Kurinto Font Folio may be freely obtained at
    https://www.Kurinto.com/. The Kurinto web site also has extensive
    background information on this Font Software.

    See the file ReadMe.txt for general information on the Kurinto fonts.

Release History

    This section has a very brief summary of releases. See the Revision
    History section below for more details on these releases, as well as
    documentation on all the internal versions.

  2020-07-30	Clint Goss	Kurinto v2.199
    First major release of Kurinto on www.Kurinto.com.

  2018-08-11	Clint Goss	Kurinto v1.07
    Release of an upgraded version of Kurino Book with the Breath Flute
    project (www.BreathFlute.com), v79 release.

  2018-07-22	Clint Goss	Kurinto v1.04
    Upgrades released coincident with the Native Flute Handbook Seventh
    Edition. Includes v1.04 of Kurinto Mono and v1.03 of Kurinto Sans.

  2018-01-22	Clint Goss	Kurinto v1.01
    First version released coincident with the Native Flute Handbook Sixth
    Edition. Font families released: Kurinto Book, Sans, Mono, Maru, Mincho,
    and Naskh. Version numbers are v1.00 and v1.01.

Revision History

    Major and minor changes and significant events, most recent first.
    Entries marked (INT) are unreleased internal versions.

  2020-07-26	Clint Goss	Kurinto v2.196 (INT)
    Fix a small typo in the Designer field of the 'name' table of every
    generated font.

    Update the Description field in the name table of generated fonts.

    Update the Description field of all generated PDF documents: User's
    Guide, Specimen Book, Sampler documents, Code Charts, Language Book,
    QuickStart, and Unicode Cheat Sheet.

    Update the Snippets.docx file for revised description text.

    Eliminate non-ASCII characters from Fontlog.pod - pod2text complains and
    exits with a krelease-stopping error code on UTF-8 characters.

  2020-07-24	Clint Goss	Kurinto v2.195 (INT)
    Disable generation of 'name' table Version entry for Japanese in the
    [Settings] table.

    Set up GitHub issue tracker repository at GitHub.com/ClintGoss/Kurinto.

    Develop Mono Core sampler files - the Mono (Main) sampler didn't make
    the grade.

    Fix accidental text-wrap in ReadMe_TEMPLATE.txt.

    Fix [Map] table for Plot Core - missing Draw and MathSym entries.

    Complete Fira Sans CG core characters.

    Add U+2423 Open Box to Junicode.

    Correct RSB of $F1B1 in Book.

    Repair Kurinto Book Overscore "0".

  2020-07-22	Clint Goss	Kurinto v2.194 (INT)
    Fix a long-standing bug in 'kset': Blank entries in the [KFonts] table
    are an issue, since they could be implemented as either (A) missing
    'name' table entries or (B) 'name' table entries with a "" value. Before
    v2.129, 'kset' implemented (B) setting 'name' table entries to "". This
    caused a *nasty* bug where the Typographic Family / Subfamily were set
    to "" and they showed up as blank font names in BabelMap (but not Word)
    *and* it was very difficult to delete the fonts after installation (had
    to clobber them from the registry before deleting the files). The intent
    in v2.129 was to implement (A) - map incoming "" values to missing
    'name' table entries. However, the actual fix implemented in v2.129 was
    to not set a field whose [Settings] / [KFonts] value was "". This caused
    a *nasty* bug where the WWS Family / Subfamily appeared to be set to
    incorrect values. This was caused by incoming fonts that had an
    incorrect value already set for that field (Kurinto Mono was a merge of
    Kurinto Mono Core, and it carried a WWS Family value of "Kurinto Mono
    Core", which we want to wipe out in Kurinto Mono, but this was not being
    done, so Kurinto Mono wound up with a WWS Family value of "Kurinto Mono
    Core") Reworked in this version to undef() the value. Note that there is
    currently no way to set a 'name' table entry to "".

    Correct entries in the [KFonts] Fixed Pitch Width fields. They were
    setting CNew to 1228 (based on Avg Advance Width values from the
    incoming fonts) rather than 1229, the known ADW of the Courier New
    metric font.

    Correct ADW of $10FF09 in Kurinto Prime Multi1229 - it was 1078 - should
    be 1229.

    Align the ADW for stamp characters (Font Identification $10FF01-02) in
    Kurinto Mono to multiples of 1229. Done with a *hack* in 'kset' that
    relies on the font name ...

    Sprinkle Easter Eggs.

    Augment Roadmap grids in Roadmaps.xlsx and the User Guide to show
    unimplemented blocks due to lack of fonts. Mostly in the SMP.

    Institute Font Family Name length checking ... see the Font Name section
    of the User's Guide for details.

    Update the ReadMe_TEMPLATE.txt file for releases.

  2020-07-21	Clint Goss	Kurinto v2.193 (INT)
    Fix non-zero offsets in DrawCG - 2 at $2591-93.

  2020-07-21	Clint Goss	Kurinto v2.192a (INT)
    Remove S_CPic from [Subsets] MathSymCG_Type_Main ... it is already in
    MSanTrunk(D) sourced from TopCG and showed up as a duplicate durint the
    2.192 kmake.

    Overhaul of Kurinto Mono. See
    /Kurinto/Info/FixedWidthFonts/KurintoMono_StatusJuly2020.docx for
    details.

    Add Kurinto Mono Aux.

    Do we want Kurinto Mono Core Narrow/Semi-Wide? Kurinto Mono
    Narrow/Semi-Wide Aux? Kurinto Mono Narrow/Semi-Wide HK, JP, KR, SC, TC,
    CJK? That would be 64 additional fonts, all told ...

    Mono-only rebuild: kmake -ABCGHJK Kurinto Mono

  2020-07-18	Clint Goss	Kurinto v2.192 (INT)
    Complete all Sampler documents.

    Complete the four LanguageBook documents.

    Update the User Guide for the reduced Core character set.

    Complete the User Guide.

  2020-07-17	Clint Goss	Kurinto v2.191 (INT)
    Fix Roma "c" and "r" ... both of which were inexplicably missing.
    Discovered this on a complaint about the sample string from
    FontValidator (which contains an "r"). Fixed in JunicodeCG_Rg.fcp by
    copying from Junicode_1.002_2018_OFL.ttf.

    Error in [ScriptRanges] cause [Box Char] to be skipped in the TopCG font
    for inclusion into Text Aux. Code Chart for Main should show [Box Char]
    at F010 in the Box Drawing Extension-A block.

    Implement the Heavy Arcs and Diagonals in all DrawCG fonts. Still have
    to do the double Arcs and Diagonals.

    Begin using Kurinto Text Aux for "Symbol for ..." dashed-box characters
    rather than SpecialsUCG.

    Remove 034F COMBINING GRAPHEME JOINER from the list of combining
    characters for the Core Code Chart (KCC_Core.cmb).

    Remove core characters that were deleted from the core character set on
    6/28/2020 from various documentation files. The definitive list of
    changes is in KurintoPrime_DevelHistory.docx. This change affects:
    /DB/Roadmaps.xlsx [CorePrint], /Dev/CoreCharacters/CoreCharacters.docx,
    Specimen Book.

    Change the Control Pictures ($2400-$2426) block of most fonts (except
    mono-spaced fonts) to use TopCG rather than MathSymCGSans/Serif. The
    TopCG glyphs have the same look as those implemented in the
    (Kurinto-specific) Control Pictures Extended block. This also eliminates
    the ludicrously contour-intensive implementation in MathSymCGSerif
    (probably inherited from Symbola). This involved a change in the
    FontInfo.xlsx [Subsets] / [Map] tables. This should show up in the
    Roadmap [CorePrint] table and also allow Text Aux to be used for the
    Core Code Charts.

    Add the Control Pictures block to Aux fonts so that a single font (eg.
    Text Aux) can be used for all Control Pictures + Control Pictures
    Extended characters.

    Add UFI samples to the Specimen Book for Kurinto Roma and Kurinto Book.

    Add two new pages of metrics to the Specimen Book that show Latin,
    Greek, Cyrillic, and Math symbols - caps and lowercase - side by side
    across different fonts. Helps in setting scale factors. New Metrics.docx
    in Specimen Book devel directory.

    Implement scale factors for the primary fonts of: Seri/LibSans=106%,
    News/Stix2=104%, Roma/Junicode=103%, Type/TypeCG/CourierPrime=116%. Test
    is the new SpecimenBook_X_Metrics.docx

    Update the Specimen Book documents for the reduced Core character set.

  2020-07-15	Clint Goss	Kurinto v2.190 (INT)
    Implement another version of the OS2.usLastCharIndex fix - the one by
    Bob Hallissy that needed regression testing.

    Remove alt-language names for fonts and font subfamilies - too complex
    and some apps may get it wrong. Also, the way it is currently, there are
    alt-language for the Subfamily ("Bold Italic") but NOT for the Family
    ("Kurinto Text") ... so maybe apps are getting confused, selecting
    Japanese-language, and ending up with a blank name.

    Clean up the Sample Text - English-only for fonts that do not support
    all the languages. Not sure how Font Validator works, but it complains
    on virtually every that has a multi-language sample text. (index 114
    mostly - in the middle of Devanagari - but index 32 for Roma fonts) Gave
    up and reduced all sample text to English-only.

    Add new code points in the UFI subset to kcc_ufi.cpr.

    Correct F001 and F002 in kcc_ufi.cpr.

    Add new BoxA script - Box Drawing Extended-A at F010-F01F... primarily
    for the space character for box drawings, but fill it in with other
    useful characters. This is intended for the Main variant.

    Add [Box SP] dashed box character to SpecialsUCG font at $E502 and TopCG
    at $10F8C3.

    Add cross references for all Visible Formatting Marks in the Aux Code
    Charts.

  2020-07-14	Clint Goss	Kurinto v2.189 (INT)
    Issues with some fonts not showing properly - they are messed up in the
    Excel list of fonts (tiny names) and they create blank cell values when
    used for the font showing text. The affected fonts are:

            Kurinto Aria SC
            Kurinto Grga Core
            Kurinto Mono Core
            Kurinto Mono SemiWide
            Kurinto Sans Core SemiBold
            Kurinto Text CJK
            Kurinto Text JP
            Kurinto Text Music
            Kurinto TMod JP

    HOWEVER ... this problem *went away* after a reboot. This was the forced
    reboot that terminated the full build (see below) ... but it did cure
    the problem on the *old* (v2.188) install of the fonts.

    Reverse the sense of OS2.fsSelection Bit 8 - it should be off when Need
    WWS Fields is On in [KFonts].

    Change how the three Family/Subfamily entries in the Name table work.

                    Old                     New
                    ===                     ===
    Font Family     Kurinto Book JP         Kurinto Book JP (no change)
    Font Subfamily  Bold Italic             Bold Italic     (no change)
    Typo Family     Kurinto Book JP         Kurinto Book
    Typo Subfamily  Bold Italic             JP Bold Italic
    WWS  Family     (blank)                 Kurinto Book JP
    WWS  Subfamily  (blank)                 Bold Italic

    This new strategy was tested against an install of just the 40 Mono
    typeface fonts. (Even though the full build failed - see below - it got
    far enough to generate all Mono fonts.) This change in font naming
    produced *No* identifiable changes in the way fonts are presented in the
    menu and displays of Microsft Explorer (the file manager - with its
    specialized display of /Windows/Fonts), Microsoft Excel, or MS Word. I
    had expected the top-level display of "Kurinto Mono", "Kurinto Mono
    Core", "Kurinto Mono SC", etc to collapse to just "Kurinto Mono", but
    that did not happen.

    The field OS2.usLastCharIndex was not being set correctly. If the font
    has code points beyond the BMP, the value should be FFFF. However, we
    are setting it to the max value in the BMP (typically FFFD for Core
    fonts, based on the Object Replacement character). The documentation
    (MicrosoftTypography_OpenTypeSpecification.pdf) says (pdf page 478):
    "Fonts that support supplementary characters should set the value in
    this field to 0xFFFF." This was fixed with a mod to Font::TTF::OS_2.pm.

    Full build failed on forced reboot by Microsoft Windows. Sigh.

  2020-07-13	Clint Goss	Kurinto v2.188 (INT)
    Complete CYFI implementation.

    Complete all UFI characters.

    Modernize UFI [Map] generation to use Noto Sans Gothic and MathSymCG.

    UFI only rebuild: kmake -ABCHJK Kurinto BookUFI BookUFIItalic
    BookUFIBold BookUFIBoldItalic RomaUFI RomaUFIItalic RomaUFIBold
    RomaUFIBoldItalic

    Complete the UFI.xlsx database and all generation of both UFI code
    charts.

    Change created timestamp of CarlitoCG. We keep getting: WARNING:
    'created' timestamp seems very low; regarding as unix timestamp ... from
    pyftsubset in the kmake run.

  2020-07-08	Clint Goss	Kurinto v2.187 (INT)
    Split Unibook Aux Verdurian and aUI blocks into a separate file because
    of the E200 fixed code point restriction in Unibook.

    Eliminate hard-coded glyph IDs in the "Adjust Space Characters"
    directive in the [Settings] table. These are eliminated simply by
    skipping the WARNING check in 'kset' when handling "Adjust Space
    Characters".

    Fix krelease of XGN files for the Developer's release.

    Add 5 PUA Aux scripts from the UCSUR: Standard Galactic, Braille
    Extended, Cylenian, Syrrin, and Semtog.

    Fix an "off by one" bug in regular icons.

    Add cross-references for all control pictures to the Code Charts.

    Add cross-references for all brand icons to the Code Charts.

    Remove the Fontawesome logo FULL (too wide) F559D in all 3 scripts.

    Add Hieroglyphica blocks to code charts.

    Add Creative Commons blocks to code charts.

    Annotate all Seven-Segment figures in the code charts.

    Fix Hieroglyphica-C Old Personal Computer - last two characters.

    Add P_SILP script to Unibook.

    SMuFL1.3 / Music variant code charts.

    Add Sans Music.

    Implement the new 'kufi' utility to pre-process UFI.lstt (Template file)
    into font-specific .lst files.

    Change MUFI3 and MUFI4 variants to UFI (a single variant).

  2020-06-28	Clint Goss	Kurinto v2.186 (CONTINUED) (INT)
    Major overhaul of the High PUA using the new TopCG font.

    Add 7 scripts (P_Genji through P_VSCP). 929 characters in total.

    Remove many Kurinto Prime characters.

  2020-06-18	Clint Goss	Kurinto v2.186 (INT)
    Implement all of core characters for Kurinto Olde.

    Fix missing Join directives for Arte.

    Implement Open Box $2423 for Arte.

    Add Olde Wide and Narrow.

    Fix 'n character in Kurinto News - ADW.

    Develop PUA code charts using Unibook. Debug Unibook (!!)

    Update the ACF block in CharInfo.xslx - it was *way* out of date!

  2020-06-16	Clint Goss	Kurinto v2.185 (INT)
    Propagate the Apple logo to all core fonts in /FDev.

    Propagate the FB01/2 to F001/2 mapping to all core fonts in /FDev.

    LSB at x=0 for all core fonts in /FDev.

  2020-06-15	Clint Goss	Kurinto v2.184 (INT)
    Clean up kmod trace output a bit to avoid overflowing lines.

    Expand Specimen Book and segment to avoid Word Save-As issues.

    Implement Cardo $2423 Open Box. This was the only missing Core
    character.

    Implement the Apple Logo at $F8FF in Cardo.

    Implement the P_Apple script for this one character at $F8FF.

    Implement ACF for Cardo. Complex!

    Implement $2423 and Apple Logo for NtSansCG. Do not implement ACF.

    Implement $FB00-06 for NtSansCG.

  2020-06-12	Clint Goss	Kurinto v2.183 (INT)
    Implement the new kmod facility to adjust GPOS tables for Caladea,
    EBGaramond, Fira Sans, Libertinus Sans, NtMono, NtSans, Stix1, Stix2,
    and MathSymCGSans (not MathSymCGSerif - not needed, and not
    MathSymCGMulti - too complex). Not needed because they were initially
    UPM 2048 or because they have no OpenType directives: DrawCG, Junicode,
    and MPlus.

    Include new scripts of Fairfax HD for previously unimplemented UCSUR
    blocks.

    Update the Representative Characters facility to bring it up to date
    with currently implmeneted fonts.

    Fix bug in CharInfo.xlsx [UCSUR_PUAChars] that produced the wrong ranges
    for Glaitha-A and -B.

    Upgrade to the 2020 versions of FairfaxHD and Constructium in the [Map]
    and [Sources] tables.

    Eliminate the separate use of an auxiliary Fairfax font for Voynich in
    favor of FairfaxHD.

  2020-06-10	Clint Goss	Kurinto v2.182 (INT)
    Add a timestamp on each kmake font step (at the "====" line) to allow
    calcs of the time for each font generation.

    Reduce the output of kmod during a kmake run.

    Have kmod identify fonts with no GPOS table and skip Phase 3.

    Have kmod perform a file copy if no actions / phases are needed.

    Add the kmake log to the distribution package. This is done by hand
    after running a 'krelease'.

    Use v2.181 to produce the Road Rally Handbook in PDF.

    Add S_CopE (Coptic Epact) to Trunk Aux Sans so that it winds up in
    Kurinto Sans Aux.

    Complete the Representative Characters system.

    Correct the .ReMap files for icons ... they had the old desination
    locations for Solid and Brands.

    Implement .ReMap for Abydos and the 3 SPUA-B Hieroglyphica blocks.

    Full build failed on forced reboot by Microsoft Windows. Sigh.

  2020-06-05	Clint Goss	Kurinto v2.181 (INT)
    Add Light and Light Italic versions of Kurinto Book and Kurinto Book
    Aux.

    Incorporate updated version of kmod that translated GPOS OpenType
    directives. See https://forum.high-logic.com/viewtopic.php?f=3&t=8431
    for a full discussion.

    Full build time is now 16h 24m, up from 15h 40m from v2.180 because of
    the expanded kmod and the generation of Book_Lt, Book_LtIt, BookAux_Lt,
    and BookAux_LtIt. Build times are now:

    Step A     0:00 - Copy applications from /Dev to /Bin.
    Step B     3:51 - Extract FontInfo.xlsx => CSV => TLH (kdb).
    Step C     0:01 - Generate /Man documentation.
    Step F     0:47 - Generate Kurinto Prime fonts.
    Step G     0:01 - Script duplication check.
    Step H     0:00 - Map Table consistency check.
    Step I     7:24 - Pre-check each source font.
    Step J  8:44:56 - Modify/Subset source fonts and produce Kurinto Fonts.
    Step O     2:26 - Optimization.
    Step V  1:48:20 - Kval Font Validation.
    Step W  2:23:11 - FontBakery Validation.
    Step X    55:36 - FontValidator Validation.
    Step Y    41:00 - Kismet Validation.
    Step M  1:21:55 - Generate metrics for all generated fonts (kmet).
    Step R    14:54 - Generate PDF Reports for all generated fonts (kfret).
    kmake  16:24:22 - Total pipeline run time hh:mm:ss
    .

  2020-06-02	Clint Goss	Kurinto v2.180 (INT)
    Include the Nishiki-Teki font in MSer / MSan for both regular and bold.

    Generate Panose.txt from krelease.

    Implement the ACF and related OpenType features for Kurinto Mono.

    Update the Kurinto Mono section of the User's Guide.

    Handle issues of duplicated Lookup references in features in Kurinto
    Mono. This is a big issue in FontCreator, which changed behavior from
    13.0.0.2643 to .2645 (from halting on error to ignoring the duplicate
    with a warning).

    'kmod' generates incorrect Anchor positioning after a UPM change (or any
    scaling operation). This is a big issue, since re-scaled fonts were
    subsequently used for continued development (eg. NtMonoCG). The issue
    applies to many (all?) positioning directives in GPOS (and GSUB?) tables
    ... such as kerning.

    Develop checks for the maximum number of characters to uniquely specify
    a Kurinto font name. Fonts with a family name that is too long (beyond
    31 characters) cannot be selected on MS-WORD. See
    https://github.com/googlefonts/noto-fonts/issues/1566 Impemented in
    FontInfo.xlsx [KFonts] Truncated Font Name column with a new entry in
    the [Params] overview.

    Install new Hhea.pm code by Bob Hallissy for setting MinLSB, MinRSB, and
    MaxExtent based on the OpenType Spec definitions. This needs a full
    pipeline build for testing ...

  2020-05-31	Clint Goss	Kurinto v2.179 (INT)
    Generate the Scripts.txt file as part of krelease.

    De-select the S_Cont Script (Controls - $00-1F, $7F-$9F) for all fonts.

    Fix bug in [Subsets] that eliminated Tibt for the SvastiTibt subset,
    removing all Tibetan characters from TB fonts.

    Implement scripts U_Visi, S_Ches, and S_ZOlc using NishikiTeki.

    Correct the Roadmaps chart for U_Pikto (starting at F0E70 rather than
    F0E80).

  2020-05-29	Clint Goss	Kurinto v2.178 (INT)
    Fix error in metrics master setting in [Map] for Arimo.

    Add pre-check in kmake for the presence of the metrics master file. This
    caused the crash that terminated the v2.177 pipeline run.

    Clean up Script Duplication Check bugs in the [Map] / [Subsets] system
    for Armn (Armenian) and P_ACF. This should cover the remaining 80 errors
    from the Script Duplication Check pass.

    Add Aux variants for Aria and Cali.

    Add Main variant and all language variants for TMod.

    Add all language variants for Arte.

  2020-05-28	Clint Goss	Kurinto v2.177 (INT)
    Develop the Unicode Cheat-Sheet and add it to the distribution packages.

    Dual output for 'kismet' (new -P option) to avoid a double run in the
    Kurinto pipeline, which takes over an hour for both runs.

    Eliminate some less-important files for the kismet run, such as
    /HK_BdIt/ and /CJK_It/.

    Show complete pipeline run time on the 'kmake' output.

    Implement CreativeCommonsCG_Rg.fcp and incorporate into Aux variant
    fonts.

    Add Aux variant and 7 Asian languages variants to Seri.

    Add Main variant and 7 Asian language variants to Cali.

    Clean up some Script Duplication Check bugs in the [Map] / [Subsets]
    system. Down from 180 errors to 80.

  2020-05-27	Clint Goss	Kurinto v2.176 (INT)
    Split the 4+ hour validation phase of kmake into four separate passes
    (kval, Font Bakery, FontValidator, kismet) and report the timing for
    each.

    Remove fontbakery reports on monospaced fonts in kscrub. This is
    problematic, since kscrub is rather dumb about deleting content and does
    not update a "FAIL: 1" at the end of the font report. Replace the
    monospaced complaint with a single-line placeholder.

  2020-05-26	Clint Goss	Kurinto v2.175 (INT)
    Fix error in vertical metrics settings for Aria (Main). This was a bear.
    Turns out that an UpdateGlobal was causing kset to mark the OS/2 table
    as dirty, which was re-calculating all vertical metrics. This was *not*
    happening if the UseTypoMetrics bit was set, but Aria has this bit off,
    so it was being performed. We establish a new
    '_doNotUpdateVerticalMetrics' base variable for OS_2.pm and set it from
    kset. See OS_2.pm and also /dev/kset/Testing_20200525.

    Straighten out the issue in kset.pl on an Update Global operation. kset
    performs an Update on the hmtx table, because we may have futzed with
    the advance widths. However, this forces the LSB of each glyph to the
    xMin of its bounding box. It will also sets the head.flags bit 2 on. If
    any glyphs have an intentional offest (i.e. LSB <> xMin), this will
    *destroy* the LSB of those glyphs. Investigated this further on
    5/25/2020 and this is a definite issue! DrawCG_1229x....ttf had 4
    offests of 1, and they came through the final Kurinto font with a zero
    offset, but a glyph that was aligned off by one. Having zero LSBs I
    think *is* generally a good idea (there is probably an optization in the
    rendering engine). (I later found that this in
    https://docs.microsoft.com/en-us/typography/opentype/spec/glyf: "The
    scaler will perform better if the glyph coordinates have been created
    such that the xMin is equal to the lsb.") However, it means that all
    source fonts must abide by this restriction. This can be handled in FC
    with a Glyph Transformer setting Left Side Bearing Point at x=0. A
    warning message was added to hmtx.pm on 5/25/2020 to highlight when this
    situation occurs.

    Implement a new tool: kcheck - to pre-check each font we are including
    in the pipeline. This is for non-zero offsets. kmet does check this, but
    for all fonts. We need a specific check for the actual fonts included in
    the pipeline, so we can go fix them (in FontCreator).

    Add a new pass in kmake - G3 - to run kcheck on each font.

    Resolve the issue of whether off-curve points are included in the
    calculation of the glyph bounding box. They are. On 5/25/2020, I tested
    this in GlyphMetrics.pm - temporarily having it consider only on-curve
    points.
    https://forum.glyphsapp.com/t/ms-validator-error-e1112-composite-maximal
    -deviat ion-2-fu/8136 ... and the Font Validator check E1112 which says:
    "The bounding box value for the indicated glyph does not agree with the
    bounding box dimensions defined by the control points at the extremes of
    the glyph contours. For a composite glyph, the calculation is performed
    after transformation has been applied to each components of the glyph.
    This problem may be caused by the font creation tool incorrectly using
    off-curve control points to calculate the bounding box, or by including
    side-bearing values. For more information, see the glyf table
    specification." http://go.microsoft.com/fwlink?LinkID=10348 ... which
    does not really specify how this is done. Sigh. Well this does seem to
    be settled: FontCreator produces fonts with Bounding Boxes set based on
    all control points - on- and off-curve. Considering them in this loop
    causes this loop to match what FontCreator outputs exactly. Also, Martin
    Hosken's Glyph.pm code in FontUtils does consider all control points.
    Also ... what would we do with a glyph with no on-curve points? This can
    and does happen - see Caladea , the code point for $02DA ring - which is
    round shapes done with all off-curve points.

    Upgrade 'kismet' to compare vertical metrics between the subject font
    and the metrics master. This would have identified the 5/25/2020 bug
    where kset UpdateGlobal was overwriting the vertical metrics. All OS2
    and hhea fields vertical metrics fields are checked as well as the
    UseTypoAscender bit.

    Change the operation of GlyphMetrics.pm to set the depth of a simple
    glyph from one to zero. This matches the definition provided by
    https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6ma
    xp.html as well as the values expected by FontValidator and calculated
    by FontCreator. Make a similar hack/change to Maxp.pm for maxLookups
    (which is maxComponentDepth).

  2020-05-24	Clint Goss	Kurinto v2.174 (INT)
    Implement TILT checks in the central [Params] page as a single location
    to check the whole workbook.

    Clean up [Sources] to simplify source font lookups.

    Implement optimization in SIL Font::TTF Cmap.pm from pull request for $`
    optimization. This applies only to 'cmap' format 2 tables, but the the
    presence of the $` in the code apparently affects all perl pattern
    matching.

    Develop kacf to support implementation of Alt Caps and Figures.

    Implement ACF for KCurvCG.

    Document all Unicode ligatures in the User Guide.

    Add Appendix 2 to the User Guide for the ACF block.

    Upgrade CharsCG to complete core chars, multi-map 2 ligatures, set up
    OpenType features, and log figure style.

    Upgrade Kurinto Type, Aria, and CNew with OpenType features, alt caps
    and figures, and various upgrades.

    Expand Kurinto Aria to a full complement of variants (Main, and all
    language variants).

  2020-05-13	Clint Goss	Kurinto v2.173 (INT)
    Fix bug in 'kset' when setting the vertical guide characters for the
    bottom segment of vertical guides at the LBL.

    Complete setting up the last 6 FDev versions of the core source fonts
    that provide the Basic Latin subset: NtSans, LibSans, Kelvinch, Stix2,
    FiraSans, and Junicode. All are needed, since the alt caps and alt
    figures (glyphs, code points, and OpenType directives) need to be
    developed in FontCreator for each.

  2020-05-12	Clint Goss	Kurinto v2.172 (INT)
    Incorporate kopt into the kmake pipeline and add a new /PreOpt
    subdirectory to /Gen_FOLIO to hold the .ttf files before they are
    optimized.

    Adjust all vertical guide characters in 'kset' that need their UBL and
    LBL repositioned (in particular, the metric compatible fonts). This was
    done with auto-setting of all vertical metrics glyphs based on the
    winAscender and winDescender values. The decimal vertical metrics
    required scaling of the boundary height across all the lines.

    Develop a new Prime font - KurintoPrimeZeroMulti1229_Rg.fcp - for use
    with Mono. This is less restricted than KurintoPrimeZero1229_Rg, since
    advance widths can be 0, 1229, 2458, 3687, 4916, etc.

  2020-05-10	Clint Goss	Kurinto v2.171 (INT)
    Implement a new Map.txt file in release packages using a clone of the
    closure code in kmake for Script Collision Avoidance. This documents
    which source fonts are included in each Kurinto font, and which scripts
    they contribute.

    Develop knop ("Kurinto No-op") to copy an OpenType file (through the
    Font::TTF code).

    Revisit the issue of ordering tables in the output file. Finally got
    this working on limited test cases. This involved the realization that
    the ordering of the entries in the Table Record is independent of the
    ordering of the tables themselves. Also wrote a more reasonable
    list-sorting code. However, the limited test cases did not bear out on a
    full build. Fonts output from 'kmod' with optimal table ordering have
    corrupt glyf tables and fail as input to a subsequent pyftsubset.
    Determined that using the optimal ordering excpt for outputting head and
    loca following glyf worked on a full build. This is "better" (closer to
    optimal) than the default alphabetic sorted order of Font->out(), but
    still not optimal. Tries issuing a Head->updateGlobal() prior to
    writing, but that did not work. Developed a new tool - kopt - optimize
    the table ordering of an OpenType file, done as a file copy. This will
    involve an extra file operation / step in the pipeline, but I don't see
    an alternative. Extensive log of testing in /Dev/kopt/ See also
    https://github.com/silnrsi/font-ttf/issues/6.

    Add a test to kval for the ordering of the **Table Record** at the start
    of the font (as opposed to the ordering of the tables themselves). This
    ordering *must* be alphabetical, according to the OpenType spec.

    Set all advance widths on the MathSymCGMulti1229_Rg font. No
    differential width scaling.

  2020-05-09	Clint Goss	Kurinto v2.170 (INT)
    Repair [KFonts] bad reference metrics font for the Mono fonts - caused
    many elements to be mis-set in the font, and it was unusable by Windows.

    Add kval checks for sxHeight and sCapHeight.

    Add Script Collision Avoidance to kmake. A new part of phase G detects
    if a target font has include multiple instances of a any script, from
    the same or from different source fonts. This system goes hand-in-hand
    with a "Target Font Makeup" system that reports which source fonts are
    contained in each target font (to be implemented). Initial run shows 284
    errors (!)

    Reorg of the [Subset] table to place them in Font order. They had gotten
    rather jumbled. The key to preserving the cell colors is to copy, paste,
    and then delete, rather than cut and paste.

  2020-05-08	Clint Goss	Kurinto v2.169 (INT)
    Develop DrawCG for various font configurations of Box Drawing and Block
    Elements blocks.

    Develop MathSymCG Sans, Serif, and Mono1229 to collect the many
    symbol-oriented scripts.

  2020-05-02	Clint Goss	Kurinto v2.168 (INT)
    Various niggly fixes.

    Add an additional summary at the start of 'kval' output that shows the
    count of time each particular test has failed across all fonts.

    New flavor for kismet with reduced output that is used for the
    "scrubbed" version of reports.

    Divide /RelCore into /Rel_FOLIO for each FOLIO.

  2020-05-01	Clint Goss	Kurinto v2.167 (INT)
    Implement kval - font validation for Kurinto fonts.

    Repair handling of OS/2.usMaxContext. Font subset operations were not
    recalculating the context, so it was coming out as zero. And FontUtils
    does not, by default, re-calc this field. Implemented in kset with an
    explicit recalc.

    Make another attempt at sorting the SNFT tables optimially. Just move
    the first 5 to the front.

    Big problems with GPOS on 5/1/2020. See comments in kset.pl. Simply
    reading the GPOS table and writing it back out causes big problems with
    the resulting file. Issuing a maxContext() in kset.pl causes a read() on
    these tables. After doing that, the resulting fonts caused a HUGE delay
    in opening the file in kval, like minutes ... pausing for extended
    periods to read the 'glyf' and 'GPOS' tables. Now the GPOS table of the
    target font - Kurinto Aria - has 908 kerning pairs. But still ...
    something is seriously wrong with reading and re-writing a GPOS table.
    Problem "solved" in kset.pl by calling GPOS/GSUB->maxContext() to
    determine the maxContext, then calling GPOS/GSUB->empty() to "un-read"
    the tables.

    Full build.

  2020-04-25	Clint Goss	Kurinto v2.166 (INT)
    Fix use typo metrics bit that was incorrectly set on Kurinto CNew
    causing squashed line heights.

    Explicitly allow selection of the Font Folio so that multiple folios can
    be generated. This is prep for the Terminal font folio.

  2020-04-24	Clint Goss	Kurinto v2.165 (INT)
    Complete CourierPrimeCG for Core Charcters Set.

    Initial test version of TypeCG from CourierPrimeCG with FCP AutoMetrics.

    Complete Core Character set of HackCG for regular only.

    Partial completion of Core Characters for MPlusCG Rg and Bd only - box
    characters only.

  2020-04-22	Clint Goss	Kurinto v2.164 (INT)
    Develop CG versions of Hack, Courier Prime, and MPlus.

    Change font naming - Code1, Code2, Term1, and Term2.

  2020-04-21	Clint Goss	Kurinto v2.163 (INT)
    Develop web site.

    Develop SpecSheets for the web site.

    Tackle and reorganize fixed-pitch fonts. Major orverhaul of typefaces.
    Introduce the Programming group of fonts.

    New typefaces Term, CMod, and CNew. Get rid og Curi. Full backup to
    Chipmunk_D prior to this work.

    Develop fixed-pitch versions of Kurinto Prime, for 1024, 1233, and 1229
    widths for Kurinto Code Narrow (MPlus), Kurinto Code (Hack), and Kurinto
    CMod/CNew (Courier Prime).

  2020-04-17	Clint Goss	Kurinto v2.162 (INT)
    Remove the (silly!) version number in the name of each font file. This
    helped me keep font files organized for development, but would be
    dastardly problematic for users. For example, @fontface CSS directives
    would need to change with each release - untenable. Besides, not a
    single font in my /FontLibrary has a version number in the name.

    And ... while we're at it ... change from using "_" in font file names
    to "-". This is recommended by
    https://silnrsi.github.io/FDBP/en-US/Font_Naming.html and seems to be
    predomninant among the fonts in my /FontLibrary.

    The above two mods were initially implemented by changing all font file
    names in FontInfo.xlsx. However, it became apparent that this change was
    so annoyingly pervasive that I abandoned the edit (backed up, however,
    in /Backups) ... in favor of modifying krelease to change file names for
    release packages.

  2020-04-16	Clint Goss	Kurinto v2.161 (INT)
    Completion of all 8 Metric Compatible font sources. Whew!

  2020-04-11	Clint Goss	Kurinto v2.160 (INT)
    Complete Stix1CG metric compatible updates.

    Convert to using real It and BdIt for TRom / Stix1CG in [Map].

    Change /Metrics to use Stix1CG.

    Initiate TinosCG for TMod in /FDev/Tinos/TinosCG.

    Convert to using real It and BdIt for TMod / TinosCG in [Map].

    Change /Metrics to use TinosCG.

    Begin kismet validation in kmake with [KFonts] and [Map] table entries.

    Implement kscrub to clean up the validation reports and make them more
    usable.

    Integrate kscrub into the kmake pipeline.

    Beef up kismet to handle auto-setting of ADW with LSB/RSB balancing for
    EBGramond.

  2020-04-10	Clint Goss	Kurinto v2.159 (INT)
    Cardo updates from v2.158 were never exported to .ttf. Export and hope
    it works this time.

    Extensive updates to User's Guide and Spec Book.

    Implement space width setting code in kset.

    Update kismet with -a and -A options to deal with comparing and copying
    ADW values.

    Transition to Stix1CG fonts. Update to Ascii subset for Stix1CG_Rg only
    to make metric compatible with Times New Roman v7.0.

    Deal with Zombie glyphs in TN Roman.

  2020-04-08	Clint Goss	Kurinto v2.158 (INT)
    Tighten up fraction slash of Charis CG from 350 bias to 450. Use
    FontCreator [F5] preview to test.

    Kfret: convert garbage in copyright to (c). Duplicate font names on line
    1 and 2 of Display format - do something else with line 2. Change
    Display version "Printed at <time> on <date>" to "Printed <date> at
    <time>".

    Set xAvgCharWidth calculations to truncation. See /Testing/AvgCharWidth
    for testing and https://github.com/googlefonts/fontbakery/issues/2816
    for analysis.

    Fix fontbakery KurintoBookMUFI3_Rg_v2.155.ttf * FAIL: [code:
    found-duplicates] ... Duplicate Glyph 2 of $E010, $E21B, $E4B7, $E4E2 of
    CardoCG removed.

    fontbakery FAIL on Arte, News, and Plot: Whitespace and non-breaking
    space have differing width: Whitespace (space) is 600 font units wide,
    non-breaking space (uni00A0) is 500 font units wide. Both should be
    positive and the same. [code: different-widths] Fixed with a global
    check / modification in kset and a new "Adjust NBSP" in [Settings] to
    fix this issue in all pipeline fonts by setting the ADW of NBSP to that
    of Space.

    Remove selection of S_Univ for Kelvinch (Arte) ... it caused space
    character glyphs to be duplicated between Kelvinch and Kurinto Prime.

  2020-04-07	Clint Goss	Kurinto v2.157 (INT)
    Kfret bug fixed in v2.156 is still present in the pipeline. See
    Map_ArteAux_Rg_v2.156_Let.pdf. Add trace output to kfret for next run.
    Turned out I had only updated the yarn version of the kfret calls ...
    main pipeline versions updated and now works.

    Add repaired fraction slash to all styles of Charis CG. Tighten them all
    up from 300 bias to 350.

    Fix Noto Sans Math in Sans SemiBold (forgot a Join line in [Map]).

    Vertical line metrics for metric compatible fonts had an effect, but
    most of them have smaller line heights (substantially) than their metric
    model fonts. I am guessing that this is because Kurinto fonts had the
    fsSelection bit for UseTypoMetrics on by default. Most (all, I think) of
    the metric model fonts don't even have an OS/2 UseTypoMetrics, since
    they have vesion 3 OS/2 tables and all Kurinto fonts use version 5
    tables. Provisional fix by setting the UseTypoMetrics bit for all MC
    fonts based on the model font setting (which is always missing, so it is
    off). This fix worked!

    Update the footer of kfret Display pages.

    xAvgCharWidth was not being set, as reported by fontbakery. Turns out
    that kset was never calling OS2->update(), nor setting the OS2->dirty
    bit. Turns out that the update process in general for the master tables
    was severely lacking. A general cleanup of the Update Global handling by
    kset. NOTE that there are a number of questionable things done in this
    change - updating of tables that had never been updated before, not
    updating tables that might potentially need updating (now or in the
    future), and updating tables that might have other implictions. If
    things take a downturn, the Update Global area of kset could be a likely
    suspect.

    This bug ... FontValidator: E | E2122 | The surrogates bit (bit #57) is
    clear in the ulUnicodeRange, but the cmap contains a surrogates encoding
    ... might be cured by the UpdateGlobal modifications to kset. YES, this
    error went away in v2.158.

  2020-04-06	Clint Goss	Kurinto v2.156 (INT)
    Bug with kfret output for fonts such as Arte Aux that have unusual
    head.yMax / head.yMin values (3320 / -3598). The result is that kfret
    shifts the glyph display up vertically based on these extrema. Fixed
    with the new -v option on kfret: -v yMax:yMin Use yMax and yMin in place
    of the font's internal head.yMax and head.yMin. Helps with vertically
    centering a font that has unusual extreme bounds. yMin should be
    negative: -v 2048:-768

    Set up a CG version of Charis to fix the fraction slash character
    (U+2044). Only done in Rg.

    Fix SpecBook_UDHR RtL paragraphs using Word's [RtL] button rather than
    paragraph alignment. This fixed the issue of the "." at the end of the
    paragraph showing up on the wrong end of the line.

    Bring in Noto Sans Tifinagh. Chose v2.001 over v2.002 because v2.002 has
    a substantial expansion of OpenType regional implementations, which we
    can't really make use of.

    Minor editorial fixes in SpecBook_UDHR translations - missing periods at
    ends of paragraphs. A comma at the end of the Samoan text.

    Bring in Noto Sans Math and use instead of Symbola for W_Math, S_Math,
    and S_MSYM.

    Set vertical line metrics of metric compatible fonts based on their
    model fonts.

    Glyph names such as uniFB02_uniF002 are not acceptable to FontValidator.
    Modify kset.

    Remove "FRET v1.202 Package Attach 1.000" on the bottom of the Display
    pages.

    Change "Modified ..." on kfret reports to "Font last modified ..."

  2020-04-06	Clint Goss	Kurinto v2.155 (INT)
    Change kset to simply set the AGL glyph names with a new CodePoints2AGL
    table.

    Set Book Core Bold to use super / subscript sizes of 7/6% rather than
    70/60% - for testing.

  2020-04-05	Clint Goss	Kurinto v2.154 (INT)
    Make use of Junicode Bold source font.

    Use CardoCG_Base.ttf for Kurinto Book Light (only Core so far).

    Fix bug: Source Fonts list in Contributors.txt of the release package
    should not contain the documentation sources like Typography.Guru.

    Complete the Metric Compatible model font and Compositing Source font
    columns in [KFonts].

    Re-work settings for the 8 OpenType fields for superscripts and
    subscripts.

    Turn off the head.flags.LSBearing bit in all fonts, since none of our
    fonts seem to achieve the setting LSB to X=0 (i.e. no offset).

    Implement a new phase "V" in kmake: validation. It calls fontbakery and
    FontValidator on each merged, non-Trunk font. However ... FontValidator
    takes 1+ hours (gave up and killed it) for Kurinto Text Regular. Tried
    running with -no-raster-tests ... still took 60+ minutes. Tried adding
    -only-tables and it runs in 0:05-0:12 for large fonts. Output files for
    FontValidator live in /User/Clint/AppData/Local/Temp - taking 1-4 **GB**
    for the aborted runs. With +table OS/2 +table head +table hmtx +table
    name and run times ... about the same time. With +table hhea +table maxp
    and run times ... about the same time. With +table post and run times
    ... increase to 15-20 seconds and output file size increases 30x (about
    5.6MB) - lots of mismatches from the AGL. Remove post and add DSIG,
    GDEF, GPOS, and GSUB and run times ... gave up after 25 minutes. Remove
    GDEF, GPOS, and GSUB, add cmap, gasp, glyf. Tables are now: DSIG, cmap,
    gasp, glyf, head, hhea, hmtx, maxp, name, and OS/2. FontValidator takes
    3-6 minutes for Kurinto Text, Text BD, Text Aux, etc. about 1/2 MB per
    font. glyph table is the biggest offender, with thousands of Duplicated
    knots, intersecting contours, and degenerated contours warnings. Plan:
    For Core fonts, use tables: DSIG, cmap, gasp, glyf, head, hhea, hmtx,
    maxp, name, OS/2, and post. For other (larger) fonts, use tables: remove
    the glyf and post tables.

  2020-04-04	Clint Goss	Kurinto v2.153 (INT)
    Extensive expansion of User Guide for vertical metrics, Boundary Height,
    and strikethrough and underline metrics, with diagrams.

    Reset strike-height to 484 (1/2 the nominal x-height).

    Reset score-height to 213 (from 209) - set to 22% of the x-height.

  2020-04-03	Clint Goss	Kurinto v2.152 (INT)
    Introduce the strike-height metric amd set it and thickness correctly
    across all fonts.

    Change underline position and thickness strategy.

    Correct the "model font" column in [KFonts] - there were lots of
    inconsistencies!

  2020-04-02	Clint Goss	Kurinto v2.151 (INT)
    Fix Text KR Regular - it was using the Bold Mincho Trunk file.

    Fix Text Grek script to pull from the same source (NtSr) as the W_Grek
    script. This showed up in the SpecBook_UDHR_Text.doc file in Greek
    (polytonic) as vascillating fonts.

    Upgrade Amiri from v0.111 to 0.112.

    Repair vertical inconsistencies in Curv ... due to the auto-vertical
    shift kismet run done in early March.

    Set the underline offset of all fonts to -120. This should cause the top
    of the underlines to all line up, even though the width is variable.

  2020-04-01	Clint Goss	Kurinto v2.150 (INT)
    Re-build after the kmet run of 2.149 failed, because of missing logic
    for the new "Copy" directive.

    Re-build after running kmet -x accidentally (which now means "with
    XGN").

    Use Noto Serif for Text Core Cyrillic and Greek rather than Symbola.

    Scale Symbola in Text Core&Main and Book Core&Main to 104%.

  2020-03-30	Clint Goss	Kurinto v2.149 (INT)
    Allow separate License entries for Doc vs Font elements in the
    [Licenses] table.

    Fix bug in CC0-1.0 legend in Copyrights.txt: "... Creative Commons Legal
    Code Creative Commons Legal Code CC0 ..."

    Further work on UDHR Spec Book.

    Fetch latest Noto fonts and add Grantha (HUGE GSUB table!! - may need
    separate font variant!), Dogra, Gunjala Gondi, Masaram Gondi, Elymaic,
    Hanfi Rohingya, Siddham, Sogdian, Soyombo, Old Sogdian, Tangut, Wancho,
    and Zanabazar Square.

    Grantha script no longer blows up ksubset because of GPOS. Probably
    because we now use the full OpenType tables rather than subsetting them.
    This allows Grantha to be included in Aux.

    Tested trying to include Tibetan, Myanmar, and Khmer into TrunkX, but it
    blows up exceeding 65535 indices in the GSUB table. Also tested
    including Tibetan, Myanmar, and Khmer into a single font variant ... but
    it also fails on the same GSUB error. Guess we're stuck with the KM and
    TB font variants. Sigh.

    Restructure building of the common Trunk files: CSer and CSan become
    MSer and MSan ("Main Serif/Sans" fonts). New ASer and ASan (for Aux).

    Develop new Minc, Goth, and Hana typefaces to serve as Trunk files (with
    new TrunkHK, TrunkJP, ...) for more efficient merging.

    Add the GlyphWiki license to the release.

    Change the sense of the -x options on kmake - to make -x mean *yes* to
    XGN generation and the default to skip XGN.

    Add kmake -d option to "soldier on" if a sub-process fails. This turns
    out to be less useful than one might think, because the failure often
    happens when producing a file that you need later in the pipeline.

    Add a "Copy" directive to the [Map] table to allow a simple font copy.

  2020-03-29	Clint Goss	Kurinto v2.148 (INT)
    Generate all remaining character string samples in the UDHR Spec Book.

    Generate the missing Sans HK font.

    Reduce Asian italics 6 degrees (from 11).

  2020-03-28	Clint Goss	Kurinto v2.147 (INT)
    Initiate the Known Issues section of the User's Guide.

    Develop format contol glyphs for the Egyptian Hieroglyph Format Controls
    block in a custom Egypt Format Controls font.

    Convert Text Serif HK to use Noto Serif TC rather than Noto *Sans* HK.

    Convert all Book CJK fonts to all use Hanazono fonts.

    User Guide section on CJK fonts.

    Deal with kmerge *crash* cause by merging a font with a v5 OS/2 table
    (Egypt Format Controls) into a stream of v4 tables. See
    https://github.com/fonttools/fonttools/issues/1865. Hack the Egypt
    Format Controls font to have a v4 table.

  2020-03-26	Clint Goss	Kurinto v2.146 (INT)
    Remove the Alt Figure and Alt Caps Varieties of Kurinto Book. They have
    been supersceded by the OpenType features being developed.

    Updated the User Guide for new Prime characters.

    Switch Left and Right in four Prime Guide characters.

    Develop CJK Mono Source Fonts from Source Han Mono.

    Implement Kurinto Mono HK, JP, KR, SC, TC, and CJK.

    Log coverage of all scripts in SpecBook_UDHR and determine needed script
    samples.

    Develop krange to generate UTF-8 code points into a text file of a given
    range. Useful for creating a sample text field in a SpecBook document.

    Set up man pages and kmake promote and push.bat of the utilities
    article1 and kfreeze / pyftfeatfreeze.

  2020-03-25	Clint Goss	Kurinto v2.145 (INT)
    This work is a continuation of v2.145 ... done later in the day on
    3/25/2020.

    Eliminate hard-coded glyph IDs in kset for the Stamp, Dash, and Vertical
    Metrics glyphs, by passing additional parameters from the [Settings]
    table.

    Begin conversion of FontInfo.xls to use Kurinto fonts.

    Had the initial idea of replacing all Dash characters with "homegrown"
    dash characters, based on the recommendations in Microsoft Typography
    OpenType Font Development. This was a bad idea. See
    https://typedrawers.com/discussion/27/en-dash-width-of-n. New plan is to
    use the existing source fonts for the Unicode characters, and provide a
    set of alternate glyphs/code points in Kurinto Prime that use the
    official widths.

    Add new W_Dash and N_Dash sub-scripts.

    Install machinery to set the ADW of the Figure Space and Punctuation
    Space glyphs that are part of Kurinto Prime. Still need to actually
    implement the code in kset!

  2020-03-25	Clint Goss	Kurinto v2.145 (INT)
    Add various widths of the vertical metrics overlay characters to Kurinto
    Prime, to accomodate the User Guide Key Characters blocks.

    Add 6 prototype dash characters for U+2010-U+2015 to Kurinto Prime, so
    that kset can programmatically configure them to pre-set dimensions.
    Note that others will be needed as well: 2Em Dash, 3Em Dash, and
    ?others?.

    Complete rework of the dashes scheme. Had the initial idea of replacing
    all Dash characters with "homegrown" dash characters, based on the
    recommendations in Microsoft Typography OpenType Font Development. This
    was a bad idea. See
    https://typedrawers.com/discussion/27/en-dash-width-of-n. New plan is to
    use the existing source fonts for the Unicode characters, and provide a
    set of alternate glyphs/code points in Kurinto Prime that use the
    official widths.

  2020-03-24	Clint Goss	Kurinto v2.144 (INT)
    Add Sans Aux.

    Change to --layout-features=* (no single quotes). Bug in the
    documentation for pyftsubset. See
    https://github.com/fonttools/fonttools/issues/1862.

    Pipeline build time for 'kmake -x' (no XGN files) is now 4h36m.

  2020-03-23	Clint Goss	Kurinto v2.143 (INT)
    Force output of an empty DSIG table. fontbakery check-opentype requires
    it. See https://github.com/googlefonts/fontbakery/issues/1845. Bob
    Hallissey states that: "I can confirm that, with Windows 10, Word 2013
    does require DSIG in some contexts. For example, Stylistic Sets won't
    work in latin script fonts without DSIG. (As mentioned above, this is no
    longer true for Word 2016)." Since Word 2023 Extended Support End Date
    is 4/11/2023, a DSIG table is still needed. Further info from github:
    "The MS team confirmed the findings by Jens and Bob here through the
    developer who changed the behavior in MS Word back in 2014. The absence
    of a DSIG table has not blocked the enumeration of OpenType features in
    MS Word since." Done with updates to DSIG.pm and an new "DSIG" "Force
    Empty" directive in [Settings].

    Set the --layout-features='*' on pyftsubset. This should let all all the
    OpenType layout features flow into the subsetted fonts and into the
    eventual merged composite fonts, allowing access to all these features.
    Specificically, it looks like we need clig, calt, pcap, onum, pnum,
    dlig, hlig, smcp, and ss01-ss20. Hope this works!

    The above change reduced the pipeline build time for 'kmake -x' (no XGN
    files) from 3h55m (v2.142 on Mar 21) to 2h34m (v2.143 on Mar 23).
    Subsetting the GPOS/GSUB tables must be slow! The size of the Full
    release package went from 1.52GB in v2.142 to 1.48GB in v2.143. HOWEVER,
    this is completely bogus, because the above option on pyftsubset seems
    to have removed all OpenType layout features. Sigh.

  2020-03-21	Clint Goss	Kurinto v2.142 (INT)
    Develop SpecBook_UDHR_Text.docx / .pdf

    Implement Kurinto Text KM, KR, SC, TB, TC, CJK

    Implement Kurinto Sans KM, TB, CJK

  2020-03-19	Clint Goss	Kurinto v2.141 (INT)
    Add the /Docx release directory.

    Fix font names in the Copyrights.txt file for Clint-modified fonts (eg.
    "Cardo CG").

    Unclude ChooseALicense text in the User's Guide for SIL OFL and cite the
    CC-BY-3.0 UNP license for it.

    Implement genPDF.bat for the Quick Start Guide.

    Fix genPDF.bat for the User's Guide with double quotes and wide dashes.

    Remove Unicode and Mac platform codes in the Names table - output only
    Windows platform as suggested by the SIL Font Development Best
    Practices.

    Expand translation matrix for Styles in the Names table.

    Divide the ReadMe.txt font list into sections: Primary fonts, Secondary
    fonts, and Metric Compatible fonts.

    Add a License Block Singular to [Licenses] so that the text of
    Copyrights.txt can differentiate between multiple copyright legends and
    a single copyright legend.

    Major re-ordering of [Map] [KFonts] and [TypeFaces].

    Use new CSer (Common Serif) and CSan (Common Sans) font label for the
    Trunk B-F that were formerly Book and Sans. Build them first, before any
    Main fonts are built.

    Pre-build CSerTrunkX from CSerTrunkB through E and CSanTrunX from
    CSanTrunkB through E, and use those in later Join operations in the
    [Map] table.

    The above three changes reduced the pipeline build time for 'kmake -x'
    (no XGN files) from 6h52m (v2.140 on Mar 18) to 3h43m (v2.141 on Mar 19)
    (!) The size of the Full release package went from 1.06GB in v2.140 to
    1.05GB in v2.141.

  2020-03-01 to 03-17	Clint Goss	Kurinto v2.140 (INT)
    Set all Panose and Font Classification fields carefully, based largely
    on source fonts PANOSE settings.

    Develop criteria for kval (validation) based on Microsoft Character
    recommendations.

    Develop representative characters for each font variant.

    Major expansion of the User's Guide, including Key Charactrers (Corel
    and then direct Word), and reduction of "??" sections.

    Initial Core versions Aria, Bria, Cali, Curi, Gara, and Grga.

    Add En, Em, and 2Em Vertical Metrics Overlay characters.

  2020-03-01	Clint Goss	Kurinto v2.139 (INT)
    Add appropriate # Filename and # encoding headers to all License_*.txt
    files.

    Develop Curv Light and Curve SemiBold

  2020-02-27	Clint Goss	Kurinto v2.138 (INT)
    Reorganize all space characters into Kurinto Prime and set the width on
    a per-font basis in 'kset'.

    Collapse most non-PUA code points in Kurinto Prime into a single S_Univ
    subscript.

    Add U+205F Medium Mathematical Space (4/18 of an Em) to Core along with
    all the other formulatic spaces.

    Upgrade krelease to:

      Selectively copy License*.txt files based on the fonts actually used,
      and

      Use blocks of copyright text in Copyrights.txt, based on the actual
      licenses used. This required an upgrade to FontInfo.xls [Licenses]
      with a new License Block column, and actual processing of the
      Subdirectory and License File fields.

  2020-02-22	Clint Goss	Kurinto v2.137 (INT)
    Development of Curv.

    kmod is run with slantify -11 regardless of the setting of the slant
    angle in [KFonts]. However, the font value *is* set correctly. Fix in
    [Map] table.

    Expand core character set to include Google characters and all NRSI
    recommended characters.

    Document the core character set with a roadmap.

    Expand the characters in the core with NRSI and Google recommended
    characters.

    Fix bug: fonts have glyphs which a non-zero offset. This is related to
    pyftsubset, which keeps the .notdef glyphs, but by default is not
    copying their outlines. We turn on the --notdef-outline option to
    pyftsubset, which keeps the outline and preserves the zero offset. Note
    that not copying .notdef would be a bad idea (i.e. I tried this), since
    kmerge drops the first glyph (presumably assuming it is .notdef).

  2020-02-17	Clint Goss	Kurinto v2.136 (INT)
    [KFonts] table error that rendered vertical metrics of Kurinto Text way
    out of line. This was the result of changing the order of entries in
    that table.

    Development of Curv.

    Look into crashes of CorelDraw X8 v18.1.0.661 on Win10x64 at initial
    load of a .CDR file. Happens when lots of Kurinto fonts are loaded.
    CoredDraw exist without any report, info, or log.

    Develop procedures to reset the Corel Font Manager database.

    Add / correct the kset downgrade code to handle Encoding Win_Sym (it had
    been set to Uni_Full).

    Have kset generate a ksetEncodings.man page from kset -e

    Fix erroneous [KFonts] table entry that set Curv and Olde to monospaced
    fonts.

    On a promotion of kmake.pl in kmake, stop the run! User needes to re-run
    kmake!!

    Fix NASTY bug where Windows Font Viewer refused to display a font -
    prefering to use the fallback font. The maxp table maxCountours field
    was not set correctly - too low actually. We now set maxp->maxContours
    and maxPoints in Head.pm. This is needed because we compose simple
    glyphs on the fly (the stamp characters).

    Sort the SFNT tables in the output table. The ordering of tables output
    by kset was alphabetical rather than the "Optimized Table Ordering" of
    the OpenType Spec (page 694PDF). Installed a major hack into perl
    Font::TTF::Font.pm to get this to "work". However, major issues.
    Switching the tables to optimal order is not possible. For SOME unknown
    reason, the loca table must follow the glyf table. This is OUT OF ORDER
    according to the Spec. However, if loca precedes glyf, the resulting
    font is completely corrupt, according to Font Creator.

  2020-02-15	Clint Goss	Kurinto v2.135 (INT)
    Remove the old CharacterBook document from the documentation. This is
    now covered by the /Maps/Map_xxx.pdf documents.

    Remove the separate SegmentationMap.pdf file from the release packages.

    Shorten '/Kurinto/' to '/' in 'kmake' output logs to reduce line length
    and clutter.

    Auto-stamp metadata into the User Guide PDF using exiftool.

    Change Kurinto Semi to Seri to avoid confusion between Kurinto Semi Bold
    and Kurinto SemiBold (Windows Font Display got confused, and probably
    others).

    Implement Kurinto Curv.

    Implement Kurinto Olde.

  2020-02-14	Clint Goss	Kurinto v2.134 (INT)
    Change the /TTF_xxx subdirectories of release packages to /Fonts_xxx.

    Reorganize DOC files in the development directory.

    Remove the /QuickStart directory - a waste of space with duplicated
    fonts. Use /Fonts for the QuickStart Guide.

    Change /Char to /Maps and rename all kfret files from Map_xxx_Let.pdf.

    Stamp metadata into all Map_*.pdf files using exiftool.

    Set gridfitting to reasonable values by setting gasp table entries in
    Kurinto Prime.

    Rename PLig_copy.ReMap to PLig.ReMap to reduce intermediate file name
    lengths.

    Repair kfret output glyphs with a "0000" for the code point. These are
    unmapped glyphs. Use the syntax (nnnn) to show the glyph ID of those
    characters.

  2020-02-13	Clint Goss	Kurinto v2.133 (INT)
    Reduce number of FRET PDF files generated and released - only Regular of
    the ReBIBI quartet.

    Reduce number of KMET executions by subsetting the fonts in the Need
    FRET colum of [KFonts].

    The above two changes reduced the pipeline build time for 'kmake -x' (no
    XGN files) from 7h46m (v2.131 on Feb 11-12) to 6h37m (v2.133 on Feb
    13-14). The size of the Full release package went from 1.71GB in v2.131
    to 1.20GB.

    Use simplified report format for the primary FRET report files.

    Expand Book Core [Varieties] to all 9 possibilities (SmCaps, PtCaps,
    TitCaps, Unicase, FigProLin, Old, Hyb, FigTabOld, and FigTabHyb).

    Initial implementations of News 1933 and News 1966.

    Fix bug which mapped different outputs of kmap with different ReMap
    files onto the same target file. Append ReMap file name onto the target
    merge file.

  2020-02-13	Clint Goss	Kurinto v2.132 (INT)
    Implement kmake on a Join directive with only a kmap ReMap command for
    XGN files.

    Initiate the News typeface using Tinos. Organize alternatives for this
    font, including STIX1 and STIX2, and establish the "flavors" of Kurinto
    News: Kurinto News 1930 (based on STIX1), Kurinto News 1960 (based on
    STIX2), Kurinto News 1990 (based on Tinos). All should be metrically
    equivalent to Times New Roman.

    Implement a new AdjustVerticalGuides 'kset' directive to modify the
    VerticalMetricsGuideLeft/Right and VerticalMetricsOverlay glyphs based
    on the actual CapHeight and xHeight.

    Convert this file and selected other text files (FAQ-Kurinto.txt) to
    using POD-style documentation (perl-style).

  2020-02-12	Clint Goss	Kurinto v2.131 (INT)
    Update the [Map] table for the new font name order of components.

    Fix bug in the selection of one WGL4 code point.

    Add 5 new sub-scripts to accomodate the NRSI Recommendations for
    Non-Roman fonts. Two of the new sub-scripts are added to Kurinto Prime
    and 3 are pulled from source fonts.

    Add a new /QuickStart subdir to the distribution packages.

    Add Kurinto Book Core SmCap as first test case of Varieties. Required
    mods to kmake (see the next item).

    Implement the case of a ReMap (kmap) without a subset or a mod operation
    in kmap, to facilitate mapping ACF files to their remapped Alt Caps and
    Figures varieties.

  2020-02-09	Clint Goss	Kurinto v2.130 (INT)
    Bug in setting the Typographic Family field caused blank font names in
    BabelMap and prevented deletion of those fonts in Windows. The bug in
    'kset' caused the fields in 164 of the 184 fonts to be set to "". Those
    fonts showed up with blank font names if BabelMap (but not MS Word).
    They were also very difficult to delete the fonts after installation
    (had to clobber them from the registry before deleting the files).

    Straighten out setting of WWS fields and fsSelection bit 8.

    Update Copyright, License, Designer, Description and other fields in the
    'name' table, sourced from the new Snippets.docx.

    Look into bug which causes all Asian text to have extra line height in
    Word. This is a(nother) *big* issue that will need to be addressed!

    Change name order of the components of the font name ... Variant
    precedes all Width-Weight-Slant components.

  2020-02-06	Clint Goss	Kurinto v2.129 (INT)
    Extensive work setting ulUnicodeRange and ulCodePageRange bits
    automatically and accurately.

    Explore ttfautohint.

    Significant expansion of User's guide.

    Develop the font stamping capability for both U+10FF01 FONT
    IDENTIFICATION and U+10FF02 FONT VERSION characters.

    Replace Fira Sans with Noto Sans for Kurinto Sans.

  2020-02-01	Clint Goss	Kurinto v2.128 (INT)
    Repair Kurinto Prime:

      * mis-assigned standard character in Bold  
      * Add a NotDef glyph since .notdef will not multi-map to $10FF40.

    Adjust [Map] for new Cardo CG.

  2020-01-31	Clint Goss	Kurinto v2.127 (INT)
    Extensive work while on the road in December 2019 and January 2020 to:

      * Expand the base font for Kurinto Book

      * Develop a bold version for Kurinto Book

      * Expand the character database to include all non-Unicode code points
      TEST TEST TEST TEST

      * Develop the User's Guide

      * Develop the Quick Start Guide

  2019-09-03	Clint Goss	Kurinto v2.126 (INT)
    Attempted to develop PDF code charts that serve the end user. Current
    code charts produced by kfret have exensive information on side
    bearings, baseline, glyph names, etc that are not ideal for end users.

    Tried to get UniBook 6.1.1 (build 260.4) running, but it fails in
    several ways:

    Installation is missing two files in the UCD 12.0 set, which result from
    renaming of those files: IndicMatraCategory.txt is now
    IndicPositionalCategory.txt (based on a note on
    http://www.unicode.org/versions/components-8.0.0.html) and had to
    download MathClass-15.txt from
    https://unicode.org/Public/math/revision-15/ and rename it
    MathClass.txt.

    Using the Default.cfl, there are numerous parse errors in Nameslist.txt
    and also Unsupported command errors. The application does launch if
    these are dismissed with [Ignore]

    The dialog box when loading another font in the application does not
    show the list of installed fonts in Windows 10. Recently installed fonts
    are not listed, regardless of whether they are installed for the current
    user (and stored in /Users/xxx/AppData/Local/Microsoft/Windows/Fonts) or
    installed for all users (and stored in /Windows/Fonts).

    Printing to PDF gets the distiller error:

    %%[ ProductName: Distiller ]%%
    SpecialsUC4 not found, using Courier.
    %%[Page: 1]%%
    %%[ Error: invalidfont; OffendingCommand: show; ErrorInfo: CharOffsets
	%%[ Flushing: rest of job (to end-of-file) will be ignored ]%%
    %%[ Warning: PostScript error. No PDF file produced. ] %%

    Found the fntsample utility at https://github.com/eugmes/fntsample, but
    it is only available in source and would probably be a bear to get
    working on Win10.

    Considered using High-Logic MainType, which does produce nice output.

    However, all three choices do not appear to be executable without the
    GUI ... i.e. will not serve pipeline production of the fonts.

    So ... going back to modify kfret to produce modified output for this
    purpose.

  2019-09-01	Clint Goss	Kurinto v2.126 (INT)
    Rebuild Kurinto Prime with updated metrics and new decimal frame glyphs.

  2019-09-01	Clint Goss	Kurinto v2.125 (INT)
    Reset vertical metrics from (+2000, -700) to (+2048, -768)

  2019-08-30	Clint Goss	Kurinto v2.124 (INT)
    Develop MUFI4 and Music(SMuFL13) variants. Organize SIL PUA.

    Get kmap working for the 2 chars in the WGL4 PUA.

    Use kmap for the FA Icons.

    Define CYFI, but then realize there are no fonts that implement it.

  2019-08-23	Clint Goss	Kurinto v2.123 (INT)
    Reorganize the PUA for the CSUR around Bettencourt's extended UCSUR.

    Define MUFI3, MUFI4, and SMuFL13 subsets. Develop MUFI3 Variant.

  2019-08-17	Clint Goss	Kurinto v2.122 (INT)
    Expand Kurinto Prime to include S_Emty and S_Univ sub-scripts.

    Divide letters into S_ULet and S_LLet - uppercase and lowercase in prep
    for SmallCap variants.

    Update from Unicode 12.0.0 to 12.1.0

  2019-08-14	Clint Goss	Kurinto v2.121 (INT)
    Add 21 W_xxx Sub-scripts for implementation of WGL4 in Kurinto*Core
    fonts.

    Begin work on proper conversion of fonts to "DuoWidth" - i.e. Fixed
    width for Mono, Type, and Code. This is done within kset.pl.

  2019-08-11	Clint Goss	Kurinto v2.120 (INT)
    Develop Cardo v2 Rg and Bd from Cardo 1.045. By hand in FontCreator.

    Extensive work in the Latin extension blocks. The log of this work is in
    /SrcFonts/Cardo.

    Upgrade FontCreator 11.5 => 12.0.

    Full kmake takes 6:01:54.

  2019-08-04	Clint Goss	Kurinto v2.119 (INT)
    (in progress update during Cardo v2 development)

  2019-07-26	Clint Goss	Kurinto v2.118 (INT)
    Move development to Husky (Win10x64, 2019, Core-i9 10-core, 3.5GHz, 128
    GB mem, SSD 860 EVO 4TB project drive).

    Time comparison of identical, full kmake builds on this date:

      Beagle 5h 19m 40s = 319.67m
      Husky  4h 43m 47s = 283.78m

    This is an 11.2% time reduction = 12.6% speed increase

    8/1/2019 Implement multi-processing on kmake using yarns - multi-core
    executions on independent execution lines. New kyarn and klog tools to
    go along with multi-core builds. Total time on Husky with multi-core
    operation about 82 minutes = 74% time reduction = 290% speed increase
    (or about 3x faster).

  2019-06-02	Clint Goss	Kurinto v2.117 (INT)
    Last version on Beagle (Win7x64, 2015, Core-i7 4-core, 3.6GHz, 16 GB
    mem, SATA 600 project drive).

  2019-05-27	Clint Goss	Kurinto v2.114 (INT)
    Implement new SEA variant for large-GSUB fonts. New [Subsets] table and
    reorganization of the [Map] table.

  2019-05-23	Clint Goss	Kurinto v2.112 (INT)
    Switch Mono and Type Latin fonts. Add Kurinto Code using Hack 3.003.

  2019-05-22	Clint Goss	Kurinto v2.111 (INT)
    Implement fixed width alignment of monospaced fonts in 'kset' and the
    [KFonts] and [Settings] tables.

  2019-05-20	Clint Goss	Kurinto v2.109 (INT)
    Initial work on Mono and Type font families.

  2019-05-17	Clint Goss	Kurinto v2.108 (INT)
    First versions of Kurinto Sans and Semi Core.

  2019-05-16	Clint Goss
    Scaling of UPM between fonts cause errors in hinting, requiring kmod to
    deleted existing hinting instructions in fonts that it scales. This
    caused a major issue with Font::TTF generating fonts that cause crashes
    in downstream segments of the pipeline. See
    https://github.com/silnrsi/font-ttf/issues/2.

  2019-05-14	Clint Goss	Kurinto v2.107 (INT)
    Develop release procedures.

  2019-05-11	Clint Goss	Kurinto v2.105 (INT)
    Automated generation of Kurinto Book Aux.

  2019-05-11	Clint Goss	Kurinto v2.103 (INT)
    Initial version with Kurinto Book quartet (R, B, I, BI) that covers all
    scripts with the exception of Mongolian, Tibetan, and Myanmar. The
    extensive GPOS requirements of these scripts is causing issues with
    pyftsubset. See https://github.com/fonttools/fonttools/issues/1607.

  2018-12-13 through May 2019	Clint Goss
    Significant expansion of the project, construction of a pipeline to
    process a greatly expanded set of source fonts, and initial web site
    development. The pipeline involves Perl, Python, FontUtils, FontTools,
    High-Logic FontCreator, and Microsoft Excel.

  2018-08-11	Clint Goss	Kurinto v1.07
    The fonts were upgraded and used to render 3D text in Breath Flute
    project (www.BreathFlute.com), an open-source project implemented in
    OpenSCAD. The upgraded subset of the Kurinto Fonts was released as part
    of the Breath Flute v79 release.

  2018-07-22	Clint Goss	Kurinto v1.04
    Upgrades released coincident with the Native Flute Handbook Seventh
    Edition.

  2018-01-22	Clint Goss	Kurinto v1.01
    First version released coincident with the Native Flute Handbook Sixth
    Edition. Font families released: Kurinto Book, Sans, Mono, Maru, Mincho,
    and Naskh.

  2017-10-24	Clint Goss
    Got fed up dealing with the limitation of Times New Roman in the PDF
    publication of the Native Flute Handbook. Upgraded FontCreator Pro from
    version 3.1 to 11.0 and began down this long road ...

