medley icon indicating copy to clipboard operation
medley copied to clipboard

HCFILES generates blank lispusers/DOC-OBJECTS.TEDIT.pdf

Open pamoroso opened this issue 9 months ago • 8 comments

The PDF file https://files.interlisp.org/medley/lispusers/DOC-OBJECTS.TEDIT.pdf that HCFILES generates for lispusers/DOC-OBJECTS.TEDIT consists of just one blank page with only an Envos header and a page number footer. TEdit opens DOC-OBJECTS.TEDIT with no issues and the Hardcopy command correctly produces the full 3-page document.

This is the PDF: DOC-OBJECTS.TEDIT.pdf

pamoroso avatar Mar 15 '25 10:03 pamoroso

Hmm, on my Mac, when I explicitly open DOC-OBJECTS.TEDIT, type meta-p to hardcopy to a file, and open a viewer (mac Preview) on that pdf, it looks fine. In both master and my working directory.

Is it failing for anybody else? Or just HCFILES.

rmkaplan avatar Mar 15 '25 16:03 rmkaplan

In my init file I define the {MEDLEY} pseudohost:

(PSEUDOHOST 'MEDLEY MEDLEYDIR)

MEDLEYDIR is ~/medley/medley/. When I call TEDIT to open DOC-OBJECTS.TEDIT:

(TEDIT '{MEDLEY}lispusers>DOC-OBJECTS.TEDIT)

I get the error:

FILE-NOT-FOUND

In OPEN:
File not found: #P"{DSK}<home>paolo>medley>medley>loadups>"

The backtrace:

5_: BTV
OPEN
HASH-FILE:OPEN-HASH-FILE
CASH-FILE:OPEN-CASH-FILE
   SI::*CATCH-RETURN-TO* (& &)
   *PROCEED-CASES* (& &)
   SI::*CATCH-RETURN-PC* 218
XCL::GET-WHERE-IS-ENTRIES
XCL::HASH-FILE-WHERE-IS
   NAME DOCOBJ-TIMESTAMP-GETFN
   TYPE FNS
   FILES T
   FN NIL
   FILES NIL
   TY FNS
WHEREIS
   STREAM 
#<Input Stream on {MEDLEY}<lispusers>DOC-OBJECTS.TEDIT;1/146,40600>
   GETFN DOCOBJ-TIMESTAMP-GETFN
   NOERROR NIL
   DATANBYTES NIL
   UNDERREADIMAGEOBJ T
   OBJ NIL
   GETFNFILE NIL
   GETFNFILENAME NIL
   HYPHENPOS NIL
   MAINFILE NIL
   FAILEDMSG NIL
READIMAGEOBJ
   TSTREAM #<IO Text Stream/146,31500>
   PIECE {PIECE}#121,147436
   FILE 
#<Input Stream on {MEDLEY}<lispusers>DOC-OBJECTS.TEDIT;1/146,40600>
   CURFILEBYTE# 1276
   BYTELEN NIL
   TEXTOBJ {TEXTOBJ}#122,4600
   FILEPTRSAVE 9331
   GETFN DOCOBJ-TIMESTAMP-GETFN
   OBJ NIL
\TEDIT.GET.OBJECT
   TEXT 
#<Input Stream on {MEDLEY}<lispusers>DOC-OBJECTS.TEDIT;1/146,40600>
   TSTREAM #<IO Text Stream/146,31500>
   PCCOUNT 136
   CURFILEBYTE# 1276
   END 10114
   PCNO 47
   TEXTOBJ {TEXTOBJ}#122,4600
   ORIGBYTE# 0
   PC {PIECE}#121,147436
   BYTELEN 69
   PREVPC {PIECE}#121,147464
   FIRSTPC {PIECE}#122,716
   PARALOOKSMAP {ARRAYP}#172,22116
   CHARLOOKSMAP {ARRAYP}#172,22226
   DEFAULTCHARLOOKS {CL100/15832:Gacha10}
   OLDPARALOOKS 3
\TEDIT.GET.PIECES3
   TEXT 
#<Input Stream on {MEDLEY}<lispusers>DOC-OBJECTS.TEDIT;1/146,40600>
   TSTREAM #<IO Text Stream/146,31500>
   START 0
   END 10114
   PROPS NIL
   TEXTOBJ {TEXTOBJ}#122,4600
   TRAILER (6717 17 3 136 1774860000)
   PCCOUNT 136
   IDATE NIL
   PC NIL
\TEDIT.GET.FORMATTED.FILE
   SI::*CLEANUP-FORMS* SI::RESETUNWIND
   TEXTOBJ {TEXTOBJ}#122,4600
   PWINDOW NIL
   READONLY NIL
SI::*UNWIND-PROTECT*
   TEXT 
#<Input Stream on {MEDLEY}<lispusers>DOC-OBJECTS.TEDIT;1/146,40600>
   TSTREAM #<IO Text Stream/146,31500>
   START 0
   END 10114
   PROPS NIL
   LISPXHIST ((&) (3 "" . "_ ") "<not yet evaluated>" 
NIL)
   SI::*RESETFORMS* NIL
   RESETSTATE NIL
\TEDIT.OPENTEXTSTREAM.PIECES
   SI::*CLEANUP-FORMS* SI::RESETUNWIND
   TSTREAM #<IO Text Stream/146,31500>
   TEXTOBJ {TEXTOBJ}#122,4600
   TEDIT.GET.FINISHEDFORMS NIL
   PRIMPANE NIL
   START NIL
SI::*UNWIND-PROTECT*
   TEXT 
#<Input Stream on {MEDLEY}<lispusers>DOC-OBJECTS.TEDIT;1/146,40600>
   WINDOW Tedit
   START/PROPS NIL
   END NIL
   PROPS NIL
   LISPXHIST ((&) (3 "" . "_ ") "<not yet evaluated>" 
NIL)
   SI::*RESETFORMS* NIL
   RESETSTATE NIL
OPENTEXTSTREAM
   TEXT {MEDLEY}lispusers>DOC-OBJECTS.TEDIT
   WINDOW NIL
   DONTSPAWN NIL
   PROPS NIL
   TSTREAM NIL
   PROC NIL
TEDIT
   TEXT {MEDLEY}lispusers>DOC-OBJECTS.TEDIT
   WINDOW NIL
   DONTSPAWN NIL
   PROPS NIL
TEDIT
   *FORM* (TEDIT (QUOTE 
{MEDLEY}lispusers>DOC-OBJECTS.TEDIT))
   *ARGVAL* NIL
   *TAIL* NIL
   *FN* TEDIT
\EVALFORM
FAULTEVAL
   *FORM* (UNDOABLY (TEDIT &))
\EVALFORM
   \INTERNAL NIL
EVAL
EVAL-INPUT
   RETRYFLAG NIL
   HELPCLOCK 927
DO-EVENT
   SI::*DUMMY-FOR-CATCH* T
   SI::*CATCH-RETURN-FROM* (&)
   LISPXHIST ((&) (3 "" . "_ ") "<not yet evaluated>" 
NIL)
   HELPCLOCK 0
XCL::EXECA0001A0002
   *CURRENT-EVENT* ((&) (3 "" . "_ ") 
"<not yet evaluated>" NIL)
   SI::NLSETQ-VALUE NIL
   *PROCEED-CASES* (&)
   SI::*NLSETQFLAG* NIL
XCL::EXECA0001
\PROGV
   XCL::TOP-LEVEL-P T
   XCL::WINDOW {WINDOW}#157,1664
   XCL::TITLE-SUPPLIED NIL
   XCL::TITLE NIL
   *THIS-EXEC-COMMANDS* (#<Hash-Table @ 166,42666>)
   XCL::ENVIRONMENT NIL
   XCL::PROMPT NIL
   XCL::FN EVAL-INPUT
   XCL::PROFILE "XCL"
   *EXEC-ID* ""
   XCL::PROFILE-CACHE (XCL::*PROFILE-NAME* "XCL" 
XCL:*EVAL-FUNCTION* CL:EVAL *PACKAGE* #<Package XCL-USER> *READTABLE* #<ReadTable XCL/174,56634> XCL:*EXEC-PROMPT* "> " --)
EXEC
\PROC.REPEATEDLYEVALQT
   *FORM* (\PROC.REPEATEDLYEVALQT)
   *ARGVAL* NIL
   *TAIL* NIL
   *FN* \PROC.REPEATEDLYEVALQT
\EVALFORM
   %#FORM# (\PROC.REPEATEDLYEVALQT)
   *CURRENT-PROCESS* #<Process EXEC/174,13204>
   HELPFLAG BREAK!
   \CURRENTDISPLAYLINE 0
   \#DISPLAYLINES 20
   \LINEBUF.OFD #<IO Linebuffer Stream/167,133700>
   *READTABLE* #<ReadTable INTERLISP/174,56714>
   \PRIMTERMTABLE {TERMTABLEP}#174,51740
   \PRIMTERMSA {CHARTABLE}#174,52000
   TtyDisplayStream #<Output Display Stream/146,31100>
   SI::*RESETFORMS* NIL
   \INTERRUPTABLE T
   \TTYWINDOW NIL
   READBUF NIL
   \TERM.OFD #<Output Display Stream/167,131600>
   *STANDARD-OUTPUT* #<Output Display Stream/167,131600>
   *STANDARD-INPUT* #<IO Linebuffer Stream/167,133700>
\MAKE.PROCESS0
T

My setup:

  • Are you using online.interlisp.org? no
  • OS: Linux
  • OS Version: Mint 22.1 Cinnamon
  • Display/window system: X11
  • Host arch: x86_64 (System76 Merkaat)
  • Maiko version: f0bd8e0
  • IL:MAKESYSDATE: 21-Aug-2025 10:56:42 (Maiko: master; Medley: master/90fdcb9)

I get the same error when I call TEDIT with DOC-OBJECTS.TEDIT in the current directory. The issue doesn't occur with other TEdit files.

pamoroso avatar Aug 21 '25 19:08 pamoroso

It looks like it can't find the WHEREIS database, so it can't find the file for the image object code.

The FILE-NOT-FOUND has the loadup directory but not the rest of the file's name.

Maybe the location of WHEREIS.HASH should be specified as a MEDLEY-INIT-VAR ?

On Aug 21, 2025, at 12:57 PM, Paolo Amoroso @.***> wrote:

pamoroso left a comment (Interlisp/medley#2067) https://github.com/Interlisp/medley/issues/2067#issuecomment-3211904834 In my init file I define the {MEDLEY} pseudohost:

(PSEUDOHOST 'MEDLEY MEDLEYDIR) MEDLEYDIR is ~/medley/medley/. When I call TEDIT to open DOC-OBJECTS.TEDIT:

(TEDIT '{MEDLEY}lispusers>DOC-OBJECTS.TEDIT) I get the error:

FILE-NOT-FOUND

In OPEN: File not found: #P"{DSK}paolo>medley>medley>loadups>" The backtrace:

5_: BTV OPEN HASH-FILE:OPEN-HASH-FILE CASH-FILE:OPEN-CASH-FILE SI::CATCH-RETURN-TO (& &) PROCEED-CASES (& &) SI::CATCH-RETURN-PC 218 XCL::GET-WHERE-IS-ENTRIES XCL::HASH-FILE-WHERE-IS NAME DOCOBJ-TIMESTAMP-GETFN TYPE FNS FILES T FN NIL FILES NIL TY FNS WHEREIS STREAM #<Input Stream on {MEDLEY}DOC-OBJECTS.TEDIT;1/146,40600> GETFN DOCOBJ-TIMESTAMP-GETFN NOERROR NIL DATANBYTES NIL UNDERREADIMAGEOBJ T OBJ NIL GETFNFILE NIL GETFNFILENAME NIL HYPHENPOS NIL MAINFILE NIL FAILEDMSG NIL READIMAGEOBJ TSTREAM #<IO Text Stream/146,31500> PIECE {PIECE}#121,147436 FILE #<Input Stream on {MEDLEY}DOC-OBJECTS.TEDIT;1/146,40600> CURFILEBYTE# 1276 BYTELEN NIL TEXTOBJ {TEXTOBJ}#122,4600 FILEPTRSAVE 9331 GETFN DOCOBJ-TIMESTAMP-GETFN OBJ NIL \TEDIT.GET.OBJECT TEXT #<Input Stream on {MEDLEY}DOC-OBJECTS.TEDIT;1/146,40600> TSTREAM #<IO Text Stream/146,31500> PCCOUNT 136 CURFILEBYTE# 1276 END 10114 PCNO 47 TEXTOBJ {TEXTOBJ}#122,4600 ORIGBYTE# 0 PC {PIECE}#121,147436 BYTELEN 69 PREVPC {PIECE}#121,147464 FIRSTPC {PIECE}#122,716 PARALOOKSMAP {ARRAYP}#172,22116 CHARLOOKSMAP {ARRAYP}#172,22226 DEFAULTCHARLOOKS {CL100/15832:Gacha10} OLDPARALOOKS 3 \TEDIT.GET.PIECES3 TEXT #<Input Stream on {MEDLEY}DOC-OBJECTS.TEDIT;1/146,40600> TSTREAM #<IO Text Stream/146,31500> START 0 END 10114 PROPS NIL TEXTOBJ {TEXTOBJ}#122,4600 TRAILER (6717 17 3 136 1774860000) PCCOUNT 136 IDATE NIL PC NIL \TEDIT.GET.FORMATTED.FILE SI::CLEANUP-FORMS SI::RESETUNWIND TEXTOBJ {TEXTOBJ}#122,4600 PWINDOW NIL READONLY NIL SI::UNWIND-PROTECT TEXT #<Input Stream on {MEDLEY}DOC-OBJECTS.TEDIT;1/146,40600> TSTREAM #<IO Text Stream/146,31500> START 0 END 10114 PROPS NIL LISPXHIST ((&) (3 "" . "_ ") "" NIL) SI::RESETFORMS NIL RESETSTATE NIL \TEDIT.OPENTEXTSTREAM.PIECES SI::CLEANUP-FORMS SI::RESETUNWIND TSTREAM #<IO Text Stream/146,31500> TEXTOBJ {TEXTOBJ}#122,4600 TEDIT.GET.FINISHEDFORMS NIL PRIMPANE NIL START NIL SI::UNWIND-PROTECT TEXT #<Input Stream on {MEDLEY}DOC-OBJECTS.TEDIT;1/146,40600> WINDOW Tedit START/PROPS NIL END NIL PROPS NIL LISPXHIST ((&) (3 "" . "_ ") "" NIL) SI::RESETFORMS NIL RESETSTATE NIL OPENTEXTSTREAM TEXT {MEDLEY}lispusers>DOC-OBJECTS.TEDIT WINDOW NIL DONTSPAWN NIL PROPS NIL TSTREAM NIL PROC NIL TEDIT TEXT {MEDLEY}lispusers>DOC-OBJECTS.TEDIT WINDOW NIL DONTSPAWN NIL PROPS NIL TEDIT FORM (TEDIT (QUOTE {MEDLEY}lispusers>DOC-OBJECTS.TEDIT)) ARGVAL NIL TAIL NIL FN TEDIT \EVALFORM FAULTEVAL FORM (UNDOABLY (TEDIT &)) \EVALFORM \INTERNAL NIL EVAL EVAL-INPUT RETRYFLAG NIL HELPCLOCK 927 DO-EVENT SI::DUMMY-FOR-CATCH T SI::CATCH-RETURN-FROM (&) LISPXHIST ((&) (3 "" . "_ ") "" NIL) HELPCLOCK 0 XCL::EXECA0001A0002 CURRENT-EVENT ((&) (3 "" . "_ ") "" NIL) SI::NLSETQ-VALUE NIL PROCEED-CASES (&) SI::NLSETQFLAG NIL XCL::EXECA0001 \PROGV XCL::TOP-LEVEL-P T XCL::WINDOW {WINDOW}#157,1664 XCL::TITLE-SUPPLIED NIL XCL::TITLE NIL THIS-EXEC-COMMANDS (#<Hash-Table @ 166,42666>) XCL::ENVIRONMENT NIL XCL::PROMPT NIL XCL::FN EVAL-INPUT XCL::PROFILE "XCL" EXEC-ID "" XCL::PROFILE-CACHE (XCL::PROFILE-NAME "XCL" XCL:EVAL-FUNCTION CL:EVAL PACKAGE #<Package XCL-USER> READTABLE #<ReadTable XCL/174,56634> XCL:EXEC-PROMPT "> " --) EXEC \PROC.REPEATEDLYEVALQT FORM (\PROC.REPEATEDLYEVALQT) ARGVAL NIL TAIL NIL FN \PROC.REPEATEDLYEVALQT \EVALFORM %#FORM# (\PROC.REPEATEDLYEVALQT) CURRENT-PROCESS #<Process EXEC/174,13204> HELPFLAG BREAK! \CURRENTDISPLAYLINE 0 #DISPLAYLINES 20 \LINEBUF.OFD #<IO Linebuffer Stream/167,133700> READTABLE #<ReadTable INTERLISP/174,56714> \PRIMTERMTABLE {TERMTABLEP}#174,51740 \PRIMTERMSA {CHARTABLE}#174,52000 TtyDisplayStream #<Output Display Stream/146,31100> SI::RESETFORMS NIL \INTERRUPTABLE T \TTYWINDOW NIL READBUF NIL \TERM.OFD #<Output Display Stream/167,131600> STANDARD-OUTPUT #<Output Display Stream/167,131600> STANDARD-INPUT #<IO Linebuffer Stream/167,133700> \MAKE.PROCESS0 T My setup:

Are you using online.interlisp.org? no OS: Linux OS Version: Mint 22.1 Cinnamon Display/window system: X11 Host arch: x86_64 (System76 Merkaat) Maiko version: f0bd8e0 IL:MAKESYSDATE: 21-Aug-2025 10:56:42 (Maiko: master; Medley: master/90fdcb9) I get the same error when I call TEDIT with DOC-OBJECTS.TEDIT in the current directory. The issue doesn't occur with other TEdit files.

— Reply to this email directly, view it on GitHub https://github.com/Interlisp/medley/issues/2067#issuecomment-3211904834, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQSTUJPDBAICFS66CIBJOO33OYQDNAVCNFSM6AAAAABZCLDZPOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZTEMJRHEYDIOBTGQ. You are receiving this because you commented.

rmkaplan avatar Aug 22 '25 00:08 rmkaplan

It looks like it can't find the WHEREIS database, so it can't find the file for the image object code.

@pamoroso Are you running with the --branch option? If so, this looks a lot like the symptom of issue #2251 (but with the WHEREIS database instead of EXPORTS.ALL)

MattHeffron avatar Aug 22 '25 03:08 MattHeffron

No, I'm not (consciously) running with the --branch option.

pamoroso avatar Aug 22 '25 06:08 pamoroso

i approved and merged fgh PR which introduced a bugin the MEDLEYDIR function affecting XCL::WHERE-IS-CASH-FILES ...

in the case of (MEDLEYDIR "loadups" "whereis.hash" NIL T) it doesn't add "whereis.hash" to the path.

New PR on the way

masinter avatar Aug 22 '25 17:08 masinter

I get a similar error when editing a system function, for example by calling (DF APPEND):

FILE-NOT-FOUND

In OPEN:
File not found: #P"{DSK}<home>paolo>medley>medley>loadups>"

I'm on master/f0bd8e0 for Maiko and master/90fdcb9.

pamoroso avatar Aug 25 '25 15:08 pamoroso

Never mind, updating to 1df0e1b on Medley master fixes the issue.

pamoroso avatar Aug 25 '25 15:08 pamoroso