Interlisp / medley

The main repo for the Medley Interlisp project. Wiki, Issues are here. Other repositories include maiko (the VM implementation) and Interlisp.github.io (web site sources)
https://Interlisp.org
MIT License
375 stars 19 forks source link

File not found error when launching SEdit with DF and ED #1171

Open pamoroso opened 1 year ago

pamoroso commented 1 year ago

Describe the bug When I launch SEdit in Interlisp Online with DF and ED I get the error:

File not found: #. (PATHNAME "NIL")

Sometimes instead I get a break window with the same error.

To Reproduce Steps to reproduce the behavior:

  1. sign into your Interlisp Online account
  2. under Initial Exec, select Interlisp
  3. click Run Medley
  4. at the Exec, evaluate (DF MYFUN)

Expected behavior The SEdit window opens with no errors.

Screenshots The break window: sedit-break

The full desktop: sedit

Context (please complete the following information):

Additional context A workaround is to launch SEdit with SEDIT:SEDIT.

The issue wasn't present in the 18-Dec-2022 20:59:08 Interlisp Online build, so it's the newly released 21-Apr-2023 18:26:39 build that broke SEdit.

pamoroso commented 1 year ago

I've experimented a bit more and SEDIT:SEDIT is actually not a workaround as there's no way of specifying the type of object being edited for new objects. For example, trying to create the new function MYFUN with (SEDIT:SEDIT 'MYFUN 'FNS) directly opens this window that's missing the function template:

sedit

(SEDIT:SEDIT 'MYFUN) doesn't show the type selection menu prior to opening the SEdit window.

I use Interlisp Online almost exclusively, so this is a showstopper and for the time being I can't edit Lisp code.

masinter commented 1 year ago

There is some odd behavior around the whereis.hash file. image is a temporary workaround

pamoroso commented 1 year ago

I confirm the workaround (POP XCL::*WHERE-IS-CASH-FILES*) resolves the issue, thanks.

nbriggs commented 1 year ago

Sure would be nice if these sort of things got tested before we roll out a new release.

fghalasz commented 1 year ago

Fixed this issue in Online.

Error was specific to Online (and the apps.sysout in the Medley Docker image).

Error was caused by Notecards calling (XCL::ADD-WHEREIS-DATABASE NIL). The error ultimately was caused by Notecards location (non-)independence and how online.sysout and apps.sysout get built in the github workflows. NIL was the result of NC.FindFile not finding the hash file.

Long-term fix is to fix Notecards to be relocatable (and yes @rmkaplan, the answer is psuedohosts). Short-term fix (which I've already done) is to revert to building online.sysout on full.sysout rather than apps.sysout in the github workflow.

Also, @masinter: I don't think your pull request will solve this specific issue because Notecards does its work after MEDLEYDIR-INIT. I think we probably should put a guard directly into XCL::ADD-WHEREIS-DATABASE to prevent adding a NIL path.

And @nbriggs, you are right that I did not thoroughly test the new Online release before I put it into production. Thought its was a minor change to build on top of apps.sysout instead of full.sysout. But clearly I was wrong.