instruction set previously mentioned.
A one line change in open does the trick. In CL
(DEFUN open (String Direction)
(LET ((Path (IF (MEMBER String *absolute*)
String
(FORMAT NIL "~A~A" *home-directory* String))))
(cl.openh Path Direction)))
Two system functions absolute and unabsolute add and remove paths from the global returning the global; their types are string --> (list string).
2. Useful error messages from the Shen reader.
The Shen reader overrode the native Shen-YACC error messaging facility but unfortunately I left something dangling which meant that the error messages
from the reader were vacuous. The solution: upgrade the native Shen-YACC error messaging facility and reflectively, the reader error messaging facility. Since the reader
operates at the bytecode level, a translation of the input from bytecode was needed
to give a useful error message. Hence the need for a specific reader error messaging
facility.
The maximum number of items printed by both error messaging facilities is determined by the value of shen.*maximum-print-sequence-size*. This is the global that controls the printing of all Shen sequences and is by default set to 20.
3. Changes to Shen/tk
The change in 1. shortens the code for Shen/tkand should make it immune to bad interaction with cd. As you know Shen/tk is driven by file-to-file messaging. These
files will now be stored on the C: drive possibly in the Programs directory. It should
be possible to arrange for these files to be created automatically including the batch
file needed to drive the whole thing. The only user input required will be to nominate the path to the resident TCL/tk for the whole system to install.
M.