Skip to content

Rmk175 offline font construction#2555

Open
rmkaplan wants to merge 59 commits intomasterfrom
rmk175--Offline-font-construction
Open

Rmk175 offline font construction#2555
rmkaplan wants to merge 59 commits intomasterfrom
rmk175--Offline-font-construction

Conversation

@rmkaplan
Copy link
Copy Markdown
Contributor

@rmkaplan rmkaplan commented Apr 6, 2026

This provides standardized tools and interfaces for importing fonts from external sources into medleyfont format, recoding to MCCS, completing according to CHARSETCOERCIONS, and possibly face-faking for italic/bold/compressed.

Also allows for fonts with up to \MAXCHARSET = 65535 character sets corresponding to 24-bit character codes.

@rmkaplan rmkaplan marked this pull request as draft April 6, 2026 17:14
@rmkaplan
Copy link
Copy Markdown
Contributor Author

rmkaplan commented Apr 6, 2026

I should also mention: This includes 300 new versions of the files in fonts/medleydisplayfonts/, upgraded to version 1 of the medleyfontformat.

It does not (yet?) include transitional code for converting version 0 to version 1.

@pamoroso
Copy link
Copy Markdown
Member

pamoroso commented Apr 7, 2026

Building the apps sysout up to commit d0b17b4 on Linux Mint 22.1 Cinnamon aborts in URAID:

build-fail
paolo@lispmachine:~/medley/medley$ ./scripts/loadup-all.sh -apps
>>>>> START loadup-init
"/home/paolo/bin/lde" "/home/paolo/medley/medley/internal/loadups/starter.sysout" -id "loadup_init_1" -title "Medley::loadup_init_1" -g 1024x768 -sc 1024x768 -noscroll
MEDLEYDIR: "/home/paolo/medley/medley"
LOGINDIR: "/home/paolo/medley/medley/loadups/build/logindir"
GREET FILE: "/home/paolo/medley/medley/loadups/build/loadup-init.init"
REM.CM FILE: ""
VMEM FILE: "/home/paolo/medley/medley/loadups/build/logindir/vmem/lisp_loadup_init_1.virtualmem"
+++++ SUCCESS +++++
..... files created .....
-rw-rw-r-- 1 paolo paolo 4644352 Apr  7 11:08 /home/paolo/medley/medley/loadups/build/init.dlinit
-rw-rw-r-- 1 paolo paolo 266613 Apr  7 11:08 /home/paolo/medley/medley/loadups/build/init.dribble
-rw-rw-r-- 1 paolo paolo 4495360 Apr  7 11:08 /home/paolo/medley/medley/loadups/build/init.sysout
-rw-rw-r-- 1 paolo paolo 55827 Apr  7 11:06 /home/paolo/medley/medley/loadups/build/RDSYS
-rw-rw-r-- 1 paolo paolo 43013 Apr  7 11:06 /home/paolo/medley/medley/loadups/build/RDSYS.LCOM
-rw-rw-r-- 1 paolo paolo 89184 Apr  7 11:06 /home/paolo/medley/medley/loadups/build/I-NEW
-rw-rw-r-- 1 paolo paolo 70677 Apr  7 11:06 /home/paolo/medley/medley/loadups/build/I-NEW.LCOM
<<<<< END loadup-init

>>>>> START loadup-mid-from-init
"/home/paolo/bin/ldeinit" "/home/paolo/medley/medley/loadups/build/init.dlinit" -id "loadup_mid_from_init_1" -title "Medley::loadup_mid_from_init_1" -g 1024x768 -sc 1024x768 -noscroll -NF
MEDLEYDIR: "/home/paolo/medley/medley"
LOGINDIR: "/home/paolo/medley/medley/loadups/build/logindir"
GREET FILE: "/home/paolo/medley/medley/greetfiles/NOGREET"
REM.CM FILE: "/home/paolo/medley/medley/loadups/build/loadup-mid-from-init.cm"
VMEM FILE: "/home/paolo/medley/medley/loadups/build/init-mid.sysout"
evaluating initial expressions:
PACKAGE-CONVERSION-TABLE.EXPRESSIONS
LLSUBRS.EXPRESSIONS
FILEIO.EXPRESSIONS
LLARRAYELT.EXPRESSIONS
EXTERNALFORMAT.EXPRESSIONS
IOCHAR.EXPRESSIONS
UNICODE-FORMATS.EXPRESSIONS
IMAGEIO.EXPRESSIONS
LLBASIC.EXPRESSIONS
LLGC.EXPRESSIONS
LLINTERP.EXPRESSIONS
LLMVS.EXPRESSIONS
DEFSTRUCT-RUN-TIME.EXPRESSIONS
CMLSEQBASICS.EXPRESSIONS
LLARITH.EXPRESSIONS
LLFLOAT.EXPRESSIONS
LLBIGNUM.EXPRESSIONS
LLREAD.EXPRESSIONS
MCCS.EXPRESSIONS
LLCHAR.EXPRESSIONS
LLDATATYPE.EXPRESSIONS
LLKEY.EXPRESSIONS

