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
378 stars 19 forks source link

MAKEFILE of file with edited function includes 2nd copy of COMS, but modified! #1725

Closed MattHeffron closed 5 months ago

MattHeffron commented 6 months ago

If I edit PRINT-ALL-DOCUMENTATION in CMLEXEC, doing a MAKEFILE (or CLEANUP) includes in the new file, a modified copy of the CMLEXECCOMS. I (LOAD 'CMLEXEC 'PROP) before editing the function. How should this be done to avoid ending up with the modified COMS? The modification seems to be happening during the MAKEFILE.

masinter commented 6 months ago

What I remember is that this is expected behavior if the MAKEFILE encounters a misspelled filecom and spell corrects, or if NLAML NLAMA LAMA are not set because the appearance of functions on those lists determine in some Interlisp implementations how calls are compiled. This is old behavior from Interlisp-10 but LAMA and NLAMBDAs are compiled differently than calls to LAMLs.

I hope this is all in the IRM but I haven't checked. What is the change to the fileCOMS that you notice?

MattHeffron commented 6 months ago

@masinter The change to the COMS is adding 7 FNS to the LAMA variable.

masinter commented 6 months ago

i'm not sure if the CL:COMPILE-FILE DFASL compiler vs. BCOMPL/TCOMPL and CL:EFUN vs DEFINEQ of CL:LAMBDA, and &KEY &REST but at some point the behavior is intended if unexpected.

MattHeffron commented 6 months ago

See also Issue #1735 (both related to the same PR #1736)