Various fixes and improvements to SHRDLU #2327
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixed issue with incorrect indefinite name when no antecedent is found.
Fixed issue with the word ISN'T being output incorrectly in a message.
Updated shrdlu build script to pass the file to compile in JCL and to use new load functions.
Made it so that either DEBUGMODE or USERMODE could be used, and so that both modes would not display annoying timer messages.
Got rid of hack of setting CAR and CDR values to T.
The old Maclisp used when SHRDLU was created allowed one to take the CAR
and CDR of atoms. The former returned internal bits associated with the
symbol, and the latter returned the property list of the symbol.
This was disabled in later verisons of MacLISP, but allowed to be enabled
by setting the value of CAR to T (and the value of CDR to T).
However, doing this masked coding errors that resulted from unintentionally
taking the CAR or CDR of a symbol, when a list or NUL was actually expected.
This commit removes the hack of setting CAR and CDR to T, and adds macros
to replace the use of CAR and CDR in this cases in PLNR and associated PLNR
logic. These macros are found in the MACROS module. Making this change,
and removing the duplicated $ reader macro from PLNR (it is already in
MACROS for the benefit of other files), required making changes to the
loader of SHRDLU and PLNR. I removed the obsolete use of UREAD to load
interpreted files, and replaced with a new NEW-LOAD function. UREAD was
unable to handle the (status macro $ 'thread) code that needed to be included.