*Error* URAID Called:
Enter the URaid
#:MTOSYSSTRING

< 

The dribble files: loadups.zip

@rmkaplan
Copy link
Copy Markdown
Contributor Author

rmkaplan commented Apr 7, 2026

I don't get that failure, on a Mac.

To start, can you enter the lu command in URAID to show what's on the stack, and send a screen snap?

@pamoroso
Copy link
Copy Markdown
Member

pamoroso commented Apr 7, 2026

This is the output of lu in URAID:

< lu
  0 :    0x11932 : #:RAID
  1 :    0x1191c : #:FAULTAPPLY
  2 :    0x118d0 : #:\INTERPRETER
  3 :    0x118b4 : #:UNIX-GETPARM
  4 :    0x11896 : #:\KEYBOARD.MACHINE-SPECIFIC-KEYACTIONS
  5 :    0x1187e : #:KEYACTIONTABLE
  6 :    0x11868 : #:\KEYBOARDINIT
  7 :    0x11848 : #:\EVALFORM
  8 :    0x11834 : #:EVAL
  9 :    0x11814 : #:INITIALEVALQT
 10 :    0x11802 : #:CL::T

@rmkaplan
Copy link
Copy Markdown
Contributor Author

rmkaplan commented Apr 7, 2026 via email

@pamoroso
Copy link
Copy Markdown
Member

pamoroso commented Apr 7, 2026

The output of lu followed by f3:

< lu
  0 :    0x11932 : #:RAID
  1 :    0x1191c : #:FAULTAPPLY
  2 :    0x118d0 : #:\INTERPRETER
  3 :    0x118b4 : #:UNIX-GETPARM
  4 :    0x11896 : #:\KEYBOARD.MACHINE-SPECIFIC-KEYACTIONS
  5 :    0x1187e : #:KEYACTIONTABLE
  6 :    0x11868 : #:\KEYBOARDINIT
  7 :    0x11848 : #:\EVALFORM
  8 :    0x11834 : #:EVAL
  9 :    0x11814 : #:INITIALEVALQT
 10 :    0x11802 : #:CL::T

< f3
IVAR -------
  118b0 : 0x  7f  0x6520  #:NAME  "DISPLAY"

## STACK BF at 0x118b2 ##
[cnt=0 ]
ivar : 0x18b0
>> Bf's ivar says 0x118b0 vs. IVar says 0x1192a
Fname is #:UNIX-GETPARM
## STACK FX at 0x118b4 ##
[cnt = 0 ]
 #alink           0x18a0 
 fnhead   0x2e614c 
 nextblock        0x18ca 
 pc               0x4b 
 nametbl  0x7d2574 
 #blink           0x7d 
 #clink           0x2576 
  118be : 0x   0  0x   0  #:LEN  #:CL::NIL
  118c0 : 0x  7a  0x8840  #:UNIXSTRING  ""
  118c2 : 0xfffd  0x   2  
  118c4 : 0x  7f  0x6520  
  118c6 : 0xfffe  0x   0  
  118c8 : 0xfffe  0x   2  

@rmkaplan
Copy link
Copy Markdown
Contributor Author

rmkaplan commented Apr 7, 2026

Next, just to confirm that the function exists, try

d MTOSYSSTRING

That function is defined in UNICODE-FORMATS, which is included in the init.sysout and should therefore exist when the init.sysout is started and begins to evaluate all of the file expressions.

