Skip to content

Conversation

@MattHeffron
Copy link
Contributor

Verbose mode implemented incorrectly.

Cleanup DEFPACKAGE using :IMPORT-FROM, and fewer imports.
Various renaming for consistency with XCCS -> MCCS changes.
Use IL:FONTSPEC record instead of using FIRST, SECOND, etc.
Fix the parsing of IL:FONTSPEC to use COMPRESSED instead of incorrect CONDENSED.
Zero-width "image" with zero-width "escapement" GLYPHS get put into NOMAPPINGCHARSET.
Add (FILES (SYSLOAD) SYSEDIT) under existing (DECLARE: EVAL@COMPILE DONTCOPY ...)

Various renaming for consistency with XCCS -> MCCS changes.
Use IL:FONTSPEC record instead of using FIRST, SECOND, etc.
Fix the parsing of IL:FONTSPEC to use COMPRESSED instead of incorrect CONDENSED.
Zero-width "image" with zero-width "escapement" GLYPHS get put into NOMAPPINGCHARSET.
Add (FILES (SYSLOAD) SYSEDIT) under existing (DECLARE: EVAL@COMPILE DONTCOPY ...)
@MattHeffron MattHeffron requested a review from rmkaplan November 8, 2025 05:53
@MattHeffron MattHeffron self-assigned this Nov 8, 2025
@MattHeffron MattHeffron added the bug Something isn't working (as per documentation) label Nov 8, 2025
@MattHeffron MattHeffron added the enhancement New feature or request label Nov 8, 2025
@MattHeffron
Copy link
Contributor Author

I tried this, converting various Noto Sans, Noto Sans Mono, and Noto Serif ttf fonts to bdf and then to original-style DISPLAYFONT files.
I didn't write .MEDLEYDISPLAYFONT files. (@rmkaplan what should I change in the FONTDESCRIPTOR objects I create to write better MEDLEYFONT format files vs. pre-MEDLEYFONT FONTDESCRIPTOR.)
I'm still analyzing just how much coverage of the MCCS glyphs are covered in the Regular, Bold, Bold Italic, and Italic styles, and would they be close to full fonts.
E.g., Noto Sans Mono has only Regular and Bold, not Italic nor Bold Italic.

@hjellinek Did you determine a good set of google fonts to get good coverage of the MCCS glyphs? Anyone else

@rmkaplan
Copy link
Contributor

rmkaplan commented Nov 8, 2025

On the fontdescriptor, if you've loaded all the character sets and if these are now MCCS-coded fonts, you may only just need to say that MCCS is the font charencoding. You won't be doing any further coercions, and you won't be indirecting to the charsets of other fonts/faces, so probably no need to maintain the charset source info. But I'll look more carefully.

But turns out that the prc Compare function doesn't work on your new file, the function LISPSOURCEFILEP seems to return NIL

@hjellinek
Copy link
Contributor

I tried this, converting various Noto Sans, Noto Sans Mono, and Noto Serif ttf fonts to bdf and then to original-style DISPLAYFONT files. I didn't write .MEDLEYDISPLAYFONT files. (@rmkaplan what should I change in the FONTDESCRIPTOR objects I create to write better MEDLEYFONT format files vs. pre-MEDLEYFONT FONTDESCRIPTOR.) I'm still analyzing just how much coverage of the MCCS glyphs are covered in the Regular, Bold, Bold Italic, and Italic styles, and would they be close to full fonts. E.g., Noto Sans Mono has only Regular and Bold, not Italic nor Bold Italic.

@hjellinek Did you determine a good set of google fonts to get good coverage of the MCCS glyphs? Anyone else

Yes, take a look at the "font stacks" (that's Google/CSS terminology) that I defined in my WebFontMetrics project. The Java source file Main.java lines 56-70 might help. I'm happy to explain any of it. The companion FontCoverage tool examines font stacks for characters present in the code but missing from a font stack.

@rmkaplan
Copy link
Contributor

rmkaplan commented Nov 8, 2025

One other field to set: FONTCOMPLETEP. If you have installed all possible characters in all possible character sets in the fontdescriptor before you write it out, setting this flag indicates that there are no further possible coercions ever to consider--your fonts are complete.

@rmkaplan
Copy link
Contributor

rmkaplan commented Nov 8, 2025

On the prc LISPSOURCEFILEP problem, I think I was running in a system that hadn't been upgraded to the LLPACKAGE changes. It now works.

@MattHeffron
Copy link
Contributor Author

I defined in my WebFontMetrics project

Herb, you claim there that Noto Sans Mono has all 4 styles, but it appears to me that it has only Regular and Bold, but neither Italic form. Am I missing something?

@hjellinek
Copy link
Contributor

I defined in my WebFontMetrics project

Herb, you claim there that Noto Sans Mono has all 4 styles, but it appears to me that it has only Regular and Bold, but neither Italic form. Am I missing something?

I put the finishing touches on that code back in February, so I could be wrong about this explanation, but I implemented Noto Sans Mono as a FallbackFontStack, which is an object - a subclass of FontStack - that takes glyphs from the named font(s), but falls back to another font stack if any are missing. In this case I define Noto Sans Mono like this:

FontStack notoSansMono = new FallbackFontStack(notoSans, "Noto Sans Mono", "Noto Sans Mono");

meaning "Give it the descriptive name 'Noto Sans Mono', base it on the Noto Sans Mono web font, and get any missing characters from plain old Noto Sans," which I defined earlier and stuck in a local variable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working (as per documentation) enhancement New feature or request

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

4 participants