Has anyone else experienced this? On Mac or other platforms?

I don't think any of the font changes would have an impact on anything at this level.

@pamoroso
Copy link
Copy Markdown
Member

pamoroso commented Apr 7, 2026

The output of d MTOSYSSTRING:

< d MTOSYSSTRING
INDEX : 1041
Atom: MTOSYSSTRING index 1041
#:CL::NIL

@rmkaplan
Copy link
Copy Markdown
Contributor Author

rmkaplan commented Apr 7, 2026 via email

@nbriggs
Copy link
Copy Markdown
Contributor

nbriggs commented Apr 7, 2026

It fails for me too. Exact same problem.

@nbriggs
Copy link
Copy Markdown
Contributor

nbriggs commented Apr 7, 2026

I don't see MTOSYSSTRING defined anywhere. Perhaps you have a file not checked in?
UNICODE-FORMATS is

FILECREATED "23-Feb-2026 12:15:24" {WMEDLEY}UNICODE-FORMATS.;2

@pamoroso
Copy link
Copy Markdown
Member

Nothing unusual to report at commit beb6110.

Comment thread lispusers/UNIXYCD Outdated

:CHANGES-TO (VARS UNIXYCDCOMS)
(COMMANDS cdm)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this has nothing to do with offline font construction.
I would like to clean up the top level commands and I don't think cdm is in the right direction. But don't add it in with a huge PR where it will get lost in the noise.

@rmkaplan
Copy link
Copy Markdown
Contributor Author

rmkaplan commented Apr 29, 2026 via email

@pamoroso
Copy link
Copy Markdown
Member

Still looking good at commit efa423e.

@pamoroso
Copy link
Copy Markdown
Member

Still looking good at commit e589a8b.

@rmkaplan rmkaplan marked this pull request as ready for review May 1, 2026 06:03
@pamoroso
Copy link
Copy Markdown
Member

pamoroso commented May 1, 2026

Still looking good at commit 55827f5.

@pamoroso
Copy link
Copy Markdown
Member

pamoroso commented May 4, 2026

It still works with no issues at commit e2c2c10.

@pamoroso
Copy link
Copy Markdown
Member

pamoroso commented May 5, 2026

I made the apps loadup at commit 7a6abb7 and there's a NoteCards issue that's missing from Medley Online on master. To reproduce:

  1. load NoteCards
  2. open DEMO.NOTEFILE
  3. click Examples of NoteCards Types
  4. click Sample Text Notecard

This yields the error:

FILE-NOT-FOUND
File Not found:

notecards-error

The backtrace:

MOUSE/5(debug)BTV
OPENSTREAM
   SI::*CLEANUP-FORMS* SI::RESETUNWIND
   FILENAME ||
   STREAM NIL
   FONT NIL
   CSLOC NIL
   MAXCHARSET NIL
SI::*UNWIND-PROTECT*
   FILE NIL
   CHARSETS NIL
   NOERROR T
   DIRECTORY NIL
   LISPXHIST NIL
   SI::*RESETFORMS* NIL
   RESETSTATE NIL
MEDLEYFONT.READ.FONT
\CREATEDISPLAYFONT
\CREATEFONT
\CREATEFONT
FONTCREATE1
FONTCREATE
   FILE #<IO Nodircore Stream/136,121400>
   TEXTOBJ {TEXTOBJ}#121,135000
   LOOKS {CL101/14534:Gacha10}
   FILEPOS 627
   LOOKSLEN 23
   FONT NIL
   NAME HELVETICA
   SIZE 10
   SUPER 0
   STYLESTR NIL
   BOLD T
   ITALIC T
   BITS 768
   PROPS NIL
   PROPS ((USERINFO) (COLOR . BLACK))
\TEDIT.GET.SINGLE.CHARLOOKS
   FILE #<IO Nodircore Stream/136,121400>
   TEXTOBJ {TEXTOBJ}#121,135000
   I 3
\TEDIT.GET.CHARLOOKS.LIST
   TEXT #<IO Nodircore Stream/136,121400>
   TSTREAM #<IO Tedit Stream/136,121500>
   PCCOUNT 13
   CURFILEBYTE# 0
   END 885
   PCNO 0
   TEXTOBJ {TEXTOBJ}#121,135000
   ORIGBYTE# 0
   PC NIL
   BYTELEN 0
   PREVPC {PIECE}#121,105260
   FIRSTPC {PIECE}#121,105260
   PARALOOKSMAP NIL
   CHARLOOKSMAP NIL
   DEFAULTCHARLOOKS {CL101/14592:Helvetica12}
   OLDPARALOOKS {PL81/46848:LE-0-0}
\TEDIT.GET.PIECES3
   TEXT #<IO Nodircore Stream/136,121400>
   TSTREAM #<IO Tedit Stream/136,121500>
   START 0
   END 885
   PROPS (TITLEMENUFN NC.TEditMenuFn PUTFN NC.TEditPutFn
 GETFN NC.TEditGetFn QUITFN (NC.TEditPropsListQuitFn 
NC.MakeTEditPropsListA0001) PROMPTWINDOW DON'T --)
   TEXTOBJ {TEXTOBJ}#121,135000
   TRAILER (573 8 3 13 1807947143 NIL)
   PCCOUNT 13
   IDATE NIL
   PROPS NIL
   PC NIL
\TEDIT.GET.FORMATTED.FILE
   SI::*CLEANUP-FORMS* SI::RESETUNWIND
   TEXTOBJ {TEXTOBJ}#121,135000
   PWINDOW NIL
   READONLY NIL
SI::*UNWIND-PROTECT*
   TEXT #<IO Nodircore Stream/136,121400>
   TSTREAM #<IO Tedit Stream/136,121500>
   START 0
   END 885
   PROPS (TITLEMENUFN NC.TEditMenuFn PUTFN NC.TEditPutFn
 GETFN NC.TEditGetFn QUITFN (NC.TEditPropsListQuitFn 
NC.MakeTEditPropsListA0001) PROMPTWINDOW DON'T --)
   LISPXHIST NIL
   SI::*RESETFORMS* NIL
   RESETSTATE NIL
\TEDIT.OPENTEXTSTREAM.PIECES
   SI::*CLEANUP-FORMS* SI::RESETUNWIND
   TSTREAM #<IO Tedit Stream/136,121500>
   TEXTOBJ {TEXTOBJ}#121,135000
   TEDIT.GET.FINISHEDFORMS NIL
   PRIMPANE NIL
   START NIL
SI::*UNWIND-PROTECT*
   TEXT #<IO Nodircore Stream/136,121400>
   WINDOW NIL
   START/PROPS NIL
   END NIL
   PROPS (TITLEMENUFN NC.TEditMenuFn PUTFN NC.TEditPutFn
 GETFN NC.TEditGetFn QUITFN (NC.TEditPropsListQuitFn 
NC.MakeTEditPropsListA0001) PROMPTWINDOW DON'T --)
   LISPXHIST NIL
   SI::*RESETFORMS* NIL
   RESETSTATE NIL
OPENTEXTSTREAM
   Card {CardObject}#121,150116
   Length 885
   Stream 
#<IO Stream on {DSK}<home>paolo>il>notefiles>DEMO.NOTEFILE;1/127,112500>
   TempStream #<IO Nodircore Stream/136,121400>
   TextStream NIL
   StartPtr 317660
NC.GetTextSubstance
   SI::*CLEANUP-FORMS* SI::RESETUNWIND
   Stream 
#<IO Stream on {DSK}<home>paolo>il>notefiles>DEMO.NOTEFILE;1/127,112500>
   Length 885
   SubstanceVersion 0
SI::*UNWIND-PROTECT*
   SI::*CLEANUP-FORMS* SI::MONITOR-UNWIND
   LISPXHIST NIL
   SI::*RESETFORMS* ((& 317594))
   RESETSTATE NIL
SI::*UNWIND-PROTECT*
   Card {CardObject}#121,150116
   OverrideStream NIL
   SI::*LOCKED-MONITOR* NIL
   SI::*RESETFORMS* NIL
NC.GetMainCardData
   SI::*CLEANUP-FORMS* SI::MONITOR-UNWIND
SI::*UNWIND-PROTECT*
   Card {CardObject}#121,150116
   SI::*LOCKED-MONITOR* 
#<Lock {DSK}<home>paolo>il>notefiles>DEMO.NOTEFILE;1/172
,3550>
   SI::*RESETFORMS* NIL
NC.GetNoteCard
   SI::*CLEANUP-FORMS* SI::RESETUNWIND
   OpInProgress NIL
   CardWindow NIL
   Window NIL
   Substance NIL
   EditResult NIL
SI::*UNWIND-PROTECT*
   Card {CardObject}#121,150116
   ReadOnly NIL
   RegionOrPosition NIL
   TypeSpecificArgs NIL
   LISPXHIST NIL
   SI::*RESETFORMS* ((&) (& &) (& &) (& "Edit NoteCard")
 (& &))
   RESETSTATE NIL
NC.EditNoteCard
   LinkIcon {IMAGEOBJ}#132,44564
   Window {WINDOW}#161,150074
   Link {Link}#121,130232
   InterestedWindow {WINDOW}#161,150074
   Card {CardObject}#121,150116
   OldTitle "Sample Text Notecard"
NC.TraverseLink
   LinkIcon {IMAGEOBJ}#132,44564
   Window {WINDOW}#161,150074
   Card {CardObject}#121,150116
   CardType Text
   LinkIconLeftButtonFn NIL
NC.LinkIconLeftButtonFn
   ImageObject {IMAGEOBJ}#132,44564
   Window #<Output Display Stream/136,121100>
   Window {WINDOW}#161,150074
   ClippingRegion (0 0 166 21)
   HotRegion (7 0 152 21)
   MouseButtonState 4
   TTYWindow NIL
   ClippingRegionWidth 166
NC.LinkIconButtonEventInFn
   SI::*DUMMY-FOR-CATCH* T
   SI::*CATCH-RETURN-FROM* (& &)
\TEDIT.SELECT.OBJECTA0001A0002
   SI::*CLEANUP-FORMS* SI::RESETUNWIND
   SI::NLSETQ-VALUE NIL
   *PROCEED-CASES* (& &)
   SI::*NLSETQFLAG* NIL
SI::*UNWIND-PROTECT*
   TSTREAM #<IO Tedit Stream/171,130200>
   NEWSEL {SEL: 10-1-L _ 102/31948}
   LINE {L81/34258: 10-11 FE}
   X 96
   Y 185
   SELPANE {WINDOW}#161,150074
   SELOPERATION NORMAL
   BUTTON LEFT
   TEXTOBJ {TEXTOBJ}#121,135140
   OBJ {IMAGEOBJ}#132,44564
   RESULT NIL
   LISPXHIST NIL
   SI::*RESETFORMS* ((& &) (& 126) (& 1484))
   RESETSTATE NIL
\TEDIT.SELECT.OBJECT
   X 96
   Y 185
   NEWSEL {SEL: 10-1-L _ 102/31948}
   TSTREAM #<IO Tedit Stream/171,130200>
   SELOPERATION NORMAL
   PANE {WINDOW}#161,150074
   BUTTON LEFT
   CURSEL {SEL: 1-0-L _ 102/31914}
   REGIONTYPE NIL
   TEXTOBJ {TEXTOBJ}#121,135140
   LINE {L81/34258: 10-11 FE}
   PARAFIRSTCHNO NIL
   PARALASTCHNO NIL
   SELFN NIL
\TEDIT.XYTOSEL
   SI::*CLEANUP-FORMS* SI::RESETUNWIND
   TTYPROC #<Process TEdit#2/121,165306>
   TSTREAM #<IO Tedit Stream/171,130200>
   X 96
   Y 185
   DS #<Output Display Stream/136,121100>
   OLDX 96
   OLDY 185
   PREG (0 0 239 329)
   TEXTOBJ {TEXTOBJ}#121,135140
   CURSEL {SEL: 1-0-L _ 102/31914}
   NEWSEL {SEL: 10-1-L _ 102/31948}
   CUROPERATION NORMAL
   NEWOPERATION NORMAL
   PENDINGDEL NIL
   READONLY NIL
SI::*UNWIND-PROTECT*
   PANE {WINDOW}#161,150074
   LISPXHIST NIL
   SI::*RESETFORMS* ((& {CURSOR}#163,2334))
   RESETSTATE NIL
MODERN-ORIG-\TEDIT.BUTTONEVENTFN
   WINDOW {WINDOW}#161,150074
   ORIGFUNCTION MODERN-ORIG-\TEDIT.BUTTONEVENTFN
   ANYWHERE NIL
   TITLEPROPORTION 0.25
   CORNERREGION (1480 122 247 350)
   TOPMARGIN 13
   CORNER NIL
   ATTACHEDREGION (1480 122 247 393)
MODERNWINDOW.BUTTONEVENTFN
   WINDOW {WINDOW}#161,150074
   ORIGFUNCTION MODERN-ORIG-\TEDIT.BUTTONEVENTFN
   ANYWHERE NIL
   TITLEPROPORTION 0.25
   CORNERREGION (1480 122 247 350)
   TOPMARGIN "Examples of Notecard Types"
MODERNWINDOW.BUTTONEVENTFN
   W {WINDOW}#161,150074
   STREAM NIL
\TEDIT.BUTTONEVENTFN
   W {WINDOW}#161,150074
   STREAM NIL
\TEDIT.BUTTONEVENTFN
   SI::*DUMMY-FOR-CATCH* T
   SI::*CATCH-RETURN-FROM* (&)
\PROTECTED.APPLYA0001
   FN \TEDIT.BUTTONEVENTFN
   WINDOW {WINDOW}#161,150074
   SI::NLSETQ-VALUE NIL
   *PROCEED-CASES* (&)
   SI::*NLSETQFLAG* NIL
\PROTECTED.APPLY
   \MHCOM \TEDIT.BUTTONEVENTFN
   \MHPROCESS #<Process TEdit#2/121,165306>
   \MHWINDOW {WINDOW}#161,150074
   \MOUSEBUSY T
WINDOW.MOUSE.HANDLER
   \OLDTTY #<Process TEdit#2/121,165306>
   \MOUSEBUSY NIL
\MOUSE.PROCESS
   *FORM* (\MOUSE.PROCESS)
   *ARGVAL* NIL
   *TAIL* NIL
   *FN* \MOUSE.PROCESS
\EVALFORM
   %#FORM# (\MOUSE.PROCESS)
   *CURRENT-PROCESS* #<Process OLDMOUSE/172,6410>
   HELPFLAG BREAK!
   \CURRENTDISPLAYLINE 0
   \#DISPLAYLINES 13
   \LINEBUF.OFD #<IO Linebuffer Stream/137,117500>
   *READTABLE* #<ReadTable INTERLISP/172,52714>
   \PRIMTERMTABLE {TERMTABLEP}#172,45740
   \PRIMTERMSA {CHARTABLE}#172,46000
   TtyDisplayStream #<Output Display Stream/171,130100>
   SI::*RESETFORMS* NIL
   \INTERRUPTABLE T
   \TTYWINDOW {WINDOW}#121,113570
   READBUF NIL
   \TERM.OFD #<Output Display Stream/137,117400>
   *STANDARD-OUTPUT* #<Output Display Stream/137,117400>
   *STANDARD-INPUT* #<IO Linebuffer Stream/137,117500>
\MAKE.PROCESS0
T

@rmkaplan
Copy link
Copy Markdown
Contributor Author

rmkaplan commented May 5, 2026 via email

@pamoroso
Copy link
Copy Markdown
Member

pamoroso commented May 5, 2026

In an apps sysout you can load NoteCards by clicking on the NOTEBCARDS button. From the file browser that shows up click on DEMO.NOTEFILE and then Open.

@rmkaplan
Copy link
Copy Markdown
Contributor Author

rmkaplan commented May 5, 2026

Try it now--missing file reported as NIL instead of empty atom.

@pamoroso
Copy link
Copy Markdown
Member

pamoroso commented May 5, 2026

Commit 4ef73ae fixes the file not found error and NoteCards works with no issues.

@pamoroso
Copy link
Copy Markdown
Member

pamoroso commented May 5, 2026

Nothing unusual to report at commit 7ad5b04.

@pamoroso
Copy link
Copy Markdown
Member

pamoroso commented May 6, 2026

Still works with no issues at commit 926ceb6.

@pamoroso
Copy link
Copy Markdown
Member

pamoroso commented May 8, 2026

Still building and working at commit 3f876fa.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants