16-Jun-82 10:03:19-PDT,759;000010000001
Date: 16 Jun 1982 1003-PDT
From: Alan Snyder <AS>
Subject: PSL compiler bug
To: Perdue
cc: AS

I have discovered what appears to be a bug in the PSL compiler.
When you use (RETURN) with no argument, the compiler generates
a "call" to the function NIL, which is undefined.  The interpreter
has no problem.  For example:

16 June 1982                 Alan Snyder
----------------------------------------
Compiling TEST
Source:
(LAMBDA NIL
   (PROG NIL
      (RETURN))
   3)
----------------------------------------
Object:
(*ENTRY TEST EXPR 0)
(*ALLOC 0)
(*LINK NIL EXPR 0)
(*MOVE '3 (REG 1))
(*EXIT 0)
*** Function `TEST' has been redefined
*** (TEST): base 326164, length 3 words
----------------------------------------
-------
17-Jun-82 17:09:35-PDT,2917;000010000001
Mail-From: PERDUE created at 17-Jun-82 17:09:15
Date: 17 Jun 1982 1709-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: Lanam's PSL bugs
To: psl at HP-HULK

<lanam>psl.bugs

	PSL bugs, inconsistencies with the manual, & improvements

* (dhl, 5/25) The scoping of functions in packages.
Say I do

(createpackage  'franz 'global)
(setpackage 	'franz)

(localintern 'franz\difference)

(dm franz\difference (x)
    (cond ((greaterp (length x) 3)
	   (list 'global\difference
		 (cadr x)
		 (cons 'add (cddr x))))
	  (t (cons 'global\difference (cdr x)))))

Then if I try to run (prettyprint ..)
I get my difference function called, not the global\difference
function by the compiled code for prettyprint.
I believe prettyprint since it is written in the global package,
should use the global\difference function 
not mine.  Since mine is a macro and the other is an expr, you
get a strange message that you are taking the cdr of some number.

The problem is that the system should be smart enough to correctly
associate the functions called from within a function to be those
associated  with the package the code was read into
and not those associated with the current
package.  Without this, I cannot redefine any system named functions
in my own package because the system will use my versions of these
functions when I do not wish it to.

Also it would be nice if functions defined would be localinterned to
the currentpackage*, and then defined.  This would eliminate the need
for the call to localintern in the above example.

(the above was sent on may 25.)

* (dhl, 5/27) asin (n) where n > 1 or n < -1 gives the error
that REDERR is an undefined function.

* (dhl, 5/27) I can not find any method of general type checking or
type coersion.

* (dhl, 5/27) (close) with no arguments says nil is an undefined
function.

* (dhl, 5/27) (car nil) and (cdr nil) is illegal.  I would prefer
(car nil) => nil and (cdr nil) => nil.

* (dhl, 5/27) typing an extra ")"  to the top level interpreter
gives you an error message.  It would be nicer if it was just
ignored.

* (dhl, 5/27) It would be nice if
(putd new-function-name (getd old-function name)) worked.
At present the best I can see is
(let ((x (getd ..)))
  (putd new (car x) (cdr x)))

* (dhl, 5/27) (throw label) where label did not exist in any
catch or no catch was called goes into an infinite loop.

* (dhl, 5/27) Need a package that allows lexpr and (arg n) inside
lexprs.

* (dhl, 5/27) defun in common lisp compatibility only handles
exprs, not macros, or fexprs.

* (dhl, 5/27) cannot have the names of fexprs or macros or nexprs,
be the name of a special variable also.

* (dhl, 5/27) There appears to be two char functions in the manual.
But the one mentioned as being loaded with the strings package
appears to not be loaded in with the strings package.
-------
17-Jun-82 17:14:32-PDT,7491;000010000001
Mail-From: PERDUE created at 17-Jun-82 17:10:29
Date: 17 Jun 1982 1710-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: Goldstein's PSL bugs
To: psl at HP-HULK

<goldstein>psl.bugs

	PSL bugs, inconsistencies with the manual, & improvements

* (ipg, 5/24, clarification) Is it the case that PSL does not check
for functions that receive the wrong number of arguments?  Is it able
to do so (for interpretive & for compiled code)?  It would be nice if
it had such an error checking mode.

* (ipg, 5.24, section 8.7) The arguments to the string functions are
not defined.

* (ipg, 5.24, section 10.4) The manual claims that global variables
cannot be rebound.  However, no error occured for: ((lambda
(throwtag*) 1) 1) which rebinds this global??

* (ipg, 5/24, section 10.3.1) What is the timetable for implementing
closures.  Altbind is unavailable at our site.

* (ipg, 5.24, section 12.2) The description of the globals is
frequently missing or too cryptic.

* (ipg, 5/24, manual, 8.4, Sub) For x:=[1 2], (sub x 0 1) results in
an error.  Shouldn't it return the segment from position 0 to position
1.

* (ipg, 5/24, manual, Lisp Rlisp compatibility) If RLISP is only a
parser for Lisp, then there should be functions: On, Off, In, Out. Why
don't these functions exist.  Ditto for <=, >=, etc.

--- Sent 5/23, 9 AM to Griss ---

* (ipg, 5/23, manual, sec 4.2, definition of Equal) Comment about
open-compiling that begins "... Otherwise, ..." is confusing.  The
text says that "This is not true of EQ and Eqn".  What is not true.
EQ is supposed to be open-compiled as well.

* (ipg, 5/23, manual, sec 4.2, definition of EqCar) EqCar(U,V) does not
complain if (Car U) is illegal, e.g. (EQCAR "ab" V).  (1) Does the
definition check, or is some random thing happening; and (2) should it
report an error if (CAR U) is illegal.

* (ipg, 5/23, manual, sec 4.2, definition of Null)  Is it reasonable
to place documentation of Null in 4.2.2,  Is Null a predicate for
testing Type of an Object?

* (ipg, 5/23, manual, sec 4.2, definition of Intern and NewId)
Interning a newId does not lose NewId's property list, if no previous
ID with this print name has been interned, e.g.
	(setq x (newId "ABC")) %No atom with this print name exists.
	(put x 'prop 'val)
	(intern x)
	(get 'ABC 'prop) --> val
Manual could be clearer in this regard.

* (ipg, 5/23, manual, arithmetic functions) MACRO rather than NEXPR is
used for the multi-argument functions like PLUS.  What is the
rationale for this.


* (ipg, 5/23, inconsistency) (help top-loop) and (help toploop) are
not the same.  The former just prints the file.  The latter executes a
function that prints the file, then prints the current bindings of the
reader, printer, etc.  This might be confusing to a novice user.
Perhaps, the file should be toploop.hlp (without the - sign).

--- 5/22 comments mailed to Griss, 5/22, 7:37 with ack requested. ---

* (ipg, 5/22, improvement) It would be nice if BACKTRACE did not print the 
functions that it itself put on the stack, since they are artifacts of its use
and not relevant to debugging.

* (IPG, 5/22, Improvement) EMODE (1) bind backspace to the rubout
handler.  (2) Commands like read and write file should use the default
file associated with the current buffer.  (3) Auto save and Auto fill
are two important additions.  (4) Write should say that the file was
written.

* (IPG, 5/22, Improvement) It would be nice if the HELP function also
informed the user of some dynamic properties, e.g. HELP <module>
should let the user know if the module is loaded.

* (IPG, 5/22, Bug) (HELP) states that a certain set of help files are
available.  In fact, there is a larger set corresponding to thse
described in the manual.

* (IPG, 5/22, Bug) (EMACS) tries to run <EDITORS>EMACS.EXE.  The HP HULK has
no directory <EDITORS>.

* (IPG, 5/22, Consistency) The manual describes the convention that globals
have the suffix !*.  But, the MM command uses the variable MMFORK with no
suffix.

* (IPG, 5/22, Bug) In RLISP mode, HELP FOR; losses because the parser 
attempts to parse FOR unless FOR appears in quotes.

* (IPG, 5/22, Manual, p21.3) In the example, EXPORTED ... appears, but it 
is not documented in the preceding text.  Only exported, imported are 
documented.

* (IPG, 5/22, Manual, p21.3) The manual does not explain how to reformulate
a LISP function into a SYSLSP function when in LISP mode, i.e. is there a
some kind of reformulator that converts calls to plus to calls to wplus2.

* (IPG, 5/22, Bug) Executing (setq !*Time T) causes an error which caused
system to begin prompting with line number 1.  This only happened the first
time, and did not repeat when !*Time was toggled.  Repeatable in a fresh PSL.
Does not occur in RLISP mode, only in LISP mode.

* (IPG, 5/8) It appears that PSL cannot write to two channels at the
same time, thus preventing a dribble file.

	 Redefine PRINT functions to write to two channels or define
your own special channel with a writechannel function that writes to
two other channels.

* (IPG, 5/8) Re TOPS-20, DOCMDS and CMDS do not seemed to be defined.

	Help file erroneously mentions exec0.   Exec, MM and EMACS are
autoloading.  The rest are obtained by LOAD EXEC;.

* (IPG, 5/8) Re prettyprinting, there does not seem to be a pretty print
function defined in the manual.  (A prettyPrint function is mentioned in the
manual; perhaps it exists in some file to be loaded.).

	Debug module has the function PPF which apparently pretty
	prints in RLISP format.  Is there a Lisp prettyprinter.  Yes,
	the function PrettyPrint.  PPF tries to print according to
	the currently loaded parser.  Unfortunately, it detects whats
	loaded by looking for the function RPRINT, which is autoloading.

	Also, ppf and plist lose when the fn or plist is not defined.  True.

* (IPG, 5/8) There don't seem to be any interrupt characters, e.g.
control-g to return to toplevel.  (An interrupt package is mentioned,
but not cited as complete.).

	Interrupts exist (Load Interrupt), but not documented.


* (IPG, 5/8) Re compilation, the functions LAPOUT, and LAPEND do not seem to
exist.  Possibly a renaming has taken place since the 18 January
manual.

	FASLOUT and FASLEND are the correct functions.

* (IPG, 5/8) Re saving a PSL, I tried SAVESYSTEM, followed by the TOPS-20 SAVE
command.  However, when I tried to run the resulting .exe file, I got
the complaint "No starting address".  How is a PSL saved and
restarted.  (Manual, p.14.1)

	The file on the tape is still incorrect.  Patch needed to
handle tops 20 release.

* (IPG, 5/8) Re HELP, the manual claims that HELP of no arguments
prints a message.  It works in Lisp mode as (HELP) and in RLISP mode
as HELP; but HELP(); loses??

       help() still loses.  help mini-editor requires ! before -.

* (IPG, 5/8) Re TTY Interaction, the Rubout handler is line-oriented, and
apparently one cannot rubout accross cr's.  Is this true?

	Yes.

* What is the size of various PSL spaces.

	One would like an INQUIR function that prints out these
statistics. 

* Is there a typep function that returns the TYPE.

	Not at present.

* Is there a general coercer that takes an object and a desired type.

	No.

* Note that some help files are incorrect; eg HELP editor refers to 
        minieditor, not mini-editor


-------
18-Jun-82 14:28:22-PDT,265;000010000001
Mail-From: PERDUE created at 18-Jun-82 14:24:42
Date: 18 Jun 1982 1424-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: Char macro
To: psl at HP-HULK

The char macro is not well documented and the use of <Ctrl-G> is
almost certainly not correct.
-------
18-Jun-82 14:28:22-PDT,294;000010000001
Mail-From: PERDUE created at 18-Jun-82 14:25:44
Date: 18 Jun 1982 1425-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: PLAP: logical name
To: psl at HP-HULK

The name PLAP: is used in the full-restore.ctl file, but is not
a standard logical name.  It should be PL: instead.
-------
18-Jun-82 14:33:21-PDT,491;000010000001
Mail-From: PERDUE created at 18-Jun-82 14:29:07
Date: 18 Jun 1982 1429-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: Batch control files
To: psl at HP-HULK

The batch control files use the standard logical names.  For
this to work properly, users who rebuild PSL should have a
BATCH.CMD file that TAKEs the logical-names command file.  This
approach is cleaner than having mentions of the actual name of
the PSL directory, if not others, in each batch control file.
-------
18-Jun-82 14:33:21-PDT,473;000010000001
Mail-From: PERDUE created at 18-Jun-82 14:31:19
Date: 18 Jun 1982 1431-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: Building new directories
To: psl at HP-HULK

The DEC-20 release notes suggest the use of the standard logical
names as arguments to the TOPS-20 BUILD command.  Our version of
BUILD does not accept a logical name for the building of a NEW
directory (it's OK for old ones, although that feature may be
a local addition to the code).
-------
18-Jun-82 16:43:22-PDT,209;000010000011
Date: 18 Jun 1982 1639-PDT
From: SOREFF at HP-THOR
Subject: PSL
To: perdue at HP-HULK

Is there any predicate which checks to see if an atom is the name
of a load module which has been loaded?
-------
21-Jun-82 13:31:59-PDT,319;000010000011
Date: 21 Jun 1982 1329-PDT
From: SOREFF at HP-THOR
Subject: For loop in PSL
To: perdue at HP-THOR
cc: soreff at HP-THOR

Where is the resident PSL part of the FOR construct described? I've found
the section on the "LOAD USEFUL" version (page 9.7-9.11) but I don't know where the restricted version is.
-------
21-Jun-82 15:21:52-PDT,436;000010000001
Mail-From: PERDUE created at 21-Jun-82 15:18:49
Date: 21 Jun 1982 1518-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: BUG function
To: psl at HP-HULK

The "BUG" function does not work correctly at HP.  Appropriate
address for bug reports is really site dependent and this is reason
that there should be a site initialization file executed when
PSL starts up.  This could also set up EMODE for HP terminals at HP.
-------
22-Jun-82 09:24:23-PDT,463;000010000001
Date: 22 Jun 1982 0924-PDT
From: Alan Snyder <AS>
Subject: EMODE bug
To: Perdue
cc: AS

I believe I have just fixed a bug in EMODE.  Previously, if you were at the end
of a line, it would start searching at the last character of that line (when
searching forward).  I fixed this by changing the function buffer_search in
search.red by adding a "+ 1" to the MIN at the beginning.  It seems to work
properly now.  I have not recompiled EMODE.

-------
22-Jun-82 09:43:44-PDT,455;000010000001
Date: 22 Jun 1982 0943-PDT
From: LANAM
Subject: psl bug
To: perdue

Try typing an expression.  Do not finish closing it.
Then type an EOF character (^z on the 20).
After that try to type EOF characters or close the expression (with ')').
You will notice, that it is in a mixed-up state.  Have the system thinks
it is still reading input, and the other half thinks ')' is a variable.
You can no longer use ')' to reset the break point.
-------
23-Jun-82 17:23:10-PDT,4686;000010000001
Date: 23 Jun 1982 1723-PDT
From: Kendzierski (Nancy)
Subject: PSL manual typos/questions
To: perdue

                   PSL Manual Errors and Questions
                          Nancy Kendzierski
                               6/23/82


page			comment/question/error

3.1	omit "be" 7th from bottom line, 5th word
3.5	forgot N-ary on Times function
4.8	Is a string a vector? (NO)  This should be clarified because a
	  string is defined to be "a packed vector (or byte vector) of
	  characters" on page 4.2
6.1	extra "is" 10th line from bottom, 2nd to last word
6.2	extra "by" 11th line, 5th word
6.4	RemPropL -- is V an indicator? Is U a simple id-list (YES)
6.4	Flag -- is this atomic, or if an erroroccurs half-way through
	  the list, do half of the ids now have the flag? (YES)  Same
	  question for RemFlag
6.8	Setf description originally says "returns RHS" but on page
	  6.8, line just before PSetf, it says the example "returns X"
	  -- this is the LHS.  [probably a typo, and should just read
	  "returns Y"]
7.3	Why have XCONS?  Having both NULL and NOT is at least
	  explicitly explained
7.5	Do "Nth" and "PNth" have the same error conditions?  How is
	  N<=0 treated in "Nth"?  Say so.
8.8	On page 8.5 it says "Char is not defined because of other
	  functions with the same name", yet here it appears as the
	  4th function on the page -- also String() on page 8.10
8.5-8.11  This whole section should be complete or not included --
	  don't just copy another manual unless it is all applicable
	  and in compatible format
9.3	"is has the same result as" should either have a parenthesized
	  phrase or there's an extra word in it.
9.8	1st line needs a "when" as the 3rd word
9.10	"Collected" into a list -- is that CONS or APPEND; build from
	  front or back?  What's the difference between COLLECT and
	  CONC?
9.13	last line, wrong tense, should be "the I's HAVE the form"
9.14	line before "DO!*():" -- wrong tense again, should be "which
	  ARE Setq'd"
9.14	in explanation of "Do-Loop" to be consistent with previous
	  form, "P's" should be used, not "pi's"
10.4	What's a "simple substitution macro"?  How does it differ from
	  a "macro"?
10.4-10.5  Is a macro id a function name or variable name?  Defn of DM
	  on page 10.4 says function but desciption of MacroP on 10.5
	  implies a variable
10.9	Yes, give a practival example of CLOSURES
11.2	line 8, "If EQCAR(CAR U ...)"  Basically I don't
	  know/remember/can't find the description of (id form ...
	  form) in enough detail to check this out.  CAR U should be
	  an id.  What is the CAR of an id?  The entire example is
	  confusing (i.e., the "approximation of the real code")  The
	  same is true of the Apply example
11.3	EvLis description -- Eval uses more efficient than what;
	  EvLis?  If so, why does EvLis exist?  If not, more efficient
	  than what?  Confusing.
11.3-11.4  Does use of FUNCTION also allow the variable named by the
	  function to be available (when compiled? interpreted?)
11.4	FUNCTION, last line, Closures are sort of discussed in Chapter
	  10.3, not 10.2
12.11	HelpFile description -- "persual" should be "perusal"
13.5	Does ReadCH raise case if !*RAISE is T?
13.8-13.9  If the examples of floats are correct, then the BNF is not
	  correct -- the BNF actually requires a decimal point in
	  every float, even if it has an exponent, so it is
	  inconsistent with 1e6 as a float
13.11	What is the concept of dipthong?  Read macro?  Splice macro?
	  Why is it one slot in a scan table instead of one for each?
13.13	ErrPrin -- what is the "item" that is returned?
13.19	EXPLODE -- is '(A.B) a "number, identifier, string, or
	  code-pointer"?  Does the ' make it an identifier?
14.1	Extraneous "of" in second line of section 14.2 (second word)
15.6	[not implemented yet] is it planned to be implemented?  By
	  whom?  When?
15.7	After BREAKOUTCHANNEL!*, "Break is a essentially" -- omit the
	  "a"
16.4	In section 16.1.3 second last line, 1st paragraph -- what does
	  it mean "functions must have a compound statement at their
	  top level"?
16.18	!*LOSE -- what is this?  It's constantly referred to, but
	  never defined/explained
16.18	Why is !*SAVENAMES initially NIL?
18.3	Is RCRef only available in RLisp?  Why? or How is it used in
	  Lisp?
18.13	3rd line  "#\:" should start a new line
	4th line  "Not" should be "Note"
	5th line  "*RAISE is not NIL" -- not "it not NIL"
18.14	Why doesn't #+ accept three arguments?  Because the third is
	  optional?
19.21	If the most common adjust function removes ANYREG to eliminate
	  looking for it in patterns, why have it?
-------
28-Jun-82 17:14:14-PDT,233;000010000011
Date: 28 Jun 1982 1714-PDT
From: Kendzierski (Nancy)
Subject: PSL logical names
To: Perdue

How come p20d: as <psl.20-dist> isn't defined in the
<psl>logical-names.cmd file?  It is listed in the manual
on page 22.2.
-------
28-Jun-82 17:47:02-PDT,226;000010000001
Mail-From: PERDUE created at 28-Jun-82 17:46:23
Date: 28 Jun 1982 1746-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: C-M-rubout in EMODE
To: psl at HP-HULK

Sometimes (always?) goes into an infinite loop.
-------
30-Jun-82 11:00:12-PDT,471;000010000001
Mail-From: PERDUE created at 30-Jun-82 10:57:40
Date: 30 Jun 1982 1057-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: "FLAGS"
To: psl at HP-HULK

In Chapter 12 of the manual the RLISP "On" and "Off" constructs are
discussed briefly.  It appears that LISP users should not just
set the corresponding global variables, because On and Off may
have additional side effects.  If this is true, there should be
some easy way of doing On and Off in LISP.
-------
 1-Jul-82 14:06:26-PDT,760;000010000001
Date:  1 Jul 1982 1406-PDT
From: Kendzierski (Nancy)
Subject: PSL bugs
To: perdue
cc: kendzierski

Note:  Should I be sending this to you or to a special PSL bugs file
       and/or should I be cc'ing someone?
Bug 1:  The manual (page 20.2, section 20.3.1 "TOPS-20 User Level Interface")
        states that "a global variable, CRLF, i sprovided with the <CR><LF>
        string.  Attempts to use this global variable result in a
        CRLF is an unbound id {99}  message from psl.
Bug 2:  The manual states on pp. 18.21-18.22 (section 18.8 "Find") that
        FindPrefix and FindSuffix collect a list of ids.  An attempt to
        use findprefix resulted in a
        FINDPREFIX is an undefined function {1001}  message from psl.
-------
 2-Jul-82 23:32:13-PDT,346;000010000001
Mail-From: PERDUE created at  2-Jul-82 23:29:04
Date:  2 Jul 1982 2329-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: PSL findprefix and findsuffix
To: psl at HP-HULK

These are not loaded with the USEFUL library and there whereabouts
is not documented in the manual, though they themselves are.
They appear in pu:find.red.
-------
 2-Jul-82 23:37:12-PDT,244;000010000001
Mail-From: PERDUE created at  2-Jul-82 23:34:25
Date:  2 Jul 1982 2334-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: Debugger user interface
To: psl at HP-HULK

The "break loop" does not establish echoing as it is entered.
-------
 2-Jul-82 23:37:12-PDT,329;000010000001
Mail-From: PERDUE created at  2-Jul-82 23:35:53
Date:  2 Jul 1982 2335-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: DEC-20 REENTER and CONTINUE
To: psl at HP-HULK

On the DEC-20, ^C followed by REENTER or CONTINUE screws up
badly for some reason.  I would think they would just not
be available commands.
-------
 6-Jul-82 10:41:15-PDT,197;000010000001
Date:  6 Jul 1982 1041-PDT
From: Johnson
Subject: PSL Query
To: Perdue
cc: Johnson

(DskIn "foo.lsp") echos all the forms evaluated in foo.lsp.
Is there a silent version of DskIn?
-------
 6-Jul-82 12:10:37-PDT,909;000010000001
Mail-From: PERDUE created at  6-Jul-82 12:09:24
Date:  6 Jul 1982 1209-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: Debugging
To: psl at HP-HULK

There are various deficiencies concerned with debugging.

There is no genuine backtrace that uses the saved variable bindings,
even for interpreted code.

The error handling system is so portable that it evidently cannot
use the DEC-20 APR trap mechanism, etc..

It is difficult to set up an interpreted version of a subsystem that
is usually compiled.  (This is a separate issue from the capabilities
of the system internals.)  In particular, facilities for requiring
certain files to be present when a procedure is loaded for interpretive
execution don't exist.  Also functions for loading interpreted and
compiled code are distinct, not to mention the additional distinct
function for loading "system" files (files in pl:).
-------
 6-Jul-82 12:15:43-PDT,292;000010000001
Mail-From: PERDUE created at  6-Jul-82 12:12:21
Date:  6 Jul 1982 1212-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: RDS, WRS
To: psl at HP-HULK

RDS and WRS are virtually guaranteed to cause lossage concerning
I/O channels, especially since there is no UNWIND-PROTECT.
-------
 6-Jul-82 13:55:40-PDT,498;000010000001
Mail-From: PERDUE created at  6-Jul-82 13:50:42
Date:  6 Jul 1982 1349-PDT
From: Cris Perdue <Perdue>
Subject: Re: PSL Query
To: Johnson
In-Reply-To: Your message of 6-Jul-82 1041-PDT
Remailed-date:  6 Jul 1982 1350-PDT
Remailed-from: Cris Perdue <Perdue at HP-HULK>
Remailed-to: psl at HP-HULK

DSKIN ordinarily prints the value of each form evaluated.  It is
possible to make it do and print some different things, but
it is basically not possible to turn the printing off.
-------
 6-Jul-82 15:40:45-PDT,390;000010000001
Mail-From: PERDUE created at  6-Jul-82 15:36:46
Date:  6 Jul 1982 1536-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: QUIT, pushdown overflow
To: psl at HP-HULK

Tried to do a (quit) in the middle of a long session, got the message
"?Pushdown overflow at 161550".  Continue and reenter behaved
strangely.  Start worked, but quit continued to have problems thereafter.
-------
 7-Jul-82 08:53:02-PDT,372;000010000001
Mail-From: PERDUE created at  7-Jul-82 08:52:19
Date:  7 Jul 1982 0852-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: IN and EVIN
To: psl at HP-HULK

IN and EVIN, available from RLISP, are not defined as functions.
IN even has an entry in the manual, though there is no description
of what it does (page 31.12).  These should be available from LISP.
-------
 7-Jul-82 09:29:14-PDT,411;000010000001
Date:  7 Jul 1982 0929-PDT
From: Alan Snyder <AS>
Subject: PSL bug
To: Perdue
cc: AS

The function NTH produces obscure error messages if the
index argument is out of range.  The error messages are
obscure because (1) they refer to the function PNTH,
which the user should have no need to know about, and
(2) they report an index which is different than the
value given in the call to NTH.
-------
 7-Jul-82 09:31:45-PDT,190;000010000001
Date:  7 Jul 1982 0931-PDT
From: Alan Snyder <AS>
Subject: PSL bug
To: Perdue
cc: AS

A similar comment applies to PNTH: the error message
reports an incorrect index value.
-------
 7-Jul-82 16:53:17-PDT,887;000010000001
Date:  7 Jul 1982 1651-PDT
From: SOREFF at HP-THOR
Subject: posible PSL bug
To: perdue at HP-HULK
cc: soreff at HP-THOR

I think I've run into a bug in the PSL structure editor. The "N" command,
which appears to be supposed to append an s-expression on the end of the
current list, does that, but also changes the expression just before the
added one to NIL. 
@login guest 
 Job 5 on TTY152 7-Jul-82  4:41PM
 Previous LOGIN: 7-Jul-82  4:40PM
@take <psl>logical-names
@r <psl>bare-psl
PSL 3.0, 9-Jun-82 
1 lisp> (load zpede^F^Fit)
***** `ZPED^FIT' load module not found {99}
Break loop
2 lisp break>> q
3 lisp> (load zpedit)
NIL
4 lisp> (setq tst '(a b c d e f g))
(A B C D E F G)
5 lisp> (editv tst)

EDIT


-E- p

(A B C D E F G)

-E- (-3 z) p

(A B Z C D E F G)

-E- (n x) p

(A B Z C D E F NIL X)

-E- ok
TST
6 lisp> (quit)
-------
 8-Jul-82 13:10:36-PDT,5205;000010000001
Mail-From: PERDUE created at  8-Jul-82 13:10:26
Date:  8 Jul 1982 1310-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: PSL bugs
To: psl at HP-HULK


* (AS, 6/11/82, manual, section 4.2.1, page 4.6) The manual doesn't say what
happens if EqStr is given a non-string or if EqCar is given a non-pair.

* (AS, 6/11/82, manual, section 4.3, page 4.9) The term id-space is used in
the description of INT2ID.  This term has not been defined.  The effect of
INT2ID is not clear.  Is id-space a needed concept?

* (AS, 6/11/82, manual, section 6.4, page 6.3) In the description of GET,
shouldn't U be an ID instead of an ANY?

* (AS, 6/11/82, manual, section 6.4, page 6.4) In the description of REMPROP,
shouldn't U be an ID instead of an ANY?

* (AS, 6/11/82, manual, section 6.4.2, page 6.5) MAPOBL should be described in
some other section.  Why does the argument have to be an ID (and not a
code-pointer)?

* (AS, 6/11/82, manual, section 6.5, page 6.7) The left hand side examples in
the description of SETF should be in LISP syntax for consistency with the rest
of the description.

* (AS, 6/11/82, manual, section 8.4, page 8.4) The term "words" is used here,
although the term "w-vector" is used in chapter 4.  In chapter 4, "words" are
machine words.

* (AS, 6/11/82, manual, section 9.3.1, page 9.8) The word "when" is omitted
from the sentence "Iteration ceases *when* one of the clauses..."

* (AS, 6/11/82, manual, section 9.4, page 9.16) The second argument to THROW
should be "VAL:any" instead of "FORM:form".

* (AS, 6/11/82, manual, section 10.1, page 10.1) Code-pointer is a poor name
for an object type.  (You don't call pairs "pair-pointers".)  How about "code
object" or "compiled function object"?

* (AS, 6/11/82, manual, section 10.1.3, page 10.3-10.4) In DF, DN, DM, and DS,
the argument "PARAM:id-list" should be "PARAM:id".

* (AS, 6/11/82, manual, section 10.3.1, page 10.9) Env-pointer is a poor name
for an object type.  (You don't call pairs "pair-pointers".)  How about
"environment"?

* (AS, 6/11/82, manual, section 11.1, page 11.1) The term "error number"
appears here for the first time, without explanation.

* (AS, 6/11/82, manual, section 12.4, page 12.11) "Perusal" is spelled wrong.

* (AS, 6/11/82, manual, section 12.4, page 12.11) In the description of
properties, the manual should do a better job of explaining what the relevant
IDs are in each particular case.  For example, what is a "module" (which can
be "loaded")?

* (AS, 6/11/82, improvement, section 13.1, page 13.1) Why is a channel an integer
instead of something more abstact?  If you allow I/O to strings and lists,
then why limit the maximum number of channels?

* (AS, 6/11/82, improvement, section 13.2, page 13.3) Using global variables to
initialize channel functions when a channel is OPENed is poor.  It would be
better to define a separate OPEN-SPECIAL that takes additional arguments, or
use a keyword init list a la Zetalisp.  Similar comments about misuse of
global variables apply elsewhere, e.g.  DUMPLISP.

* (AS, 6/11/82, manual, section 13.6, page 13.13) PRINTF is an expr that takes
a variable number of arguments.  If this is possible then you should explain
how users can do it.

* (AS, 6/11/82, manual, section 14.2, page 14.1) There is an extraneous "of"
in the first sentence.

* (AS, 6/11/82, manual, section 14.5, page 14.5) Help is described as being an
EXPR.  I don't believe this.

* (AS, 6/11/82, manual, section 15.3, page 15.3) There is an extraneous "you"
in the description of the "E" command.

* (AS, 6/11/82, improvement, section 16.2, page 16.7) TRST should trace everything
that can be SETF'ed, not just ordinary SETQ's.

* (AS, 6/11/82, manual, section 16.4, page 16.12) I don't understand this
section at all.  For example, I don't understand what the arguments to BTR are
for.

* (AS, 6/11/82, manual, section 16.5, page 16.13) Can EMBEDding be done using
Lisp syntax?  If so, how?

* (AS, 6/11/82, manual, section 16.7, page 16.14) Can STUBs be defined using
Lisp syntax?  If so, how?

* (AS, 6/11/82, manual, section 17.5, page 17.11) I was not able to achieve
any effect by giving extra command arguments to EDITF.  In any case,
COMS:forms is not a defined type; it should be either [COMS:form] or
COMS:form-list.

* (AS, 6/11/82, manual, section 20.2, page 20.1) IF-System is described as
being a "cmacro".  This term has not been defined, and is easily confused with
"c-macro".  The description says that the name "must" be a member of
System-List*.  Presumably, this means that the true case is executed if this
condition holds.

* (AS, 6/11/82, manual, section 20.3.1, page 20.4) RESET is described as
"restarting the system".  I read "system" as "TOPS-20" (or whatever).  I
suspect that something less drastic is intended.

* (AS, 6/11/82, manual, section 21.2.1, page 21.3) The example uses
"exported"; the text mentions only "internal" and "external".

* (AS, 6/11/82, manual, section 21.2.8, page 21.7) Is the field accessing
function FIELD or GETFIELD?  Both names are used in the manual.  Neither name
is defined in our PSL.
-------
 8-Jul-82 14:47:16-PDT,619;000010000001
Date:  8 Jul 1982 1447-PDT
From: Alan Snyder <AS>
Subject: EMODE bug
To: Perdue
cc: AS

EMODE C-M-B (backward sexpr) gets excessively confused by comments.
For example, when at the end of the following text

   (setq a b)
   %%%%%%%%%%

C-M-B will stop at the "b".
(Probably other commands have similar problems.)
I think the reason for this is that '%' (the comment character)
is ignored by scan-word by not by skip-blanks.
Thus in the implementation of C-M-B, skip-blanks skips back
to the '%', and then skip-word skips back to the 'b'.
The probable fix would be to change the scan table.
-------
 9-Jul-82 09:38:42-PDT,160;000010000001
Date:  9 Jul 1982 0938-PDT
From: Alan Snyder <AS>
Subject: PSL bug
To: Perdue
cc: AS

DOLIST (in PU:COMMON.SL) fails to bind the loop variable.
-------
 9-Jul-82 09:55:18-PDT,785;000010000011
Date:  9 Jul 1982 0948-PDT
From: SOREFF at HP-THOR
Subject: PSL bug
To: perdue at HP-HULK
cc: soreff at HP-THOR

I've constructed an example of how the "(a s-expression)" command in the
structure editor can fail. It seems to fail when one is adding an item after
the last expression in a list. I've edited the log slightly, removing blank
lines to make it more compact.
@take psl
PSL 3.0, 9-Jun-82 
1 lisp> (load zpedit)
NIL
2 lisp> (setq a '(b c d e f g))
(B C D E F G)
3 lisp> (editv a)
EDIT
-E- p
(B C D E F G)
-E- 3 p
D
-E- (a z) 0 p
(B C D (Z) E F G)
-E- 7 p (a y) 0 p
G
(B C D (Z) E F NIL (Y))
-E- pp
(B C D (Z) E F NIL (Y))
-E- 8 p
(Y)
-E- (a x)
-E- p
... NIL (X))
-E- ^
-E- p
(B C D (Z) E F NIL NIL (X))
-E- ok
A
4 lisp> (quit)
-------
 9-Jul-82 14:56:21-PDT,1294;000010000001
Date:  9 Jul 1982 1456-PDT
From: Alan Snyder <AS>
Subject: PSL bug
To: Perdue
cc: AS

The following example demonstrates a bug in PSL.  It is the shortest example I
could find, derived from a real attempt at compiling a file.  The offending
object is a machine instruction, the exact identity of which changes with
different programs.  In this case, it is "CAMN 0(17)".  The example is highly
sensitive to change.  For instance, if the function name is changed to "FOO",
no error is reported.  Similarly, no error is reported if any of the loaded
modules are omitted.

-------------------------------------------------------------------------------
@psl:bare-psl
PSL 3.0, 9-Jun-82 
1 lisp> (load emode common jsys)
NIL
2 lisp> (faslout "nul:")
FASLOUT: (DSKIN files) or type in expressions
When all done execute (FASLEND)
T
3 lisp> (de fooo (name)
3 lisp>   (let ((n (string-length name)))
3 lisp>     (cond ((= (indx name (- n 1)) (char >))
3 lisp>            (concat name "*.*.*"))
3 lisp> 	  name)))
FOOO4 lisp> (faslend)

*** Init code length is 1
**FASL**INITCODE**NIL
5 lisp> (reclaim)
***** Fatal error during garbage collection
Illegal item in heap at 502462
-------------------------------------------------------------------------------

-------
12-Jul-82 01:39:18-PDT,670;000010000001
Date: 12 Jul 1982 01:35:14-PDT
From: daemon at HP-Speech
Via: utah-cs
Date: 11 Jul 1982 1310-MDT
From: William Galway <Galway at UTAH-20>
Subject: EMODE stuff
To: hplabs!perdue at UTAH-CS

Thanks for your note about the new query replace, etc.  I'm looking forward
to getting the new stuff when folks come out this week.

I don't seem able to reproduce your "infinite loop" problem with
M-C-DELETE.  Could you be a bit more specific about when it occurs?
(Maybe, send a sample file that it blows up on?)  Are you sure it's not a
"very long" as opposed to "infinite" loop?  The search for a matching open
parenthesis is fairly slow.

Thanks.
-------

12-Jul-82 11:02:44-PDT,323;000010000001
Date: 12 Jul 1982 1102-PDT
From: Johnson
Subject: PSL String Package
To: Perdue

A routine to convert from STRING to INTEGER would be nice.

The SUBSTRING function is peculiar:  its last argument is
one greater than the index of the last character to be
extracted, even given that indexes begin at zero!
-------
12-Jul-82 11:49:18-PDT,371;000010000001
Mail-From: PERDUE created at 12-Jul-82 11:45:04
Date: 12 Jul 1982 1145-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: EMODE terminal handling deficiency
To: psl at HP-HULK

EMODE does not use the terminal driver that corresponds to TOPS-20's
idea of what the terminal type is.  It just uses whatever terminal
driver is loaded (HP2648A in our case).
-------
12-Jul-82 14:08:25-PDT,2970;000010000011
Date: 12 Jul 1982 1408-PDT
From: BATALI
Subject: PSL
To: perdue


Here are some comments I have been accumulating about PSL.
I talked with Ira about them.  The most important:

We need unwind-protect.

Many modules seem not to be loaded by default or autoloadable.

The file is <batali>psl-gripes.txt

Problems, wierdnesses, and arbitrary comments about PSL.

1 (catch nil form) claims to catch all throws through it, but it
doesn't catch errors.  We want unwind-protect, which may be
implementable with a combination of catch nil, and some sort of
errset.

2 Why reverse the arguments of mapc?  The psl way does not allow
multiple argument functions.

3 Closures.  One possibility is to use lispm-style closures.  Probably
wouldn't want to be called closures, instead call them selector's
(instances) or something. lbind seems to give the ability to to this, 
the evaluator must know about the new kind of function.

4 The stepper doesn't seem to work.

5 I want * and +

6 !:prefix option doesn't work in defstruct

7 Control keys
  control-g (abort computation, throw to top loop)
  control-b (breakpoint here, or next interpreted function)

8 bit file i/o: One ought to be able to open a file and specify the
  number of bits that will be sent on each call to "tyi" and "tyo". 
  It is important that the programmer be able to efficiently use
  the memory on his machine ie not be limited to one particular
  byte-packing convention.  For one thing, we want to be able to
  read other people's data.

9 vectors ought not to print their elements, in general, we want
  "user defined types" which answer correctly to typep, which doesn't
   seem to exist either.

10 several reader-related functions don't work. Putreadmacro putsplicemacro.

12 Functions in the mathlib library aren't there. Also definition of
   ceiling is "largest integer smaller than its argument." ?? That 
   isn't even the definition of floor!

13 I don't like the compiler interface.  There ought to be a way to
   compile functions on demand, not when some flag has been set.  Also
   a function which takes a filename and compiles that file.  Note that
   I can't write such functions myself without unwind-protect.

14 PSL ought to have some notion of the files it will deal with.  There
   ought to be init files.  There ought to be filename defaulting.  There
   ought to be the ability to get info about files (creation dates,
   etc).  The file interface ought to know about compiled files so
   that "load" is a generic operation.

15 There should be functions to return interesting data about the
   system. (time) (memory-used) . . .

16 It is really strange that catch is not a special form.  Does
   the compiler know about it or not?

17 Faslout goes to file with ".b" concated on the end. But faslin
   just tries to open the filename as given.  This would be fixed with
   14.

     --John
-------
12-Jul-82 14:39:19-PDT,735;000010000001
Mail-From: PERDUE created at 12-Jul-82 14:36:43
Date: 12 Jul 1982 1436-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: Strange bug
To: psl at HP-HULK

The following results in what appear to be at least 2 bugs:

@psl:psl	; Run the basic PSL
*(load emode)
*(emode)
*(load prlisp) M-E
<gets an error, goes into error handler>
q M-E
<says it is exiting LISP!>
C-M-Z
<goes back to regular read-eval-print in the error handler>
q <CR>
<goes back to EMODE in a screwed-up state>

There seems to be no escaping once this problem begins.
The symptoms include printing a backtrace in response to one of
the "q"s.  Parts of the problem arise also when this is done
without EMODE being invoked or even loaded.
-------
12-Jul-82 16:19:29-PDT,411;000010000001
Date: 12 Jul 1982 1617-PDT
From: Kendzierski at HP-HULK (Nancy)
Subject: emode ^X^R bug
To: psl at HP-HULK

The ^X^R command in EMODE loses the last line of a file if it is not
terminated by a CRLF.  The problem is that the procedure
"read_line_from_file" (in <psl.emode>fileio.red) only returns "ch" if
the last character of "l" is EOF, even though the line "l" may contain
more characters.
-------
12-Jul-82 17:05:24-PDT,1010;000010000001
Date: 12 Jul 1982 1705-PDT
From: Alan Snyder <AS>
Subject: PSL bug
To: Perdue
cc: AS

Note the following test file:

-------------------------------------------------------------------------------
(load "common")
(de test (s) (string-length s))
(test "foo")
-------------------------------------------------------------------------------

When this file is read into a BARE-PSL (via DSKIN), it complains
that STRING-LENGTH is an undefined function.  However, when this
file is compiled and then loaded into a BARE-PSL (via LOAD),
it complains that STRINF is an undefined function called from
compiled code.  The reason seems to be that the file PU:COMMON.SL
contains some strange definition of STRING-LENGTH that affects
only the compiler.  The reason why this bug is important is that
there is a FUNCTION definition of STRING-LENGTH in PU:STRINGS.LSP;
when both STRINGS and COMMON are loaded, you have a situation
where interpreted code works but compiled code gets an error.
-------
12-Jul-82 17:39:20-PDT,456;000010000001
Date: 12 Jul 1982 1738-PDT
From: Kendzierski at HP-HULK (Nancy)
Subject: PSL manual bugs (PictureRLISP)
To: psl at HP-HULK
cc: kendzierski at HP-HULK

Page 18.9 -- it talks of primitive procedures Second, Third, Fourth, and
             Fifth;  "fifth" is not defined in PSL.
Page 18.10 -- the first line on the page is
             "My!.pyramid := Pyramid Vertices"
             this should be:   "My!.pyramid := Pyramid My!.vertices"
-------
12-Jul-82 17:42:09-PDT,360;000010000001
Date: 12 Jul 1982 1742-PDT
From: LANAM
Subject: how do I do the following in psl.
To: perdue

Take a package name say foo, and take an atom name, say bar, and
do a concat such that I get "foo:bar".  And then do an localintern
on this such that bar is defined inside package foo.
I try and can only get the : to be escaped with a !.
	douglas
-------
12-Jul-82 18:14:15-PDT,619;000010000001
Mail-From: PERDUE created at 12-Jul-82 18:14:10
Date: 12 Jul 1982 1813-PDT
From: Cris Perdue <Perdue>
Subject: Re: how do I do the following in psl.
To: LANAM
In-Reply-To: Your message of 12-Jul-82 1742-PDT
Remailed-date: 12 Jul 1982 1814-PDT
Remailed-from: Cris Perdue <Perdue at HP-HULK>
Remailed-to: psl at HP-HULK

I have experimented and also looked at the source code.  There
evidently is no way to cause an existing identifier to be interned,
though an existing ID can be given as an argument to INTERN, which
creates a new ID.

Note that the "package prefix character" is "\", not ":".
-------
12-Jul-82 18:36:45-PDT,226;000010000011
Date: 12 Jul 1982 1836-PDT
From: BATALI
Subject: PSL bugs
To: perdue

What are dipthongs?  Why are they neat?
How do I use them?
Why aren't they documented?
Do you care?
Do I?
Should I?

   L&C,
   John
-------
13-Jul-82 10:30:28-PDT,523;000010000001
Date: 13 Jul 1982 1030-PDT
From: BATALI
Subject: Unwind-Protect
To: perdue


Here is the code for unwind-protect.
It has the same semantics as the lisp-machine version
(except in interpreted code that happens to use the 
variable unwind-protect-value).  Enjoy.

(defmacro unwind-protect (protected-form . undo-forms)
  `(let ((unwind-protect-value (catch nil ',protected-form)))
     (progn . ,undo-forms)
     (if throwsignal!*
	 (throw throwtag!* unwind-protect-value)
	 unwind-protect-value)))
-------
13-Jul-82 10:45:32-PDT,1713;000010000011
Date: 13 Jul 1982 1045-PDT
From: BATALI
Subject: Flaming is funner than working
To: perdue


I've been experimenting with read macros in PSL.  None of the
advertised functions for creating them exist, but the following
works: 

(defmacro define-read-macro (table id fname)
  `(progn
    (put ',id 'lispreadmacro ',fname)
    (putv ,table (id2int ',id) 11)   ;; delimiter
    ',id))

This does what PutReadMacro is supposed to do (but it doesn't evaluate
the id or the fname).

Note how this seems to work: If the reader (actually, the function
ChannelReadTokenWithHooks) sees a character with code 11 in the
scantable, it looks for the LISPREADMACRO property on the id
corresponding to the character.  If there is one there, it applys it
in place of ChannelReadTokenWithHooks to the input channel.

This would be fine and not very interesting and I certainly wouldn't
be sending you this long message if it weren't for the fact that this
scheme means you can't "bind" a scantable and expect different
behaviour from characters.  This is because, although the scantable
can be bound, the system still looks for the LISPREADMACRO property of
the id.  So it is not possible for a character to have different
properties on different scantables. Thus:

(define-read-macro somerandomscantable* !( ChannelTotallyTrashSystem)

Would lose no matter which scan table is currently in effect.

We need the ability to pair characters with functions in particular
scantables only.  It is very likely that the PSL people understand
this, and indeed, the relevant sections of the manual (pp 13.10 - 13.11
and 13.18) seem to claim that this is what ought to go on.

     --John
-------
13-Jul-82 10:56:01-PDT,644;000010000011
Date: 13 Jul 1982 1056-PDT
From: Alan Snyder <AS>
Subject: PSL gross misfeature
To: Perdue
cc: AS

ErrorSet is currently implemented as an EXPR.  This fact has the subtle,
yet critical effect that the form enclosed in the error set can only
use fluid variables.  If you don't declare the variables fluid, the
code will work interpretively, but will execute incorrectly when compiled.
No warning is given by the compiler, nor is there any hint in the manual
that this problem exists.

Note: the file directory.sl that we sent to Utah fails when compiled for
this reason.  I suggest you send a message to Will about this.
-------
13-Jul-82 11:14:54-PDT,958;000010000011
Date: 13 Jul 1982 1114-PDT
From: Alan Snyder <AS>
Subject: PSL bug
To: Perdue
cc: AS

COND behaves differently in some cases depending upon whether
it is interpreted or compiled.  An example is provided by
the following function:

  (de foo (a) (cond ((= a 3) 4) a))

If interpreted, FOO will return the parameter A unless A is 3.
If compiled, FOO will return NIL in those same cases.
The compiled code is shown below:

------------------------------------------------------------
Compiling FOO
Source:
(LAMBDA (A) (COND ((= A 3) 4) A))
------------------------------------------------------------
Object:
(*ENTRY FOO EXPR 1)
(*ALLOC 0)
(*JUMPNOTEQ (LABEL G0004) (REG 1) '3)
(*MOVE '4 (REG 1))
(*EXIT 0)
(*LBL (LABEL G0004))
(*MOVE 'NIL (REG 1))
(*MOVE 'NIL (REG 1))
(*EXIT 0)
*** Function `FOO' has been redefined
*** (FOO): base 334750, length 7 words
------------------------------------------------------------
-------
13-Jul-82 11:20:31-PDT,595;000030000001
Date: 13 Jul 1982 1120-PDT
From: LANAM
Subject: Re: how do I do the following in psl.
To: Perdue
In-Reply-To: Your message of 13-Jul-82 0942-PDT

How can I get the package-specifier prefix in a string and concat it
with other strings, and then intern it.
I tried, and the package-specifier prefix character got an escape
character inserted before it.

ps: I have a set of map functions which define all the maclisp map
functions (with mulitple arguments).  I also have a package which
defines lexprs. (def x (lexpr ...)). 
These are in the file <lanam.psl-frl>franz.lisp
-------
13-Jul-82 11:40:37-PDT,307;000010000001
Date: 13 Jul 1982 1140-PDT
From: Alan Snyder <AS>
Subject: PSL request
To: Perdue
cc: AS

For direct use by a human, it would be better if PRETTYPRINT returned
NIL, instead of its argument.  That way, the user doesn't have to
see the same object printed twice by the Read/Eval/Print loop.
-------
13-Jul-82 11:44:57-PDT,185;000010000001
Date: 13 Jul 1982 1144-PDT
From: Alan Snyder <AS>
Subject: PSL request
To: Perdue
cc: AS

FindPrefix and FindSuffix should convert their string argument
to upper case.
-------
13-Jul-82 12:09:34-PDT,282;000010000001
Mail-From: PERDUE created at 13-Jul-82 12:09:00
Date: 13 Jul 1982 1209-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: Re: PSL bug
To: AS at HP-HULK
cc: psl at HP-HULK
In-Reply-To: Your message of 13-Jul-82 1114-PDT

I take this to be a bug in the interpreter.
-------
13-Jul-82 17:39:27-PDT,265;000010000001
Mail-From: PERDUE created at 13-Jul-82 17:39:13
Date: 13 Jul 1982 1739-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: FIND module
To: psl at HP-HULK

The "find" module is not loaded in bare PSL, but the documentation
does not mention the fact.
-------
14-Jul-82 07:59:29-PDT,277;000010000001
Date: 14 Jul 1982 0759-PDT
From: Alan Snyder <AS>
Subject: EMODE bug
To: Perdue
cc: AS

I fixed a bug in REFRESH.RED: ClearWindow() previously
failed to clear the associated virtual screen, causing
the old contents to later reappear in place of empty
lines.
-------
14-Jul-82 14:04:02-PDT,416;000010000001
Date: 14 Jul 1982 1404-PDT
From: Alan Snyder <AS>
Subject: PSL bug
To: Perdue
cc: AS

The function STRING< in STRINGS.LSP has the interesting property
that both of the following forms evaluate to NIL:

  (string< "b" "aa")
  (string< "aa" "b")

This anomoly results from the improper testing of string length
in the function.  The other string comparison functions seem
to have the same bug.
-------
15-Jul-82 12:58:17-PDT,409;000010000001
Date: 15 Jul 1982 1258-PDT
From: Alan Snyder <AS>
Subject: EMODE bug
To: Perdue
cc: AS

C-M-B (backwards s-expr) loses if the corresponding left paren
is the first character in the buffer: it leaves the cursor
to the right of the paren.  There is explicit code that
makes this adjustment, and this code is marked in the source
as being a "KLUDGE!".  I don't know why this kludge is there.
-------
16-Jul-82 01:49:45-PDT,565;000010000001
Date: 16 Jul 1982 0149-PDT
From: BATALI
Subject: PSL bug
To: perdue


The function RPLACHAR stores a character into a string.  It works fine
in interpreted code, but when called from a compiled function, we get:

***** Undefined function STRINF called from compiled code

Looking on the property list of RPLACHAR, we notice a CMACRO property
whose value is:

(LAMBDA (S I X) (PUTSTRBYT (STRINF S) I X))

Which seems to be where the call to STRINF comes from.

Giving RPLACHAR a CMACRO property of nil "fixes" the problem.

     --John
-------
16-Jul-82 02:37:30-PDT,413;000010000001
Date: 16 Jul 1982 0237-PDT
From: BATALI
Subject: PSL fun
To: perdue


The compiler doesn't enforce the restrictions on the placement of
RETURN statements. (See pages 9.4 and 9.5 of the manual.)

This function gets an error if interpreted, but returns its argument
when compiled:

(de just-return (arg) (return arg))

Actually, the compiler ought to complain about this one.

     --John
-------
16-Jul-82 02:44:39-PDT,325;000010000001
Date: 16 Jul 1982 0244-PDT
From: BATALI
Subject: PSL joy
To: perdue


Here is an interesting function:

(de c3 () (cond ((= 3 3) 'yes) (t (= 3 3))))

Interpreted:
(c3)
YES

Compiled:
(c3)
T

Obviously the compiler is doing something grossly clever, obviously it
is doing it wrong.

     --John
-------
20-Jul-82 09:45:10-PDT,447;000010000001
Mail-From: PERDUE created at 20-Jul-82 09:43:24
Date: 20 Jul 1982 0943-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: Vector of words
To: lanam at HP-HULK
cc: psl at HP-HULK

You have 2 choices.  If the block of words is never to be reclaimed,
call GtWArray.  If you wish the garbage collector to have its shot
at the block of storage, call GtWords.  In either case the block
of words is consider to be uninterpreted data.
-------
21-Jul-82 11:27:54-PDT,330;000010000001
Date: 21 Jul 1982 1127-PDT
From: Alan Snyder <AS>
Subject: PSL bug?
To: Perdue
cc: AS

The manual (section 9.4) says that an unhandled THROW is treated
as an ERROR in the context of the THROW.  In fact, what happens
is that PSL is restarted at top-level.  I would prefer that it
behave as the manual describes.
-------
21-Jul-82 12:53:25-PDT,549;000010000001
Date: 21 Jul 1982 1253-PDT
From: Alan Snyder <AS>
Subject: PSL unfeature
To: Perdue
cc: AS

PSL allows a program to modify "constant" list structure that
has been created by the compiler in the code space.  Since
this "constant" list structure is not scanned by the garbage
collector, any pointers inserted into it will not be updated
when garbage collection occurs, and will henceforth point
to randomness.  PSL should use the address protection provided
by the hardware to prevent modification of "constant"
list structure.
-------
21-Jul-82 14:22:42-PDT,296;000010000001
Date: 21 Jul 1982 1422-PDT
From: Alan Snyder <AS>
Subject: PSL complaint
To: Perdue
cc: AS

Using DEFSTRUCT (from NSTRUCT) causes the PSL compiler
to produce "function redefined" messages.  As far as
the user is concerned, these messages are spurious
and should be suppressed.
-------
21-Jul-82 15:51:01-PDT,277;000010000001
Mail-From: AS created at 21-Jul-82 15:49:32
Date: 21 Jul 1982 1549-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: PSL Manual comment
To: PSL at HP-HULK
cc: AS at HP-HULK

The function UnBoundP should be described (or mentioned)
in the chapter on Identifiers.
-------
21-Jul-82 16:51:09-PDT,443;000010000001
Date: 21 Jul 1982 16:48:33-PDT
From: hearn@RAND-RELAY at HP-Speech
Via: utah-cs
Date: Tue Jul 20 23:52:08 1982
Mail-from: ARPANET site RAND-RELAY rcvd 20-Jul-82 2348-MDT
Date: Tuesday, 20 Jul 1982 22:33-PDT
To: psl-bugs at UTAH-20
Subject: Question on readch()
From: hearn at RAND-RELAY

Readch does not do case conversion, irrespective of the setting of *raise.
If *raise is on, shouldn't lower case be converted to upper case?

21-Jul-82 16:51:10-PDT,554;000010000001
Date: 21 Jul 1982 16:48:40-PDT
From: BENSON@UTAH-20 at HP-Speech
Via: utah-cs
Date: 21 Jul 1982 0054-MDT
From: Eric Benson <BENSON at UTAH-20>
Subject: Re: Question on readch()
To: hearn at RAND-RELAY, BENSON@at@HP-Speech, BENSON@UTAH-20@HP-Speech, psl-bugs at UTAH-20
In-Reply-To: Your message of 20-Jul-82 2349-MDT

I've changed the source for ReadCh so that it does case conversion on *Raise.
This bit of Standard Lisp compatibility seems to have slipped through the
cracks until now.  I guess ReadCh just isn't used that much.
-------

22-Jul-82 14:45:39-PDT,182;000000000001
Mail-From: YDUJ created at 22-Jul-82 14:45:21
Date: 22 Jul 1982 1445-PDT
From: Judy <yduJ at HP-HULK>
Subject: this is a test arent you thrilled
To: psl at HP-HULK


-------
22-Jul-82 14:56:09-PDT,140;000000000001
Date: 22 Jul 1982 1455-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: Testing yet one more time
To: psl at HP-HULK

Yep.
-------
22-Jul-82 15:06:10-PDT,138;000000000001
Date: 22 Jul 1982 1418-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: Just testing
To: psl at HP-HULK

Blah blah blah.
-------
22-Jul-82 15:06:18-PDT,157;000000000001
Mail-From: YDUJ created at 22-Jul-82 14:46:38
Date: 22 Jul 1982 1446-PDT
From: Judy <yduJ at HP-HULK>
Subject: Again!!!
To: psl at HP-HULK


-------
22-Jul-82 16:36:18-PDT,237;000000000001
Date: 22 Jul 1982 1634-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: PSL oddness
To: PSL at HP-HULK
cc: AS at HP-HULK

Why is the function FOO defined in PSL?
It appears (<PSL.20-INTERP>MAIN-START.RED) to be frivolous.
-------
23-Jul-82 17:00:20-PDT,646;000000000001
Mail-From: LANAM created at 23-Jul-82 16:57:27
Date: 23 Jul 1982 1657-PDT
From: LANAM at HP-HULK
Subject: identifier bug.
To: psl at HP-HULK

Characters and identifiers should be separate entities.
The character c and the identifier c are not the same
thing.  Currently in the system, it is possible to
intern a single character-name identifier into a package,
but it is impossible to type its name back in.
(setpackage 'franz)
(localintern 'a)
=> franz\a
(Setq franz\a 3) will set global\a
(set (localintern 'a) 3) will set franz\a.
franz\a is interpreted as global\a.

I should be able to have my franz\a.
	douglas
-------
23-Jul-82 17:20:21-PDT,497;000000000001
Mail-From: LANAM created at 23-Jul-82 17:15:46
Date: 23 Jul 1982 1715-PDT
From: LANAM at HP-HULK
Subject: identifiers starting with numbers
To: psl at HP-HULK

I would like the system to read an atom like 1+ as the atom |1+|, not
the number 1 and the atom +.   How can I teach the system to handle this?
1a would be an atom. 1 a would be the number 1 followed by the atom a.
I need this feature to handle a franz conversion since a basic franz function
is 1+ and 1-.
	douglas
-------
23-Jul-82 17:20:23-PDT,329;000000000001
Mail-From: LANAM created at 23-Jul-82 17:18:54
Date: 23 Jul 1982 1718-PDT
From: LANAM at HP-HULK
Subject: how easy is it to redefine the psl reader?
To: psl at HP-HULK

Is there a table describing the automatom?  Or is it hardwired in?
Is the table accessable in lisp and changable?  This would be very
useful.
-------
23-Jul-82 17:40:30-PDT,436;000000000001
Mail-From: LANAM created at 23-Jul-82 17:38:47
Date: 23 Jul 1982 1738-PDT
From: LANAM at HP-HULK
Subject: apply on macros.
To: psl at HP-HULK

Is there an apply that works on any function (whether the function is a
macro or not), and acts the same whether the function was written as 
a macro or an expr or a fexpr?  This would be very useful (especially
with the number of basic functions written as macros in psl).
-------
23-Jul-82 17:45:33-PDT,386;000000000001
Mail-From: LANAM created at 23-Jul-82 17:43:56
Date: 23 Jul 1982 1743-PDT
From: LANAM at HP-HULK
Subject: extra closing parenthesis.
To: psl at HP-HULK

PSL should ignor extra closing parenthesis. They are not atoms.
It currently tries to evaluate them and say !) is an unbound ID.
This is as bad as when Franz Lisp says Read Error 3 for extra
parenthesis.
	douglas
-------
24-Jul-82 10:15:17-PDT,506;000000000001
Mail-From: LANAM created at 24-Jul-82 10:11:47
Date: 24 Jul 1982 1011-PDT
From: LANAM at HP-HULK
Subject: missing trap for stack overflow.
To: psl at HP-HULK

ON the 20, if I get a stack overflow, (a pushdown overflow), the system aborts,
and is useless.  I can not even look at the state of the world, variables,
stack or anything.  I can not reset and try to start over in the same world.
This should be fixed.  Stack overflows should be trapped and returned to
the user inside lisp.
-------
24-Jul-82 10:20:20-PDT,295;000000000001
Mail-From: LANAM created at 24-Jul-82 10:19:09
Date: 24 Jul 1982 1019-PDT
From: LANAM at HP-HULK
Subject: bug in error message from nth (wrong number in message).
To: psl at HP-HULK

5 lisp break>> (nth '(a b c) 0)
***** Index `-3' out of range for NIL in PNTH {99}

	douglas
-------
24-Jul-82 10:25:15-PDT,270;000000000001
Mail-From: LANAM created at 24-Jul-82 10:20:40
Date: 24 Jul 1982 1020-PDT
From: LANAM at HP-HULK
Subject: continuation of nth error message bug.
To: psl at HP-HULK

10 lisp> (nth '(A b c) -1)
***** Index `-4' out of range for NIL in PNTH {99}
	douglas
-------
24-Jul-82 10:25:15-PDT,238;000000000001
Mail-From: LANAM created at 24-Jul-82 10:23:15
Date: 24 Jul 1982 1023-PDT
From: LANAM at HP-HULK
Subject: why question?
To: psl at HP-HULK

Why do all error messages have a cryptic number after them?
Can this be removed?
-------
24-Jul-82 10:45:17-PDT,368;000000000001
Mail-From: LANAM created at 24-Jul-82 10:43:49
Date: 24 Jul 1982 1043-PDT
From: LANAM at HP-HULK
Subject: can prettyprint do better than this with the following please?
To: psl at HP-HULK

(DEF
   FRANZ\FACT
   (EXPR LAMBDA (N) (COND ((EQ N 0) 1) (T (* N (FRANZ\FACT (!- N 1)))) )))


I would like the cond split up into 2 lines (one per clause).
-------
24-Jul-82 10:45:17-PDT,251;000000000001
Mail-From: LANAM created at 24-Jul-82 10:44:32
Date: 24 Jul 1982 1044-PDT
From: LANAM at HP-HULK
Subject: scanner read bug with numbers.
To: psl at HP-HULK

45 lisp> 1.000000000000000000000000000000000000000000000000000
0.0
	douglas
-------
24-Jul-82 10:50:11-PDT,253;000000000001
Mail-From: LANAM created at 24-Jul-82 10:45:21
Date: 24 Jul 1982 1045-PDT
From: LANAM at HP-HULK
Subject: strange read bug with numbers.
To: psl at HP-HULK

46 lisp> 1.222222222222222222222222222222222222222222222222222222
1.7682604E33
-------
24-Jul-82 10:50:11-PDT,373;000000000001
Mail-From: LANAM created at 24-Jul-82 10:46:27
Date: 24 Jul 1982 1046-PDT
From: LANAM at HP-HULK
Subject: overflows are not checked for.
To: psl at HP-HULK

100000000000000000000000000000000000000000000000
0
48 lisp> 2222222222222222222222222222222
2386092942
49 lisp> 1000000000000000000000
25209864192
50 lisp> 1000000000000
3567587328

	douglas
-------
24-Jul-82 11:35:07-PDT,561;000000000001
Mail-From: LANAM created at 24-Jul-82 11:34:37
Date: 24 Jul 1982 1134-PDT
From: LANAM at HP-HULK
Subject: problem with nth and unrequested recursive calls.
To: psl at HP-HULK

2 lisp> (dm aa (n) `(nth x ,n))
1 lisp> (setq a '(lambda (x) (let ((a (length x))) (aa 1))))
6 lisp break>> (macroexpand a)


The system will never come back.  It will spend a great deal of cpu time
on this problem.
Also, if you eval a, you will get a pushdown overflow.
I need a fix to this bug as soon as possible (it is very important).
	thanks,
		douglas
-------
24-Jul-82 11:40:02-PDT,283;000000000001
Mail-From: LANAM created at 24-Jul-82 11:36:35
Date: 24 Jul 1982 1136-PDT
From: LANAM at HP-HULK
Subject: bug in macros and nth.
To: psl at HP-HULK

1 lisp> (dm aa (n) `(nth x ,n))
AA
2 lisp> (setq x '(a b c))
(A B C)
3 lisp> (aa 2)
?Pushdown overflow at 162425
-------
24-Jul-82 11:45:01-PDT,409;000000000001
Mail-From: LANAM created at 24-Jul-82 11:43:06
Date: 24 Jul 1982 1143-PDT
From: LANAM at HP-HULK
Subject: last bug with nth and macros.
To: psl at HP-HULK
cc: rosenberg at HP-HULK

I found that I needed to take the cadr of the argument to the macro.
It would be nice if psl didn't bomb out completely when stack overflow
occurs.  Well, it wasn't a bug, it was my mistake.  Sorry,
	douglas
-------
24-Jul-82 11:50:00-PDT,358;000000000001
Mail-From: LANAM created at 24-Jul-82 11:48:22
Date: 24 Jul 1982 1148-PDT
From: LANAM at HP-HULK
Subject: franz/maclisp let, defun, and defmacro package.
To: psl at HP-HULK

A complete version of franz/maclisp let, defun and defmacro exists
in the file <lanam.dhl>init.lisp.
Problem : the file runs in psl but is in franz syntax.
	douglas
-------
26-Jul-82 11:40:03-PDT,383;000000000001
Mail-From: LANAM created at 26-Jul-82 11:35:14
Date: 26 Jul 1982 1135-PDT
From: LANAM at HP-HULK
Subject: char-int and char-code do not work.
To: psl at HP-HULK

(char-int 'a) => a
(char-code 'a) => a
(char-int "a") => "a"

They should all return a number.

Also, How can I convert an atom name say foo, into a string (inside a program)?

	thanks,
		douglas
-------
26-Jul-82 12:00:00-PDT,232;000000000001
Mail-From: AS created at 26-Jul-82 11:55:54
Date: 26 Jul 1982 1155-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: EMODE bug
To: PSL at HP-HULK
cc: AS at HP-HULK

EMODE believes that ^Z marks the end of a text file.
-------
26-Jul-82 13:05:02-PDT,399;000000000001
Mail-From: LANAM created at 26-Jul-82 13:03:12
Date: 26 Jul 1982 1303-PDT
From: LANAM at HP-HULK
Subject: apply on an nexpr doesn't work.
To: psl at HP-HULK

(dn foo (x) x)
(setq y '(a b c))
(apply 'foo y)
will yield the message
***** Argument number mismatch {1024}
***** Continueation requires a value for: 
((lambda (x) x) 'a 'b 'c)

How can I apply an nexpr?

	douglas
-------
26-Jul-82 13:09:58-PDT,386;000000000001
Mail-From: AS created at 26-Jul-82 13:07:29
Date: 26 Jul 1982 1307-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: Re: apply on an nexpr doesn't work.
To: LANAM at HP-HULK
cc: psl at HP-HULK, AS at HP-HULK
In-Reply-To: Your message of 26-Jul-82 1303-PDT

The manual admits that Apply doesn't work right in many cases.
I think you have to use Eval to do what you want.
-------
26-Jul-82 13:15:00-PDT,427;000000000001
Mail-From: AS created at 26-Jul-82 13:13:31
Date: 26 Jul 1982 1313-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: Re: apply on an nexpr doesn't work.
To: LANAM at HP-HULK, PSL at HP-HULK
In-Reply-To: Your message of 26-Jul-82 1309-PDT

Upon further reflection, it occurs to me that giving Apply
a list containing a single list of arguments values will
work for Nexprs.  For example: (Apply 'Foo '((a b c))).
-------
26-Jul-82 14:15:00-PDT,509;000000000001
Mail-From: AS created at 26-Jul-82 14:14:42
Date: 26 Jul 1982 1414-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: Re: missing trap for stack overflow.
To: LANAM at HP-HULK
cc: PSL at HP-HULK
In-Reply-To: Your message of 24-Jul-82 1011-PDT

Handling a stack overflow gracefully is difficult.  After all, if the
stack has no room, what can you expect to do?  PSL does allow you
to restart the fork (using START), which will throw away the stack
but leave your global environment unchanged.
-------
26-Jul-82 14:30:03-PDT,702;000000000001
Mail-From: AS created at 26-Jul-82 14:26:06
Date: 26 Jul 1982 1426-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: Re: char-int and char-code do not work.
To: LANAM at HP-HULK
cc: PSL at HP-HULK
In-Reply-To: Your message of 26-Jul-82 1135-PDT

I believe that Char-Int and Char-Code expect a character (which is
an integer is PSL), not an atom or a string.  Char-Int is provided
for LISPs where characters are a separate datatype, and is redundant
in PSL.  The Char MACRO may be what you want: (Char A) => 65.
(If you have authoritative information on what the Common Lisp
string functions are supposed to do, please let me know.  We
have no information at all and merely guess.)
-------
26-Jul-82 15:20:02-PDT,264;000000000001
Mail-From: LANAM created at 26-Jul-82 15:17:41
Date: 26 Jul 1982 1517-PDT
From: LANAM at HP-HULK
Subject: interrupt and break from terminal
To: psl at HP-HULK

I need an ability to interrupt the system and cause a break point from
the terminal.  
-------
26-Jul-82 15:25:04-PDT,380;000000000001
Mail-From: LANAM created at 26-Jul-82 15:20:37
Date: 26 Jul 1982 1520-PDT
From: LANAM at HP-HULK
Subject: bad feature : read macros on property list.
To: psl at HP-HULK

By having the function associated with read macros stored on the property list,
there is an inability to have different read macros in different read tables,
for the same character.
	douglas
-------
26-Jul-82 15:30:01-PDT,456;000000000001
Date: Mon Jul 26 15:10:41 1982
In-real-life: Tw Cook
To: hp-pcd!psl@HP-Speech
Subject: psl bug?
Cc: hp-pcd!barbara@HP-Speech


In the Vax version:

If you run (help emode) [or any long help] then do a control-C to try and
interrupt it, you get thrown into a break loop which I have not been able
to exit from.  Is this an error in the help code, rather than
in psl itself?


						Tw Cook
						Telnet 757-4097
						"hp-pcd!tw"@Speech

27-Jul-82 14:33:34-PDT,429;000000000001
Mail-From: LANAM created at 27-Jul-82 14:33:28
Date: 27 Jul 1982 1433-PDT
From: LANAM at HP-HULK
Subject: untr
To: psl at HP-HULK

untr does untrace a function, but unlike the manual says, it does
not restore the original definition.  It leaves a strange lisp function
around which is similar to the function when it is traced.  It would
be nice if the functions definition was restored to its original place.
-------
29-Jul-82 10:54:50-PDT,2245;000000000001
Mail-From: AS created at 28-Jul-82 17:23:05
Date: 28 Jul 1982 1723-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: PSL bug
To: PSL at HP-HULK
cc: AS at HP-HULK


The ContError macro is not very robust.  For example, consider
the following expansion (admittedly, the argument is improper):

(MacroExpand '(ContError 0 "" file-name file-name))
  ==>
(CONTINUABLEERROR 0 (BLDMSG "" FILE-NAME) (LIST '#<Unknown:261740000002>))

Naturally, this form will cause the garbage collector to barf.

When the compiler is given this sort of stuff, it produces the
following lovely code:

------------------------------------------------------------
Compiling TEST
Source Code:
(LAMBDA (FILE-NAME) (TEST1 (CONTERROR 0 "s" FILE-NAME FILE-NAME)))
------------------------------------------------------------
Expanded Source Code:
(LAMBDA (FILE-NAME)
   (TEST1
      (CONTINUABLEERROR
         0
         (BLDMSG "s" FILE-NAME)
         (LIST '#<Unknown:254000006725>))))
------------------------------------------------------------
Object Code:
(*ENTRY TEST EXPR 1)
(*ALLOC 1)
(*MOVE (REG 1) (REG 2))
(*MOVE '"s" (REG 1))
(*LINK BLDMSG EXPR 2)
(*MOVE (REG 1) (FRAME 1))
(*MOVE '#<Unknown:254000006725> (REG 1))
(*LINK NCONS EXPR 1)
(*MOVE (REG 1) (REG 3))
(*MOVE (FRAME 1) (REG 2))
(*MOVE '0 (REG 1))
(*LINK CONTINUABLEERROR EXPR 3)
(*LINKE 1 TEST1 EXPR 1)

L0003L0004		(FULLWORD 0)
		(STRING "s")
		(*ENTRY TEST EXPR 1)
		(ADJSP (REG ST) 1)
		(MOVE (REG 2) (REG 1))
		(MOVE (REG 1) "L0001")
		(PUSHJ (REG ST) (ENTRY BLDMSG))
		(MOVEM (REG 1) (INDEXED (REG ST) 0))
		(MOVE (REG 1) "L0002")
		(PUSHJ (REG ST) (ENTRY NCONS))
		(MOVE (REG 3) (REG 1))
		(MOVE (REG 2) (INDEXED (REG ST) 0))
		(SETZM (REG 1))
		(PUSHJ (REG ST) (ENTRY CONTINUABLEERROR))
		(ADJSP (REG ST) -1)
		(JRST (ENTRY TEST1))
L0002		(FULLWORD (MKITEM 10 "L0003"))
L0001		(FULLWORD (MKITEM 4 "L0004"))
*** Function `TEST' has been redefined
*** (TEST): base 374744, length 17 words
------------------------------------------------------------

There is no warning message of any kind.  However, when
the compiled code is loaded and executed, it will also
create bad data that the garbage collector will barf on.

-------
29-Jul-82 10:54:53-PDT,285;000000000001
Mail-From: LANAM created at 27-Jul-82 16:38:49
Date: 27 Jul 1982 1638-PDT
From: LANAM at HP-HULK
Subject: break package problem
To: psl at HP-HULK

In a break package, if I have a variable i (or q, c, r, m, or e), and
want to print its value, i need to do 
(eval 'i)
-------
30-Jul-82 15:36:42-PDT,389;000000000001
Date:    30 Jul 1982 11:28-PDT (Friday)
From:    Ching-Chao.Liu <hp-pcd!ching>
Subject: error in psl manual
To: hp-pcd!psl@HP-Speech
Message-Id: <82/07/30 1128.783@hp-pcd>

On page 10.4 of psl manual, the description of FUnBoundP is incorrect.
It should be 

   Tests whether there is a definition in the function cell of U;
   returns NIL if there is a definition, T if not.

30-Jul-82 15:36:43-PDT,616;000000000001
Date:    30 Jul 1982 11:27-PDT (Friday)
From:    John.Tupper <hp-pcd!maddog>
Subject: bug report
To: hp-pcd!psl@HP-Speech
Message-Id: <82/07/30 1127.900@hp-pcd>

I have found a bug in the vax version of the psl zpedit.
When I add something to the end of an s-expression [with the n command]
the editor changes the old last expression to nil.

start:
(LIST (CAR X) (CDR Y))
execute:
(N (BOGUS BO GUS))
finish:
(LIST (CAR X) NIL (BOGUS BO GUS))

The same thing happens with the bo command.

start:
(LIST (CAR X) (CDR Y))
execute:
bo 3
finish:
(LIST (CAR X) NIL)

				icky-poo,
				maddog

30-Jul-82 15:36:44-PDT,488;000000000001
Date: Fri Jul 30 11:40:05 1982
In-real-life: Tw Cook
To: hp-pcd!psl@HP-Speech
Subject: testing 'bug' function - ignore


I have implemented the 'bug' function in our PSL - it just fires up
'mail' to PSL, which forwards both to PSL at labs and to the notesgroup
LISPERS here.  Those of you at hplabs who are listening - does stuff
mailed to PSL@HULK get eventually sent on to Griss & crew?  Should I
mail to them as well?  If so, how do I get there (via mail)?

Thanks,
tw

30-Jul-82 15:41:43-PDT,495;000000000001
Mail-From: AS created at 30-Jul-82 15:41:22
Date: 30 Jul 1982 1541-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: EMODE bug
To: PSL at HP-HULK
cc: AS at HP-HULK

EMODE (on the HP2648 at least) fails to check for attempts to move the
cursor off the right edge of the screen.  For example, if you type in
a line that is longer than the screen width, the cursor will move to
the next line and occasionally random stuff will come out (parts of
escape sequences, it looks like).
-------
30-Jul-82 16:41:45-PDT,425;000000000001
Date: Fri Jul 30 14:04:39 1982
In-real-life: John Tupper
To: hp-pcd!psl@HP-Speech
Subject: bug


Vax psl bug:
	When the debug package is loaded, the normal trace functions
don't work correctly.
	After loading the debug stuff, (UNTR) does not restore the original
definition of the function. (TR) works fine, and (UNTR) will cause tracing
to halt; it just doesn't restore the original definition.

			maddog


 2-Aug-82 15:48:02-PDT,343;000000000001
Mail-From: BATALI created at  2-Aug-82 15:43:38
Date:  2 Aug 1982 1543-PDT
From: BATALI at HP-HULK
Subject: TYPE function
To: psl at HP-HULK

It would be just dreamy if there were a function TYPE, which
returns an ID signifying the type of its argument:
(type 'foo)  => ID
(type 5)  => FIXNUM
(type '(a b)) => PAIR
Etc.

-------
 3-Aug-82 15:14:40-PDT,684;000000000001
Mail-From: LANAM created at  3-Aug-82 15:13:55
Date:  3 Aug 1982 1513-PDT
From: LANAM at HP-HULK
Subject: package/compiler/fasl bug
To: griss at HP-HULK
cc: psl at HP-HULK, utah-cs!griss at HP-SPEECH

With the following file (called a.lisp), do the following and you will get
illegal instruction.
(load package)
(faslout "A")
(dskin "a.lisp")
(faslend)
(faslin "a.b")

file a.lisp:
-----------

(\load \package)
(\setpackage '\global)

(eval-when (compile)
  (createpackage  'franz 'global)
  (setpackage 	'franz))

(createpackage  'franz 'global)
(setpackage 	'franz)

(eval-when (compile)
	(localintern 'franz\xx))

(de franz\xx (yy) yy)
	
-------
 3-Aug-82 15:24:37-PDT,561;000000000001
Mail-From: LANAM created at  3-Aug-82 15:22:56
Date:  3 Aug 1982 1522-PDT
From: LANAM at HP-HULK
Subject: bug with faslout/faslend.
To: psl at HP-HULK

do
(faslout "foo")
then do something to cause an error, (any error or break will do).
such as: 
(eval-when (compile) (+ 'a 'b))
{actually macros can cause errors, as can any eval-when construct}.
If you do (faslend) in the break point, then (reset),
the system will only echo your input after that.
If you do (faslend) again,
an error (illegal instruction) occurs, and psl will halt.
-------
 4-Aug-82 11:44:44-PDT,237;000000000001
Mail-From: LANAM created at  4-Aug-82 11:43:54
Date:  4 Aug 1982 1143-PDT
From: LANAM at HP-HULK
Subject: where is psl
To: psl at HP-HULK

@psl
?File has bad index block
@psl
[Starting]
?No START address



	huh?
-------
 5-Aug-82 09:27:36-PDT,374;000000000001
Mail-From: LANAM created at  5-Aug-82 08:31:23
Date:  5 Aug 1982 0831-PDT
From: LANAM at HP-HULK
Subject: tr bug
To: psl at HP-HULK

tr shouldn't ask me how many arguments a compiled function takes.
Why can't it just create a nexpr instead and not worry about the number
of arguments?
(sometimes I don't feel like looking up the answer to this question).
-------
 5-Aug-82 14:35:09-PDT,309;000000000001
Date:  5 Aug 1982 1259-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: Re: start up file.
To: LANAM at HP-HULK
cc: psl at HP-HULK
In-Reply-To: Your message of 5-Aug-82 1023-PDT

No, there is no "init file".  We have had several requests for that
feature, so perhaps it can be added soon.
-------
 5-Aug-82 14:35:11-PDT,408;000000000001
Date:  5 Aug 1982 1303-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: Re: printing
To: LANAM at HP-HULK
cc: psl at HP-HULK
In-Reply-To: Your message of 5-Aug-82 1136-PDT

I don't know if you can turn off the "*** blah already loaded"
message.  There is no mechanism established for forcing the system
to reload a library module unless you specify "pl:" as the location
of the module.
-------
 5-Aug-82 14:35:12-PDT,367;000000000001
Mail-From: LANAM created at  5-Aug-82 14:02:21
Date:  5 Aug 1982 1402-PDT
From: LANAM at HP-HULK
Subject: last bug.
To: psl at HP-HULK

It doesn't work as I described.  I found it had something to do with
calling (faslout) while inside (faslout).

Thus bug should be (faslout) during (faslout) should not be executed.
(it currently is).
	douglas
-------
 5-Aug-82 14:35:15-PDT,565;000000000001
Mail-From: PERDUE created at  5-Aug-82 13:05:17
Date:  5 Aug 1982 1257-PDT
From: Cris Perdue <Perdue>
To: LANAM
In-Reply-To: Your message of 5-Aug-82 1004-PDT
Remailed-date:  5 Aug 1982 1305-PDT
Remailed-from: Cris Perdue <Perdue at HP-HULK>
Remailed-to: psl at HP-HULK

To not get bothered about redefining system functions, set the
global flag *usermode to NIL.  The flag *redefmsg determines whether
you are told when functions are redefined.  There is currently
no way to get a quiet dskin, except modifying the code or writing
your own.
-------
 5-Aug-82 15:10:10-PDT,736;000000000001
Mail-From: LANAM created at  5-Aug-82 15:09:07
Date:  5 Aug 1982 1509-PDT
From: LANAM at HP-HULK
Subject: package system and faslout/faslin
To: psl at HP-HULK


faslout/faslin known nothing about the package system, and will produce
a file that can not be read in successfully, if that file references
variables in packages.
(usually you will get an operating system error (illegal instruction)).

The manual's suggestion to rename functions in global is not a real
solution, and suggests further that the package system is not really
usuable in a real sense yet.

This section of the system is not finished and I do not feel is in a 
useful enough state to be advertised or included in the manual.
	douglas
-------
 5-Aug-82 15:25:10-PDT,257;000000000001
Mail-From: LANAM created at  5-Aug-82 15:23:44
Date:  5 Aug 1982 1523-PDT
From: LANAM at HP-HULK
Subject: what is bps?
To: psl at HP-HULK

I got error ?
fatal error : bps exhausted during faslout.  
and the system aborted.
what happened?
-------
 5-Aug-82 15:30:07-PDT,285;000000000001
Mail-From: PERDUE created at  5-Aug-82 15:28:10
Date:  5 Aug 1982 1528-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: Re: what is bps?
To: LANAM at HP-HULK
cc: psl at HP-HULK
In-Reply-To: Your message of 5-Aug-82 1523-PDT

You ran out of space for compiled code.
-------
 5-Aug-82 15:40:10-PDT,211;000000000001
Mail-From: LANAM created at  5-Aug-82 15:37:32
Date:  5 Aug 1982 1537-PDT
From: LANAM at HP-HULK
Subject: can the sytem just break instead of halt when bps size is exceeded?
To: psl at HP-HULK


-------
 5-Aug-82 16:00:07-PDT,488;000000000001
Mail-From: PERDUE created at  5-Aug-82 15:58:37
Date:  5 Aug 1982 1558-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: Re: what is bps?
To: LANAM at HP-HULK
cc: psl at HP-HULK
In-Reply-To: Your message of 5-Aug-82 1532-PDT

PSL provides no information about the sizes of spaces, so far as
I know.  I'm very interested in this myself, and I don't even
know the initial sizes of most of the spaces.  Binary program
space is not reclaimed.  Maybe someday it will be.
-------
 5-Aug-82 16:10:05-PDT,544;000000000001
Mail-From: LANAM created at  5-Aug-82 16:05:15
Date:  5 Aug 1982 1605-PDT
From: LANAM at HP-HULK
Subject: (eval and macros)
To: psl at HP-HULK

is there any reason the following should produce different results:

(eval expression)
and
(eval (macroexpand expression))

I have an example (a bit hairy and long), where the second is correct
and the first gives a strange error message about trying to set the
number 2.
could someone spend some time to look at this to decide what may be
the problem.
	thanks,
		douglas
-------
 5-Aug-82 16:25:06-PDT,378;000000000001
Mail-From: LANAM created at  5-Aug-82 16:20:10
Date:  5 Aug 1982 1620-PDT
From: LANAM at HP-HULK
Subject: + and - as start of atom names.
To: psl at HP-HULK


It would be nice if the scanner was changed such that if
+ and - are followed directly by an alphabetic character,
(ex +a), then an atom is returned ( +a ), instead of
two atoms (+ and a).
	douglas
-------
 5-Aug-82 17:00:00-PDT,405;000000000001
Mail-From: LANAM created at  5-Aug-82 16:56:11
Date:  5 Aug 1982 1656-PDT
From: LANAM at HP-HULK
Subject: I got the following strange message.
To: psl at HP-HULK

During dskin:
***** Fatal error during garbage collection
Illegal item in heap at 631115

I do not know if I can reproduce it, but why should such a thing
happen?
If I can reproduce it, I will tell you how to.
	douglas
-------
 6-Aug-82 10:33:07-PDT,412;000000000001
Mail-From: LANAM created at  6-Aug-82 10:31:49
Date:  6 Aug 1982 1031-PDT
From: LANAM at HP-HULK
Subject: structure of variable historylist*
To: psl at HP-HULK

why is the car of history an endless structure:
(historylist* (historylist* (historylist* (historylist* ....

the (cadr historylist*) is also this strange structure.
isn't there a simplier structure that could be used?

	douglas
-------
 6-Aug-82 10:33:08-PDT,196;000000000001
Mail-From: LANAM created at  6-Aug-82 10:32:25
Date:  6 Aug 1982 1032-PDT
From: LANAM at HP-HULK
Subject: correction to last letter: (cadr should be (caddr)).
To: psl at HP-HULK


-------
26-Jul-82 17:40:09-PDT,647;000010000001
Date: 26 Jul 1982 17:35:51-PDT
From: daemon at HP-Speech
Via: utah-cs
Date: Mon Jul 26 16:57:18 1982
Mail-from: ARPANET site RAND-RELAY rcvd 26-Jul-82 1648-MDT
Date: Monday, 26 Jul 1982 15:33-PDT
To: psl-bugs at UTAH-20
Subject: My guys say it's a bug
From: hearn at RAND-RELAY

When you do (quit) to psl, you get the message "stopped", and you have
a job sitting there. My UNIX guys say this is a bug, and should be fixed.
I know that you can restart the stopped job, but apart from that facility,
the stopped job does get in the way every so often. Furthermore, when I
try to do "time preduce", I can't get the timing info out.

29-Jul-82 14:12:46-PDT,502;000010000001
Date: 29 Jul 1982 1412-PDT
From: BATALI
Subject: psl-bug
To: perdue

The function:

(defun or-list? (list predicate)
  (cond ((null list) nil)
	((funcall predicate (car list)) t)
	(t (or-list? (cdr list) predicate))))

Is T if any of the predicate applied to any of its elements is T.
It works fine interpreted, but the compiler goes into an infinite loop
printing:
Functional form converted to (APPLY PREDICATE (LIST (CAR LIST)))

Not a pretty sight.

  Ghastly,
   John
-------
27-Jul-82 22:37:08-PDT,532;000010000001
Date: 27 Jul 1982 16:19:23-PDT
From: Griss@UTAH-20 at HP-Speech
Via: utah-cs
Date: 27 Jul 1982 0558-MDT
From: Martin.Griss <Griss at UTAH-20>
Subject: VAX
To: Griss@benson@HP-Speech
cc: Griss@griss@HP-Speech
Remailed-date: 27 Jul 1982 1420-MDT
Remailed-from: Eric Benson <BENSON at UTAH-20>
Remailed-to: psl-bugs at UTAH-20

I think QUIT should have an associated function, FullStop or some such.
 (Or have 2 low level functions, QuitAndKeep, QuitAndKill), and let
system admin choose which QUIT is which.
-------

27-Jul-82 10:58:04-PDT,353;000010000011
Date: 27 Jul 1982 1058-PDT
From: BATALI
Subject: PSL Gripe
To: perdue

There ought to be an expr to read a file.
The only way to do this now is something like:
(eval `(dskin ,filename))
I see no reason why dskin should not be an nexpr: virtually
all present uses of it use string arguments so it wouldn't
matter.

   L&C,
   John
-------
27-Jul-82 16:23:52-PDT,595;000010000001
Date: 27 Jul 1982 16:18:52-PDT
From: Griss@UTAH-20 at HP-Speech
Via: utah-cs
Date: 10 Jul 1982 1201-MDT
From: Martin.Griss <Griss at UTAH-20>
Subject: ExitTopLoop
To: Griss@benson@HP-Speech
cc: Griss@griss@HP-Speech
Remailed-date: 27 Jul 1982 1340-MDT
Remailed-from: Eric Benson <BENSON at UTAH-20>
Remailed-to: psl-bugs at UTAH-20

Id like to add  and ExitTopLoop comand,
eg !$exitTopLoop!$ as distinguided atom? Or some such,
perhaps have on property list of atom and action function,
ala Break, perhaps using toploop name as key?

GET(InputValue,ModuleName,...).
-------

 4-Aug-82 01:39:13-PDT,469;000010000001
Date: 4 Aug 1982 01:36:20-PDT
From: daemon at HP-Speech
Via: utah-cs
Date: Tue Aug  3 22:02:13 1982
Mail-from: ARPANET site RAND-AI rcvd 3-Aug-82 2200-MDT
Date:  3 Aug 1982 2101-PDT
From: Tony Hearn <HEARN at RAND-AI>
Subject: PSL cannot read bignums correctly
To: psl-bugs at UTAH-20, griss at UTAH-20

The source for the bigfloat package contains bignums. It does not seem
to read or maybe compile correctly.

Can PSL currently read bignums?
-------

 4-Aug-82 10:29:38-PDT,510;000010000001
Date: 4 Aug 1982 01:36:40-PDT
From: daemon at HP-Speech
Via: utah-cs
Date:  3 Aug 1982 2245-MDT
From: Eric Benson <BENSON at UTAH-20>
Subject: Re: PSL cannot read bignums correctly
To: HEARN at RAND-AI, at@HP-Speech, UTAH-20@HP-Speech, psl-bugs at UTAH-20, griss at UTAH-20
In-Reply-To: Your message of 3-Aug-82 2201-MDT

PSL can read bignums with BIG loaded.  Without it, bignums will not be
read correctly.  It is probably true that bignum constants cannot be compiled
in either case.
-------

 6-Aug-82 14:13:10-PDT,273;000000000001
Mail-From: LANAM created at  6-Aug-82 14:09:27
Date:  6 Aug 1982 1409-PDT
From: LANAM at HP-HULK
Subject: bug with *time
To: psl at HP-HULK

If the first thing you say to psl is
(setq *time t)

you get back
Time: 211392 ms  (or some such large number).
-------
26-Jul-82 17:40:10-PDT,577;000010000001
Date: 26 Jul 1982 17:36:09-PDT
From: daemon at HP-Speech
Via: utah-cs
Date: 26 Jul 1982 1659-MDT
From: Eric Benson <BENSON at UTAH-20>
Subject: Re: My guys say it's a bug
To: hearn at RAND-RELAY, at@HP-Speech, UTAH-20@HP-Speech, psl-bugs at UTAH-20
In-Reply-To: Your message of 26-Jul-82 1654-MDT

Perhaps it's a misfeature.  The alternative is to make (QUIT) irrevocable.
Reading EOF will cause the PSL process to terminate, which allows the use
of shell scripts and/or I/O redirection.  If you want to do that from the
terminal, type one or more ^Ds.
-------

25-Jun-82 19:48:05-PDT,200;000010000001
Date: 25 Jun 1982 1948-PDT
From: LANAM
Subject: psl bug (in vax version).
To: perdue

Type cntrl-d (eof) as the first character, and the system will go into
an endless loop.
	douglas
-------
25-Jun-82 21:06:46-PDT,622;000010000001
Date: 25 Jun 1982 2106-PDT
From: LANAM
Subject: package proprosal
To: perdue

I would like the system to remember the package definition name of a
variable and functions in .b files so that I dont' get the system
binding files which were compiled in package a but loaded in package
b refering to package b functions when a package is not specified.
Just binding everything to global would not work since then it would
be a nuisance to have to always write out a local package name in a
file on every function and variable.
(This is a proposal to send along with any bug reports to martin).
	douglas
-------
13-Jul-82 19:38:40-PDT,975;000010000001
Date: 13 Jul 1982 12:23:31-PDT
From: Galway@UTAH-20 at HP-Speech
Via: utah-cs
Date: 12 Jul 1982 2303-MDT
From: William Galway <Galway at UTAH-20>
Subject: break loop "feature"
To: psl-bugs at UTAH-20

The current break handler inherits the reader, evaluator, and printer from
whatever the current TopLoop uses (if TopLoop is being used).  I suspect
that this is a mistake, since it makes it awkward to deal with special
"exotic" top loops.  It's already somewhat confusing that depending upon
the circumstances you will either get a LISP reader, or and Rlisp reader.

Think about how wonderful it would be if your reader only returned vectors
to be "evaluated" by adding them up (say, for a desk calculator or
something).

I suggest that instead we only have one, or maybe two, break loops.
Default would use LISP's READ/EVAL/PRINT.  And perhaps it should notice
when Rlisp is in effect, and use its READ/EVAL/PRINT in that case.

Comments?
-------

26-Jul-82 17:40:09-PDT,884;000010000001
Date: 26 Jul 1982 17:35:58-PDT
From: daemon at HP-Speech
Via: utah-cs
Date: Mon Jul 26 17:02:07 1982
Mail-from: ARPANET site RAND-RELAY rcvd 26-Jul-82 1628-MDT
Date: Friday, 23 Jul 1982 15:05-PDT
to: Martin.Griss@HP-Speech, <Griss at UTAH-20>
from: lseward at RAND-UNIX
Subject: PSL distribution files
Sender: lseward at RAND-RELAY
Remailed-date: 26 Jul 1982 1655-MDT
Remailed-from: Martin.Griss <Griss at UTAH-20>
Remailed-to: bensON
Remailed-date: 26 Jul 1982 1656-MDT
Remailed-from: Eric Benson <BENSON at UTAH-20>
Remailed-to: psl-bugs at UTAH-20

I am listing off sources and have been straightening out the vax-comp and
vax-interp files.  Suggestion: have subdirectories src, build, and bin
and put the appropriate things in them.  Otherwise the statement (in the
documentation) "This directories contains sources for ..." is very
misleading.

larry


29-Jul-82 22:10:14-PDT,529;000010000001
Date: 29 Jul 1982 17:39:24-PDT
From: daemon at HP-Speech
Via: utah-cs
Date: Thu Jul 29 16:22:17 1982
Mail-from: ARPANET site RAND-AI rcvd 29-Jul-82 1617-MDT
Date: 29 Jul 1982 1519-PDT
From: Tony Hearn <HEARN at RAND-AI>
Subject: PSL Problem
To: psl-bugs at UTAH-20

If you do in REDUCE on the VAX:

x := x+1;

x:

You SHOULD, I believe, get a "push down stack overflow" error. Instead,
you go off into mystery (system seems to hang) and finally get an "illegal
instruction" message and a core dump.
-------

29-Jul-82 22:10:15-PDT,333;000010000001
Date: 29 Jul 1982 17:39:30-PDT
From: daemon at HP-Speech
Via: utah-cs
Date: Thu Jul 29 16:22:32 1982
Mail-from: ARPANET site RAND-AI rcvd 29-Jul-82 1618-MDT
Date: 29 Jul 1982 1520-PDT
From: Tony Hearn <HEARN at RAND-AI>
Subject: ps
To: psl-bugs at UTAH-20

That second REDUCE command should have been x; not x:
-------

 9-Aug-82 09:11:46-PDT,321;000000000001
Mail-From: LANAM created at  9-Aug-82 09:08:11
Date:  9 Aug 1982 0908-PDT
From: LANAM at HP-HULK
Subject: fluid
To: psl at HP-HULK


(fluid '(abc)) will set the value of abc to nil.

Why?  The documentation does not say that such a thing is done.
It should leave abc as an unbound variable.
	douglas
-------
 9-Aug-82 11:06:49-PDT,362;000000000001
Mail-From: LANAM created at  9-Aug-82 11:03:03
Date:  9 Aug 1982 1103-PDT
From: LANAM at HP-HULK
Subject: question
To: psl at HP-HULK

I got the following strange message from the compiler:
(memory ($fluid b) (wconst 19)) not compiled.
Did I do something wrong? Or is this a bug in the system.
the input was (de xx (y) (igetv b 18))
	douglas
-------
 9-Aug-82 11:06:52-PDT,310;000000000001
Mail-From: LANAM created at  9-Aug-82 11:04:51
Date:  9 Aug 1982 1104-PDT
From: LANAM at HP-HULK
Subject: additional compiler comment:
To: psl at HP-HULK

I also got 
(memory ($local b) (wconst 19)) not compiled, when I made b an argument to
the function.
Is this what is suppose to happen?
-------
 9-Aug-82 11:11:50-PDT,606;000000000001
Mail-From: LANAM created at  9-Aug-82 11:09:14
Date:  9 Aug 1982 1109-PDT
From: LANAM at HP-HULK
Subject: correction to last letter.
To: psl at HP-HULK

The form of function definition that causes the message that something is
not compiled 
(memory ($local y) (wconst 19)) not compiled 
is:
(defun xx (y) (do ((i 100 (sub1 i))) (eq i 0)) (igetv y 18)))

If i do 
(defun xx (y) (igetv y 18)) . 
there are no complaints.

Is this a bug, or a fancy optimization.  If it is an optimization, how do I
turn it off?  I want to time 100 accesses to the array in compiled code.
	douglas
-------
10-Aug-82 10:31:04-PDT,191;000000000001
Mail-From: LANAM created at 10-Aug-82 10:29:26
Date: 10 Aug 1982 1029-PDT
From: LANAM at HP-HULK
Subject: bug in time with garbage collection.
To: psl at HP-HULK

bug in time
-------
10-Aug-82 10:36:07-PDT,404;000000000000
Mail-From: LANAM created at 10-Aug-82 10:31:26
Date: 10 Aug 1982 1031-PDT
From: LANAM at HP-HULK
Subject: bug in time with garbage collection
To: psl at HP-HULK


When *time = t,
the system should report cpu and garbage collection time seperately,
not as one total number.
Cpu time: 496 ms.  GC time: 2500 ms.
not
Time: 2996 ms.

The current timing given is misleading.
	douglas
-------
10-Aug-82 11:36:08-PDT,386;000000000000
Mail-From: LANAM created at 10-Aug-82 11:33:45
Date: 10 Aug 1982 1133-PDT
From: LANAM at HP-HULK
Subject: thigns that should be open compiled.
To: psl at HP-HULK

bit operations are not open compiled.  There should be an
open compiled form of logical bit operations:
and, or, not, shift, xor.
Also there should be the operations
nand, nor (open compiled) available.
-------
10-Aug-82 11:41:06-PDT,239;000000000000
Mail-From: LANAM created at 10-Aug-82 11:37:05
Date: 10 Aug 1982 1137-PDT
From: LANAM at HP-HULK
Subject: (maxint) => ???
To: psl at HP-HULK

Is there a function that return maxint and minint?
also maxfloat, and minfloat?
-------
10-Aug-82 11:41:09-PDT,494;000000000000
Mail-From: LANAM created at 10-Aug-82 11:40:02
Date: 10 Aug 1982 1140-PDT
From: LANAM at HP-HULK
Subject: documentation of compiled in line functions.
To: psl at HP-HULK

They should be mentioned where their non compiled in line
counterpart is.
Ex.: under times2 should be mentioned itimes2 (for integer multiplacation
in line).

I only found the function iland by experimentation ( i never found it
in the manual, but I found it open compiles code for 'land').
	douglas
-------
10-Aug-82 12:01:06-PDT,324;000000000000
Mail-From: LANAM created at 10-Aug-82 12:01:02
Date: 10 Aug 1982 1201-PDT
From: LANAM at HP-HULK
Subject: addresses
To: psl at HP-HULK

What function returns the address of a lisp object?
What function takes an address (from above function) or some other int,
and gives me the lisp object at that address?
-------
10-Aug-82 13:31:03-PDT,497;000000000000
Mail-From: LANAM created at 10-Aug-82 13:27:26
Date: 10 Aug 1982 1327-PDT
From: LANAM at HP-HULK
Subject: bug in print and lshift.
To: psl at HP-HULK

type the following to the top level of the psl interpreter on the 20.
(lshift 2 34)

You get an endless unstoppable output of hyphens.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------...
	douglas
-------
10-Aug-82 13:31:05-PDT,270;000000000000
Mail-From: LANAM created at 10-Aug-82 13:28:27
Date: 10 Aug 1982 1328-PDT
From: LANAM at HP-HULK
Subject: word size
To: psl at HP-HULK

Is there a function which returns the word size (number of bits) that
logical operations operate on, built into psl?
-------
10-Aug-82 14:12:54-PDT,566;000000000000
Mail-From: LANAM created at 10-Aug-82 14:11:14
Date: 10 Aug 1982 1411-PDT
From: LANAM at HP-HULK
Subject: very interesting psl function
To: psl at HP-HULK

Try the following:

(setq *comp t)

(defun get-an-id (n) % n is a number given by the user
		     % ilor is compiled-in-line logical or.	  		
	(ilor n))

(defun list-word (limit)
	(do ((i 0 (+ 1 i)))
	    ((eq i limit))
	    (princ (get-an-id i)) (princ " ")))

The above program when run on some number will give you a partial to
complete dump of all id's known to the system.

-------
10-Aug-82 14:47:56-PDT,217;000000000000
Mail-From: LANAM created at 10-Aug-82 14:46:13
Date: 10 Aug 1982 1446-PDT
From: LANAM at HP-HULK
Subject: still cannot have special variables and macros/nexprs have the same name.
To: psl at HP-HULK


-------
10-Aug-82 16:07:57-PDT,259;000000000000
Mail-From: LANAM created at 10-Aug-82 15:29:03
Date: 10 Aug 1982 1529-PDT
From: LANAM at HP-HULK
Subject: compiler bug
To: psl at HP-HULK

Should I report what causes the following?
compiler bug.  Expression too complicated. Please simplify.
-------
10-Aug-82 16:22:57-PDT,283;000000000000
Mail-From: KENDZIERSKI created at 10-Aug-82 16:22:31
Date: 10 Aug 1982 1622-PDT
From: Kendzierski at HP-HULK (Nancy)
Subject: previous bug report
To: psl at HP-HULK

I should have made it clear that I reset "i" to be 1 before each
evaluation of a repeat or a while.
-------
10-Aug-82 16:23:03-PDT,1144;000000000000
Date: 10 Aug 1982 1620-PDT
From: Kendzierski at HP-HULK (Nancy)
Subject: REPEAT bug
To: psl at HP-HULK

The manual states that the REPEAT construct (section 9.3; page 9.7)
is repeated until the value of the expression is NIL.

In the first place, I think this is an inappropriate "repeat ... until"
definition -- they are generally of the form "repeat until expression
becomes TRUE (or T), not FALSE (or NIL)".

Worse than that, it doesn't even work as described.  Given the following
code:

%----------------------------------------------------
(setq i 1)

(repeat (equal i 5) (setq i (add1 i)) (print i))
(repeat (neq i 5) (setq i (add1 i)) (print i))
(repeat nil (setq i (add1 i)) (print i))
(repeat t (setq i (add1 i)) (print i))

(while (neq i 5) (setq i (add1 i)) (print i))
(while (equal i 5) (setq i (add1 i)) (print i))
%----------------------------------------------------

All four "repeat"s return:  2  and then  NIL

The two "while"s are reasonable;
  the first returns:  2  3  4  5  and then  NIL
  the second returns:  NIL  immediately.

The situation is the same in both psl and npsl.
-------
11-Aug-82 09:37:06-PDT,267;000000000000
Date: 11 Aug 1982 0932-PDT
From: JOHNSON at HP-HULK
Subject: Documentation Bug
To: PSL at HP-HULK

Section 5.1, paragraph 2 of <HP-PSL>HP-PSL.R contains the meaningless
sentence: "Some of the <PSL> directories have no corresponding <PSL>
directory."
-------
12-Aug-82 11:08:20-PDT,530;000000000000
Mail-From: LANAM created at 12-Aug-82 11:06:18
Date: 12 Aug 1982 1106-PDT
From: LANAM at HP-HULK
Subject: restriction in psl which shouldn't be there.
To: psl at HP-HULK


The Psl compiler
	does not allow a go inside an and clause inside a prog.
ex:
10 lisp> (defun xx () (prog () loop (and (go loop))))
***** (GO LOOP) INVALID GO
XX

Thus causing me to have to say 
(cond (expression (go loop))) inside a prog
when i want to say (and should be allowed to say):
(and expression (go loop))


	douglas
-------
12-Aug-82 16:30:11-PDT,2751;000000000000
Mail-From: LANAM created at 12-Aug-82 16:27:30
Date: 12 Aug 1982 1627-PDT
From: LANAM at HP-HULK
Subject: search in emode
To: psl at HP-HULK

I looked at the source to search.red in pe: and found that it does 
a very dumb search algorithm.
The search algorithm should be replaced with the kmp algorithm
which can be found in most data structures/algorithm books.
I have a version running in lisp (but not fully compatible with
emode functions) which I can send.  The whole algorithm is
about 20 lines of code.
I also have a version in pascal which runs on my 9836 ( i debugged
it on there when the hulk was down and moved it over.
----
I am including the whole algorithm in lisp slightly commented.
This version to work with emode needs to convert some or the list
of characters and vectors of character to vectors of ints, and
needs to ignore case (this version does not ignore case).
This code has been checked and works.  I am using a variation of
it in my program for my search through the history table.
It runs much faster than the algorithm currently used in emode.
If you wish to install it, I can help in debugging this part of
the code and checking it works, if you can get someone else
to interface it to the reset of emode and set up the correct
accessing of emode data structures.
	douglas
-----
%%
%% Implemenation of Knuth_Morris_Pratt algorithm.
%%
%%
%% p: input-pattern format vector of characters:
%% 	'[a b c].
%%
%% output failure link vector to be used by emode_kmp_scan.
%%
(defun emode_kmp_flowchart_construction (p)
  (let ((m (size p)))
    (let ((*flink (mkvect (iplus2 1 m))))
      (iputv *flink 0 -1)
      (do ((i 1 (+ 1 i)))
	  ((> i m) *flink)
	(do ((j (igetv *flink (- i 1)) (igetv *flink j)))
	    ((or (eq j -1) (eq (igetv p j) (igetv p (- i 1))))
	     (iputv *flink i (+ j 1))))))))

%%
%% p : input _string in vector format '[ a b c]
%% m : upper bound of vector p (answer for above is 2).
%% s : line of characters to be searched 
%%     format list of characters: '(A b c d e . ..)
%% *flink : failure link vector from emode_kmp_flowchart_construction.
%%  
%% returns t if succeed, nil if not found.
%%
(defun emode_kmp_scan (p m s *flink)
  (and s
       (prog (j)
	 (setq j 0)
	 %%
	 %% if next character does not match use failure links
	 %% to back up and try again.
	 %%
	loop (cond ((and (neq j -1) (neq (igetv p j) (car s)))
		    (setq j (igetv *flink j)) (go loop)))
	 %%
	 %% if you have matched the entire pattern => succeed.
	 %%
	 (and (= j m) (return t))
	 (or (setq j (+ 1 j) s (cdr s)) 
	     %% 
	     %% move pointer in line,
	     %%
	     %% if no more line, fail.
	     (return nil))
	 (go loop))))

-------
12-Aug-82 16:40:09-PDT,603;000000000000
Mail-From: LANAM created at 12-Aug-82 16:36:41
Date: 12 Aug 1982 1636-PDT
From: LANAM at HP-HULK
Subject: psl read bug
To: psl at HP-HULK

do (let () (setq y (readch)) (unreadchar y) (read))word

the system will return
wORD

note: that read normally changes all the characters in its word to 
upper case.
But if the character was sent back to the input stream from unreadchar,
its initial case remains and the atom that read interns has its first
character in lower case if it was typed that way.
The above should have returned WORD.

The above is with *raise = t.
	douglas
-------
14-Aug-82 14:58:13-PDT,428;000000000000
Mail-From: LANAM created at 14-Aug-82 14:57:28
Date: 14 Aug 1982 1457-PDT
From: LANAM at HP-HULK
Subject: (reset) should end a (faslout)
To: psl at HP-HULK

If i do (faslout), get an error, and do (reset),
I do not think the system should be in fasl mode any more.
I think if I wanted to continue the (faslout), or save it,
I would use the continue option of the break package, and
not do (reset).
	douglas
-------
14-Aug-82 18:37:33-PDT,610;000000000000
Mail-From: LANAM created at 14-Aug-82 18:33:00
Date: 14 Aug 1982 1833-PDT
From: LANAM at HP-HULK
Subject: can someone please explain why the following takes place
To: psl at HP-HULK


HP-PSL 3.0, 12-Aug-82
1 lisp> (setq *comp t)
T
2 lisp> (defun a (b) (b b))
*** Functional form converted to APPLY (B B)
*** (A): base 412016, length 3 words
A


Why is it, if the function and argument have the same name, it
gives me this message, but if I change either the name of the
function or the argument, it doesn't give me this message?
I don't think this message should pop up.
	douglas
-------
14-Aug-82 18:42:30-PDT,415;000000000000
Mail-From: LANAM created at 14-Aug-82 18:40:11
Date: 14 Aug 1982 1840-PDT
From: LANAM at HP-HULK
Subject: last message with apply message.
To: psl at HP-HULK

Even if the function b was declared already.
(defun a (b) (B b)) causes the system to think that b is a variable bound
to a function.
I think this is wrong.  If I had wanted that I would have done
(apply b (list b)) instead of (b b).

-------
14-Aug-82 19:02:26-PDT,342;000000000000
Mail-From: LANAM created at 14-Aug-82 18:59:24
Date: 14 Aug 1982 1859-PDT
From: LANAM at HP-HULK
Subject: what does ($fluid :value) not compiled mean?
To: psl at HP-HULK

I got this between two functions I compiled, but there was no code between
the two function (and the declaration was pages earlier).
	thanks,
		douglas
-------
15-Aug-82 12:39:55-PDT,282;000000000000
Mail-From: LANAM created at 15-Aug-82 12:36:13
Date: 15 Aug 1982 1236-PDT
From: LANAM at HP-HULK
Subject: bug in macroexpand.
To: sys: ;

HP-PSL 3.0, 12-Aug-82
1 lisp> (macroexpand '(setq a b c d))
(SETQ A B)




The result should have been '(setq a b c d)).
-------
16-Aug-82 09:57:40-PDT,538;000000000000
Date: 16 Aug 1982 0957-PDT
From: Cris Perdue <Perdue>
Subject: Re: can someone please explain why the following takes place
To: LANAM
In-Reply-To: Your message of 14-Aug-82 1833-PDT

(defun a (b) (b b)) is compiled heuristically.  The compiler guesses
whether the call on b is directly a function call or whether "b" is
used as a function-valued variable.  On the basis of local context it
guesses b is a variable in function position.  I'm sure it will be
a low priority for fixing, since it is easily worked around.
-------
16-Aug-82 10:02:02-PDT,234;000000000000
Date: 16 Aug 1982 1002-PDT
From: Cris Perdue <Perdue>
Subject: Re: bug in macroexpand.
To: LANAM
In-Reply-To: Your message of 15-Aug-82 1236-PDT

Right on expanding SETQ.  There may be an associated compiler bug, too.
-------
18-Aug-82 09:55:56-PDT,256;000000000001
Mail-From: AS created at 18-Aug-82 09:52:47
Date: 18 Aug 1982 0952-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: PSL Deficiency
To: PSL at HP-HULK
cc: AS at HP-HULK

PRINTX apparently does not handle shared structures involving
Vectors.
-------
18-Aug-82 12:21:00-PDT,1125;000000000000
Mail-From: AS created at 18-Aug-82 12:16:33
Date: 18 Aug 1982 1216-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: PSL compiler bug
To: PSL at HP-HULK
cc: AS at HP-HULK

There is a serious PSL compiler bug relating
to the interaction between fast arithmetic
and fast vector access.  In the following code,
note that register 1 is clobbered by the MOVE
instruction before it is used as an index
register in the ADD instruction.  (Possibly
useful info: if the vector fetch is replaced
by CAR, the compiler does the right thing,
i.e., moves V to a free register before
loading register 1.)  PLEASE FIX THIS BUG!!!!
----------------------------------------------
(CompileTime (Load Fast-Vector))
(de test (v a)
  (WPlus2 (IGetV v 0) a))
----------------------------------------------
(*ENTRY TEST EXPR 2)
(*ALLOC 0)
(*MOVE (REG 2) (REG 1))
(*WPLUS2 (REG 1) (MEMORY (REG 1) (WCONST 1)))
(*EXIT 0)
----------------------------------------------
        (MOVE (REG 1) (REG 2))
        (ADD (REG 1) (INDEXED (REG 1) 1))
        (POPJ (REG ST) 0)
----------------------------------------------
-------
19-Aug-82 09:37:22-PDT,525;000000000000
Mail-From: LANAM created at 19-Aug-82 09:35:24
Date: 19 Aug 1982 0935-PDT
From: LANAM at HP-HULK
Subject: deficiencies in the history command.
To: psl at HP-HULK

When you do (hist), it tell you things like:
5       Inp: (HIST)
        Ans: NIL
6       Inp: Q
        Ans: NIL


But it doesn't tell me that the Q on (inp 6) is a response to the break
package, not the evaluation of the atom q.  It also doesn't tell me that
(ans 4) is nil because it never existed.{History is an undefined function}.
-------
19-Aug-82 10:12:21-PDT,387;000000000000
Mail-From: AS created at 19-Aug-82 10:07:31
Date: 19 Aug 1982 1007-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: CMACRO Bug
To: PSL at HP-HULK
cc: AS at HP-HULK

The *WNOT CMACRO produces bad code when its argument is
an integer constant.  For example, the expression
(WNot 7) produces (SETCM (REG 1) 7), which computes
the complement of the contents of register 7.
-------
19-Aug-82 10:47:20-PDT,429;000000000000
Mail-From: PAULSON created at 19-Aug-82 10:47:09
Date: 19 Aug 1982 1047-PDT
From: PAULSON at HP-HULK
Subject: matching parens
To: psl at HP-HULK

It's a serious misfeature in PSL that the system doesn't do automatic
carriage return after it sees the last matching closeparen.  But it's much
worse that if you count wrong and type an extra closeparen, the system 
goes in to a break.  This has got to be fixed.
-------
20-Aug-82 17:42:54-PDT,3634;000000000000
Date: 20 Aug 1982 17:34:58-PDT
From: daemon at HP-Speech
Via: utah-cs
Date: 20 Aug 1982 0546-MDT
From: Martin.Griss <Griss at UTAH-20>
Subject: [Norman.kentvax at UDel-Relay: psl stray queries]
To: benson@HP-Speech
cc: griss@HP-Speech
Remailed-date: 20 Aug 1982 1306-MDT
Remailed-from: Eric Benson <BENSON at UTAH-20>
Remailed-to: psl-bugs at UTAH-20
Remailed-date: 20 Aug 1982 1742-PDT
Remailed-from: Cris Perdue <Perdue>

Mail-from: ARPANET site UDEL-RELAY rcvd 20-Aug-82 0445-MDT
Date:     19 Aug 82 21:33:08-EDT (Thu)
From:     Norman.kentvax at UDel-Relay
To:       griss at Utah-20
cc:       hearn at Rand-Ai
Subject:  psl stray queries
Via:  kentvax; 20 Aug 82 5:29-EDT

this is a very initial bunch of psl queries/thoughts.
it is also a test to see if i can get mail out of this vax
& over to you lot.
(a)i

(a) on vax psl 'messages' and 'real output' get interleaved in what
seems to be an assynchronous manner. at least i seem to get error
messages all mixed in with the stuff i print, so the idiom
    print <my own messages>;
    error 'stop here;
is not as helpful as I would like.

(b) I have tried to use
    rlisp <<here | tee logfile
    on echo;
    ....

    to get a copy of input & output of a set of standartd tests. the
    'on echo;' seems not to be honoured? also the error recovery is
    a mess in this case because i go into lisp syntax & need to type
    special error-break-loop commands to escape it, and these are
    abominated unless i am in the error loop.

(c) in ann error
I wanted to see the value of fluid variables called a,b,c,d,...
but of course some of these letters gave magic effects! i ended
up with going (eval 'c) & similar nasties. yuk. also could the 
backtrace print values that fluids have on the stack, or could i
have some similar easy way to see values of fluids that have been
covered up by subsequent bindings. furthermore the mess one gets on
going (backtrace) is a MESS and i find it hard to see the stuff that
i want for all the muck that i dont.

(d) try printing (expt 2 31). for me it gives an infinite string of -
signs!!!!!!!

(e) lack of bignums is mildly bothersome - for work with reduce I guess
i will lash up a botched bignum package representing numbers as vectors
(so they pass the atom test), cos i presume your proper version is in
the pipeline but not ready yet.

(f) i looked for the followng functions without apparent success:
       random()    generate random number
       timeofday() like date() but gives wallclock time
          (I wanted it to help generate a good seed for my own
           random number generator!)

(g) in rlisp, various things I expected to be errors were not trapped very
hard, e.g. a missing ')' seemed to be continuable when i didn't
expect/want it to. also "help help" failed by turning into
(help 'help) internally, not (help help), and in a break look following
an error (help <anything?>) complained about the help package not being
loaded even though I had called it from rlisp.

(h) i suspect that often while in an break loop i want further errors
ignored rather than letting them push me further into deeper break
loops. I might be happy to have a break level that eats simple 1-char commands to continue, quit, backtrace with one char
that pushes me into a brand new read-eval-print loop. for rlisp I
guess that should be an rlisp r-e-p loop?

I will try to collect further notes to pass on as I think of things:
just put these somewhere in your big pile of gripes!

Was good to see you in Pittsburg. cheers. arthur

-------

22-Aug-82 13:50:13-PDT,524;000000000000
Mail-From: PAULSON created at 22-Aug-82 13:45:20
Date: 22 Aug 1982 1345-PDT
From: PAULSON at HP-HULK
Subject: SUBSTRING
To: PSL at HP-HULK

In INTERLISP, (SUBSTRING STR N M) gives you the Nth through Mth elements of
the string.  Makes sense, right?  And in ZLisp, (NSUBSTRING STR N M) gives you
the (N+1)th through (M+1)th elements.  Fine- ZLisp does zero-indexing.
But in PSL, (SUBSTRING N M) gives you the (N+1)th through Mth elements.
This does not make sense at all (and it isn't documented either.)
-------
23-Aug-82 16:34:14-PDT,253;000000000011
Mail-From: LANAM created at 23-Aug-82 16:30:41
Date: 23 Aug 1982 1630-PDT
From: LANAM at HP-HULK
Subject: (HELP) load module not found.
To: psl at HP-HULK

If you do '? in a break, the system says (HELP) load module not found.
	douglas
-------
25-Aug-82 13:42:37-PDT,254;000000000000
Mail-From: FILMAN created at 25-Aug-82 13:40:16
Date: 25 Aug 1982 1340-PDT
From: FILMAN at HP-HULK
Subject: bugs
To: psl at HP-HULK

The (bug) function gives an access failure (and dies in emode)

The function destructp is undefined.

-------
25-Aug-82 14:29:18-PDT,315;000000000000
Mail-From: FILMAN created at 25-Aug-82 13:50:26
Date: 25 Aug 1982 1350-PDT
From: FILMAN at HP-HULK
Subject: more bug
To: psl at HP-HULK

The psl manual "swaps" the page and section numbers on left and right pages,
but leaves the "PSL Manual" and section names unswapped.  This is a bit
confusing.
-------
25-Aug-82 16:09:32-PDT,618;000000000000
Date: 25 Aug 1982 1556-PDT
From: Kendzierski (Nancy)
Subject: One of Filman's PSL bugs
To: perdue
Remailed-date: 25 Aug 1982 1609-PDT
Remailed-from: Cris Perdue <Perdue>
Remailed-to: filman

I'm sending this to you (rather than PSL) because I'm answering
a bug, not reporting one and I don't know the proper procedure
for that.  Bob Filman complained about the "swapping/unswapping"
of the PSL manual headers (chapter, section, section #, page #).
The new manual -- I wasn't sure if you had looked at it -- has
these correctly set up for right/left pagination.  I'm sure
Bob has an old manual.
-------
26-Aug-82 09:25:24-PDT,383;000000000000
Mail-From: LANAM created at 26-Aug-82 09:22:25
Date: 26 Aug 1982 0922-PDT
From: douglas <LANAM at HP-HULK>
Subject: errors in manual.
To: psl at HP-HULK


Page 14.1:

Under the function savesystem, is a spelling error.
lispbannner!* should be lispbanner!*.


On page 13.2 is the following :

BREAKOUT!* (initially: NIL)     global
	similar to BREAKOUT!*.

-------
26-Aug-82 09:50:43-PDT,488;000000000000
Mail-From: LANAM created at 26-Aug-82 09:47:51
Date: 26 Aug 1982 0947-PDT
From: douglas <LANAM at HP-HULK>
Subject: why are there global variables which can be bound statically?
To: psl at HP-HULK

what is really gained by this?
I find it unreasonable that I can not do
(let ((out* (open "junk" 'output))) (princ ....))))

And if I can't do it this way, I have to use a catch to make sure that
out* is bound correctly after the body of the let is executed.
	douglas
-------
26-Aug-82 09:54:53-PDT,209;000000000000
Date: 26 Aug 1982 0857-PDT
From: douglas <LANAM>
Subject: you can do a funcall or apply on a code pointer.
To: perdue
Remailed-date: 26 Aug 1982 0954-PDT
Remailed-from: Cris Perdue <Perdue>


-------
26-Aug-82 11:00:24-PDT,545;000000000000
Mail-From: FILMAN created at 26-Aug-82 10:58:53
Date: 26 Aug 1982 1058-PDT
From: FILMAN at HP-HULK
Subject: yet another bug complaint
To: psl at HP-HULK

This is a subtle one, that most lisp's get wrong.

In PSL, macros eat stack.  For example, the sequence

(setq x 1000)
(dm awhile (l)(cond  ((eval (cadr l)) (eval (caddr l)) l)
		     (t nil)))
(awhile (greaterp x 0) (setq x (sub1 x)))

gets a stack overflow; it needn't.  I believe that stanford 1.6 lisp
does this right, while uci-lisp does it wrong.

					Bob
-------
26-Aug-82 11:25:30-PDT,812;000000000000
Mail-From: LANAM created at 26-Aug-82 11:23:54
Date: 26 Aug 1982 1123-PDT
From: douglas <LANAM at HP-HULK>
Subject: bugs in emode.
To: psl at HP-HULK

try the following:
@psl
1 lisp> (emode)
^\e^L

(that is type meta-e, cntl-l as the first input to emode).


--------

What is the replace string command?
What is the global replace string command?


--------

The manual says escape will work as a meta key.  It does not.

--------

I got into a 3 window mode where one was a break window.
I could not figure out how to use it.
Is there any documentation on it?

--------

meta-x is mentioned in the manual.  It does not exist.

--------

is the list of commands in the manual complete?

--------

can ctrl-h work the same as ^b ?  It does in emacs.

	douglas
-------
26-Aug-82 11:55:25-PDT,354;000000000000
Mail-From: FILMAN created at 26-Aug-82 11:54:50
Date: 26 Aug 1982 1154-PDT
From: FILMAN at HP-HULK
Subject: emode and mm
To: psl at HP-HULK

If you're in emode, and call mm, the exit from mm leaves emode confused.
The various controll characters to the screen get printed.  Doing an ^x^s
and a continue psl fixes the problem.
					Bob
-------
26-Aug-82 12:00:25-PDT,232;000000000000
Mail-From: FILMAN created at 26-Aug-82 11:55:32
Date: 26 Aug 1982 1155-PDT
From: FILMAN at HP-HULK
Subject: last bug
To: psl at HP-HULK

Excuse me, that's if you do an ^x^z in emode to get back to the exec.
				Bob
-------
26-Aug-82 12:15:25-PDT,430;000000000000
Mail-From: FILMAN created at 26-Aug-82 12:12:28
Date: 26 Aug 1982 1212-PDT
From: FILMAN at HP-HULK
Subject: defstruct
To: psl at HP-HULK

The defstruct documentation in the psl manual does not correspond to the
implementation in psl.  For example, defstructp doesn't exist.  Chris
assures me that the defstruct in psl is lisp machine defstruct.  Perhaps
the manual could be adjusted for this reality.
					Bob
-------
26-Aug-82 12:15:27-PDT,403;000000000000
Mail-From: FILMAN created at 26-Aug-82 12:14:36
Date: 26 Aug 1982 1214-PDT
From: FILMAN at HP-HULK
Subject: closures
To: psl at HP-HULK

I was pleased to see the documentation on closures on page 10.9 of the psl
manual.  Unfortunately, this stuff is not implemented.  Perhaps a better
warning than "[??? Not yet connected to V3 ???]" could be associated with this
material.
					Bob
-------
26-Aug-82 15:30:31-PDT,315;000000000000
Mail-From: FILMAN created at 26-Aug-82 15:27:19
Date: 26 Aug 1982 1527-PDT
From: FILMAN at HP-HULK
Subject: ***** Unexpected EOF while reading {99}
To: psl at HP-HULK

I get the above message in a break, and all the ^q's I give it don't pop.
Is there some sure way back to the top level?
					Bob
-------
26-Aug-82 16:39:38-PDT,470;000000000000
Date: 26 Aug 1982 1639-PDT
From: Cris Perdue <Perdue>
Subject: Re: ***** Unexpected EOF while reading {99}
To: FILMAN
In-Reply-To: Your message of 26-Aug-82 1527-PDT

Say "a" rather than "q" to get out.  There is a menu that tends to come
up these days, even when you don't want it.  When you don't want it,
use ^XO to get out of it.  A couple of ^XOs and it will even disappear
from the screen.  We'll get rid of that menu altogether in a day or so.
-------
26-Aug-82 16:45:32-PDT,312;000000000000
Date:      26 Aug 1982 16:35-PDT (Thursday)
Full-Name: Steve Hiebert
Subject:   Bug in "apply" function
To: hp-pcd!psl@HP-Hewey
Cc: hp-pcd!Steve@HP-Hewey



When the function "(apply 'plus '(1 2 3))" is entered, psl returns a line
of the form

#<Unknown:15602127320>

rather than the result "6".

26-Aug-82 17:49:47-PDT,572;000000000000
Date: 26 Aug 1982 1749-PDT
From: Cris Perdue <Perdue>
Subject: Re:   Bug in "apply" function
To: hp-pcd!steve at HP-HEWEY
In-Reply-To: Your message of 26-Aug-82 1645-PDT

PLUS is a MACRO, so you don't get what you expect as an answer.
In general, applying a macro causes it to perform macro expansion
but not to evaluate the expanded form.  Probably applying a macro
ought to either be an error.  In some LISPs (apply fn arglist)
is equivalent to (eval (cons fn arglist)) when fn is a macro, but
these are not equivalent when fn is a normal function.
-------
26-Aug-82 18:40:21-PDT,1160;000000000001
Date:      26 Aug 1982 17:21-PDT (Thursday)
Full-Name: Ching-Chao Liu
Subject:   bug report
To: hp-pcd!psl@HP-Hewey


We run psl on VAX/750 under UNIX.

The problems are

(1) I first defined a function "x".  Then I initialized the property
    list of "x" by using "SetProp" which turned my function definition
    into "NIL".

(2) I went on typing my function definition again.  Then I looked at
    my property list.  It has my function definition with some other
    goodies in it.

I'll imagine the function cell and the property cell are two seperate
entities.  So, these side effects are unexpected and undesired.

Following is a sample of the problems.

1 lisp> (de x (y) (car y))
X
2 lisp> (pp x)
(DE X (Y) (CAR Y))
T
3 lisp> (setprop 'x '((color . red)))
((COLOR . RED))
4 lisp> (prop 'x)
((COLOR . RED))
5 lisp> (pp x)
*** X has ill-formed definition.
(DE X NIL)
T
6 lisp> (de x (y) (car y))
Do you really want to redefine the system function `X'?(Y or N)y
*** Function `X' has been redefined
X
7 lisp> (pp x)
(DE X (Y) (CAR Y))
T
8 lisp> (prop 'x)
((*LAMBDALINK LAMBDA (Y) (CAR Y)) USER (COLOR . RED))

26-Aug-82 18:48:35-PDT,546;000000000000
Date: 26 Aug 1982 1848-PDT
From: Cris Perdue <Perdue>
Subject: Function cells and property lists
To: hp-pcd!tw at HP-HEWEY, hp-pcd!liu at HP-HEWEY

Thanks for the good observation.  It turns out that the
function cell in PSL always contains a machine instruction,
so the lambda expression can't be stored there.  PSL stores
the lambda expression on the property list.  I don't believe
this fact is documented.

TW:  I'm sending this to you also in case my guess for Liu's
username is wrong.  Please forward.  Thanks.  -Cris
-------
27-Aug-82 14:56:00-PDT,350;000000000000
Mail-From: LANAM created at 27-Aug-82 14:55:33
Date: 27 Aug 1982 1455-PDT
From: douglas <LANAM at HP-HULK>
Subject: file function needed.
To: psl at HP-HULK

Is there a function which can tell me when a file was last written to 
the disk?  I could use such a function.
(I know this is machine/operating system dependent).
	douglas
-------
27-Aug-82 15:01:00-PDT,449;000000000000
Mail-From: AS created at 27-Aug-82 14:58:45
Date: 27 Aug 1982 1458-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: Re: file function needed.
To: LANAM at HP-HULK
cc: psl at HP-HULK, AS at HP-HULK
In-Reply-To: Your message of 27-Aug-82 1455-PDT

The file <HP-PSL.EMODE>DIRECTORY.SL has functions that almost
do what you want.  Take the part of FILE-DELETED-STATUS that
does at GTJFN to get a JFN, then pass that to JFN-WRITE-DATE.
-------
27-Aug-82 16:10:59-PDT,231;000000000000
Mail-From: LANAM created at 27-Aug-82 16:09:05
Date: 27 Aug 1982 1609-PDT
From: douglas <LANAM at HP-HULK>
Subject: strange print bug in psl
To: psl at HP-HULK

@psl

1 lisp> '(quote a b)
'A
2 lisp>

	douglas
-------
28-Aug-82 04:01:02-PDT,616;000000000000
Mail-From: LANAM created at 28-Aug-82 03:56:46
Date: 28 Aug 1982 0356-PDT
From: douglas <LANAM at HP-HULK>
Subject: vector print length limit.
To: psl at HP-HULK

There should be a special variable (say *printlength) which is set to 
the maximum number of elements in a vector, list, (half-words vectors),
which are printed out.  The rest could be printed ... .
This variable could be reset by the user (nil for no limit).  But I
think there should be a limit in the system (say 25-30?), often I
get a strange error in compiled code which results in the endless
printing of a vector.
	douglas
-------
28-Aug-82 04:01:04-PDT,359;000000000000
Mail-From: LANAM created at 28-Aug-82 03:57:53
Date: 28 Aug 1982 0357-PDT
From: douglas <LANAM at HP-HULK>
Subject: interrupt and dumpsave.
To: psl at HP-HULK

If you do 
(load interrupt)
(savesystem "xxx.exe")
(quit)
@xxx.exe

The interrupts will not work in xxx.exe, but the system will think the
file was already loaded.

	douglas
-------
30-Aug-82 10:36:42-PDT,202;000000000000
Mail-From: FILMAN created at 30-Aug-82 10:34:10
Date: 30 Aug 1982 1034-PDT
From: FILMAN at HP-HULK
Subject: break window
To: psl at HP-HULK

What happened to the break window?
					Bob
-------
30-Aug-82 13:41:35-PDT,273;000000000000
Mail-From: FILMAN created at 30-Aug-82 13:38:40
Date: 30 Aug 1982 1338-PDT
From: FILMAN at HP-HULK
Subject: emode, breaks and "a"
To: psl at HP-HULK

Giving an "a" from emode inside a break seems to confuse the emode
page printing routines some.
					Bob
-------
30-Aug-82 15:36:37-PDT,511;000000000000
Mail-From: FILMAN created at 30-Aug-82 15:34:57
Date: 30 Aug 1982 1534-PDT
From: FILMAN at HP-HULK
Subject: break and emode
To: psl at HP-HULK

When trying to "q" from a break in emode, the cursor goes to the end of
the second following line, not the next line.  That is, if the screen is:
(cursor shown by *)

q*
first line
second line

and you execute a meta-e, you get:

q
first line
second line*

not what you should get, which is:

q
first line*
second line


					Bob
-------
31-Aug-82 10:47:00-PDT,562;000000000000
Mail-From: LANAM created at 31-Aug-82 10:46:17
Date: 31 Aug 1982 1046-PDT
From: douglas <LANAM at HP-HULK>
Subject: feature in print.
To: psl at HP-HULK

It would be nice if print could know about readmacrochars that
do as follows ^lisp-expression => (tag lisp-expression).
An example is quote.
Note: it should make sure the tagged list is of length 2 before
doing the special print(at least in the case of quote).

I found the variable idescapechar* and was able to change the
character that psl prints as the escape character.
	douglas
-------
31-Aug-82 11:16:55-PDT,826;000000000000
Mail-From: LANAM created at 31-Aug-82 11:14:18
Date: 31 Aug 1982 1114-PDT
From: douglas <LANAM at HP-HULK>
Subject: delcaration of functions and variables.
To: psl at HP-HULK

I think it is better to have a declaration statement to declare
something as a fexpr or as a nexpr, if you wish to use it before
defining it in compiled code.
Currently the manual says to write a dummy version.
But something like :
(declare (*fexpr x) (*nexpr x)) would be better.
It could also be used in compiling files that reference other
files but that you don't wish to load everything in to compile it.

Also,
(fluid x) should not set x to nil.

and there should be two property list names for function type and
variable type, not one, you should be able to use a name as a
global variable and a fexpr.
	douglas
-------
 1-Sep-82 11:51:56-PDT,333;000000000000
Mail-From: LANAM created at  1-Sep-82 11:49:33
Date:  1 Sep 1982 1149-PDT
From: douglas <LANAM at HP-HULK>
Subject: if you do a (br func) and func is a fexpr:
To: psl at HP-HULK

The system asks how many arguments does func take.
What is the correct answer (1)?? If so, why does it ask?
If not, what should I type?
-------
 1-Sep-82 11:56:56-PDT,276;000000000000
Mail-From: LANAM created at  1-Sep-82 11:52:25
Date:  1 Sep 1982 1152-PDT
From: douglas <LANAM at HP-HULK>
Subject: compiletime
To: psl at HP-HULK

do 
@psl
(compiletime (setq a 1))
a

You will get that a has been set to 1.  I do not think this is right.
-------
 1-Sep-82 11:56:59-PDT,268;000000000000
Mail-From: LANAM created at  1-Sep-82 11:53:16
Date:  1 Sep 1982 1153-PDT
From: douglas <LANAM at HP-HULK>
Subject: correction on br error message.
To: psl at HP-HULK

func was a macro, not a fexpr, but the same question still applies.
sorry, douglas
-------
 1-Sep-82 11:57:01-PDT,305;000000000000
Mail-From: LANAM created at  1-Sep-82 11:55:03
Date:  1 Sep 1982 1155-PDT
From: douglas <LANAM at HP-HULK>
Subject: further correction on br and macro.
To: psl at HP-HULK

the func was a compiled macro.  But why should it ask the number of
arguments on a macro or fexpr, compiled or not?
-------
 1-Sep-82 12:02:00-PDT,523;000000000000
Mail-From: LANAM created at  1-Sep-82 12:01:03
Date:  1 Sep 1982 1201-PDT
From: douglas <LANAM at HP-HULK>
Subject: br does not work with macros.
To: psl at HP-HULK

If you have a function x which is a macro.  Say
(dm x (y) (rplaca y 'princ))

then do (br x) .

Before the call to br, 
(x 'a) typed into the interpretor will execute the princ and return a.

After the call to br,
typeing (x 'a) to the interpretor will cause the expression
(princ 'a) to be returned but not evaluated.

	douglas
-------
 1-Sep-82 12:11:58-PDT,643;000000000000
Mail-From: FILMAN created at  1-Sep-82 12:08:02
Date:  1 Sep 1982 1208-PDT
From: FILMAN at HP-HULK
Subject: circular structure bugs
To: psl at HP-HULK

1) Printx doesn't handle circular vector structures.  Since defstruct
makes vectors, this is a serious problem

2) Consider the following sequence:

(setq bbb '[a b c d])
(indx bbb 3)			--> d
(setindx bbb 3 bbb)		--> prints the appropriate circular structure
(indx bbb 3)			--> an infinite structure
(indx (indx bbb 3) 3)		--> produces a push down overflow error
(indx (indx (indx bbb 3) 3) 1)  --> also produces a push down overflow error

What gives?
					Bob
-------
 1-Sep-82 12:12:10-PDT,241;000000000000
Mail-From: FILMAN created at  1-Sep-82 12:11:34
Date:  1 Sep 1982 1211-PDT
From: FILMAN at HP-HULK
Subject: last bug report
To: psl at HP-HULK

The last bug i sent (on index mistakes) doesn't seem to be repeatable.
					Bob
-------
 1-Sep-82 17:03:50-PDT,268;000000000000
Mail-From: FILMAN created at  1-Sep-82 17:00:41
Date:  1 Sep 1982 1700-PDT
From: FILMAN at HP-HULK
Subject: trace
To: psl at HP-HULK

The function "trace" is defined but doesn't trace; nor is it documented in
my version of the documentation.
				Bob
-------
 1-Sep-82 23:00:30-PDT,1067;000000000000
Mail-From: LANAM created at  1-Sep-82 22:55:56
Date:  1 Sep 1982 2255-PDT
From: douglas <LANAM at HP-HULK>
Subject: macros in compile mode.
To: psl at HP-HULK

HP-PSL 3.0, 27-Aug-82
1 lisp> (bothtimes (setq x 2))
2
2 lisp> x
2
3 lisp> (dm x (y) `(bothtimes (setq . ,(cdr y)))
3 lisp> )
X
4 lisp> (x z 4)
4
5 lisp> z
4
6 lisp> (faslout "junk")
FASLOUT: (DSKIN files) or type in expressions
When all done execute (FASLEND)
T
7 lisp> (bothtimes (setq a 3))
3
8 lisp> (x b 4)
9 lisp> (faslend)
*** Init code length is 2
*** A declared fluid
*** B declared fluid
**FASL**INITCODE**NIL
10 lisp> a
3
11 lisp> b
NIL
12 lisp> (quit)



I do not think this is correct, the call to x on line 8 should be expanded
by the compiler and then the system should notice that it is a bothtimes
clause and should be executed at compile time and compiled.  Instead it
appears to be just compiled.

The x is expanded (it is just not executed at compile time like it 
is suppose to be).

Can you fix this soon?  
	thanks,
		douglas
-------
 1-Sep-82 23:00:33-PDT,294;000000000000
Mail-From: LANAM created at  1-Sep-82 22:58:44
Date:  1 Sep 1982 2258-PDT
From: douglas <LANAM at HP-HULK>
Subject: what is defn* and *defn?
To: psl at HP-HULK

and what is dfprint* 
They are on page 19.3.  They seem important yet are pretty much undocumented.
What are they.
-------
 1-Sep-82 23:00:36-PDT,247;000000000000
Mail-From: LANAM created at  1-Sep-82 23:00:12
Date:  1 Sep 1982 2300-PDT
From: douglas <LANAM at HP-HULK>
Subject: faslout change
To: psl at HP-HULK

Did someone change faslout?  It use to echo input, but now it doesn't
seem to.
-------
 1-Sep-82 23:05:30-PDT,321;000000000000
Mail-From: LANAM created at  1-Sep-82 23:02:45
Date:  1 Sep 1982 2302-PDT
From: douglas <LANAM at HP-HULK>
Subject: Can you change faslout back to echoing input that is just
To: psl at HP-HULK

passed to the fasl file.  I can not figure out easily when I finish typing
an expression to faslout any more.
-------
 2-Sep-82 01:59:59-PDT,741;000000000000
Mail-From: LANAM created at  2-Sep-82 01:58:26
Date:  2 Sep 1982 0158-PDT
From: douglas <LANAM at HP-HULK>
Subject: break package and returning new values.
To: psl at HP-HULK


I have read through the break package, and tried a few things, and can
not find how I can do something that means
(return value) where value is a lisp-expression to be evaluated and become
the value of the call to break(or conterror), without calling 
the editor.  I would like to be able to return a value or evaluate an
expression that may not be similar to the expression that caused the 
error and return that value back from the break point (similar to
what one can do in maclisp/franz/lisp machine lisp).
How do I do this?
	douglas
-------
 2-Sep-82 08:24:59-PDT,374;000000000000
Mail-From: AS created at  2-Sep-82 08:20:49
Date:  2 Sep 1982 0820-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: Re: break package and returning new values.
To: LANAM at HP-HULK
cc: psl at HP-HULK, AS at HP-HULK
In-Reply-To: Your message of 2-Sep-82 0158-PDT

Just type the expression at the break handler, then type 'C' for
"continue using last value".
-------
 2-Sep-82 10:45:03-PDT,290;000000000000
Mail-From: LANAM created at  2-Sep-82 10:43:26
Date:  2 Sep 1982 1043-PDT
From: douglas <LANAM at HP-HULK>
Subject: continuable break.
To: psl at HP-HULK

Is there a function that would be (contbreak) ?
Which is something to (break) as (conterror) is to (error)?
	douglas
-------
 2-Sep-82 10:55:00-PDT,490;000000000000
Mail-From: FILMAN created at  2-Sep-82 10:53:48
Date:  2 Sep 1982 1053-PDT
From: FILMAN at HP-HULK
Subject: atomic rules
To: psl at HP-HULK

In PSL, (atom x) == (not (pairp x)).  Thus, vectors, code pointers
strings, etc are all atoms.

I know that this is documented.  However, it is counter-intuitive
(counter-intuitive == the other lisps I've played with don't do it this
way).  Not having read the fine print, I spent an afternoon discovering this
fact.
					Bob
-------
 2-Sep-82 11:10:01-PDT,273;000000000000
Mail-From: AS created at  2-Sep-82 11:05:43
Date:  2 Sep 1982 1105-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: PSL bug
To: PSL at HP-HULK
cc: AS at HP-HULK

Char-UpCase and Char-DownCase return NIL instead of their
argument when no conversion is done.
-------
 2-Sep-82 11:50:02-PDT,615;000000000000
Mail-From: FILMAN created at  2-Sep-82 11:45:35
Date:  2 Sep 1982 1145-PDT
From: FILMAN at HP-HULK
Subject: printing circular structures to depth
To: gadol at HP-HULK, psl at HP-HULK

Unfortunately, PSL doesn't have a printlevel function (that prints a structure
only to a certain depth).  Nor does the circular printing function deal with
circularity in vectors.

I've written a (not deeply thought-out) depth-limited printing function of my
own.  Since PSL doesn't come with the most complete set of user utilities, how
about a user-utility function area for such contributions?

					Bob
-------
 2-Sep-82 12:15:00-PDT,281;000000000000
Mail-From: LANAM created at  2-Sep-82 12:13:04
Date:  2 Sep 1982 1213-PDT
From: douglas <LANAM at HP-HULK>
Subject: flag that should be documented.
To: psl at HP-HULK

I found a flag *continuableerror which should be documented in the manual.
(It is very useful).
-------
 2-Sep-82 12:59:59-PDT,245;000000000000
Mail-From: AS created at  2-Sep-82 12:56:54
Date:  2 Sep 1982 1256-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: TAGS
To: PSL at HP-HULK
cc: AS at HP-HULK

I extended <HP-PSL>TAGS.EXE to recognize DS, DEFFLAVOR, and DEFMETHOD.
-------
 2-Sep-82 15:20:08-PDT,821;000000000000
Mail-From: AS created at  2-Sep-82 15:17:00
Date:  2 Sep 1982 1517-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: Feature request
To: PSL at HP-HULK
cc: AS at HP-HULK

I would like to have the GC starting and ending messages printed by specific
functions that are invoked at the beginning and ending of each garbage
collection.  These functions should take as arguments all information that they
use to construct an appropriate message.  This change would allow me to alter
the form of announcement without mucking with the GC itself.  In particular, I
don't want to have to make an altered copy of the GC code or access its private
variables.  I realize that the GC-start function would have to be written to
not allocate any storage.  I need this feature to display a GC announcement in
NMODE.
-------
 3-Sep-82 04:54:48-PDT,837;000000000000
Mail-From: LANAM created at  3-Sep-82 04:52:14
Date:  3 Sep 1982 0452-PDT
From: douglas <LANAM at HP-HULK>
Subject: can you change princ,
To: psl at HP-HULK

Can you change the printing of the following by princ, so that the open 
parens are on the beginning of the line, not the end?   I think that
this would be more pleasant to look at.
Currently:
(THING (WCHEM-CLASS (WCH) (WCHO (C-O-STRETCH-ALCOHOL) (O-H-DEFORMATION (
(THING (WCHEM-CLASS (WCH) (WCHO (C-O-STRETCH-ALCOHOL) (O-H-DEFORMATION (
O-H-STRETCH-FREE-OH-ALCOHOL) (O-H-STRETCH-INTRAMOLECULAR-H-BONDED-ALCOHOL) (
O-H-STRETCH-POLYMERIC-ALCOHOL) (O-H-STRETCH-DIMERIC-ALCOHOL)) (
C=O-STRETCH-OVERTONE) (C=O-STRETCH))))


(Actually I tried to copy this off my terminal and one line got mixed up,
but it still displays what is currently done.
	douglas
-------
 3-Sep-82 09:20:07-PDT,377;000000000000
Mail-From: BENSON created at  3-Sep-82 09:17:11
Date:  3 Sep 1982 0917-PDT
From: Eric Benson <BENSON at HP-HULK>
Subject: Re: can you change princ,
To: Lanam at HP-HULK
cc: psl at HP-HULK
In-Reply-To: Your message of 3-Sep-82 0452-PDT

That's what PRETTYPRINT is for.  It has been suggested that the top loop
use PRETTYPRINT instead of PRINT.  Any opinions?
-------
 3-Sep-82 12:00:08-PDT,253;000000000000
Mail-From: PERDUE created at  3-Sep-82 11:57:28
Date:  3 Sep 1982 1157-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: STEP bug
To: psl at HP-HULK

Try (step '(plus 3 4)).  Step using ^N.  The stepper breaks after
a couple of steps.
-------
 3-Sep-82 13:10:08-PDT,321;000000000001
Mail-From: FILMAN created at  3-Sep-82 13:06:38
Date:  3 Sep 1982 1306-PDT
From: FILMAN at HP-HULK
Subject: emode and []
To: psl at HP-HULK

The s-expression functions in emode don't seem to know about []'s.
Since these are the default construction of defstruct, this is a serious
deficiency.
					Bob
-------
 9-Sep-82 14:29:54-PDT,289;000000000001
Mail-From: LANAM created at  9-Sep-82 14:29:09
Date:  9 Sep 1982 1429-PDT
From: douglas <LANAM at HP-HULK>
Subject: change not have same name for fluid and macro.
To: psl at HP-HULK

Please fix this soon.  It is a very annoying restriction that
shouldn't exist.
	douglas
-------
 9-Sep-82 14:34:55-PDT,687;000000000001
Mail-From: LANAM created at  9-Sep-82 14:32:52
Date:  9 Sep 1982 1432-PDT
From: douglas <LANAM at HP-HULK>
Subject: Does the following mean the whole phrase was not compiled or
To: psl at HP-HULK

just the car was not compiled.
*** (car (merge-comment (*i-put-datum (frame ($local type)) (get-field-location 'nil ($local key1)) '3 '(insert-frame (fname :frame))) 'finherit: 'continue))
not compiled.


If the first, it is very, very wrong since all of these functions are my
own and do side effects (set property lists).
If the second, the message should be changed to something like, return
value of car is not used and thus car is not being compiled.
	douglas
-------
 9-Sep-82 14:39:53-PDT,373;000000000001
Mail-From: BENSON created at  9-Sep-82 14:37:54
Date:  9 Sep 1982 1437-PDT
From: Eric Benson <BENSON at HP-HULK>
Subject: Re: Does the following mean the whole phrase was not compiled or
To: LANAM at HP-HULK, psl at HP-HULK
In-Reply-To: Your message of 9-Sep-82 1432-PDT

It means just the CAR was not compiled.  I'll see what I can do about
the message.
-------
 9-Sep-82 15:09:52-PDT,322;000000000001
Mail-From: LANAM created at  9-Sep-82 15:08:09
Date:  9 Sep 1982 1508-PDT
From: douglas <LANAM at HP-HULK>
Subject: psl on the vax.
To: psl at HP-HULK

Could the psl on the vax be reconfigured so that there is 100K words of
bps free at its startup (currently it is approx 46K words)?
	thanks,
		douglas
-------
10-Sep-82 09:10:13-PDT,472;000000000001
Mail-From: LANAM created at 10-Sep-82 09:07:36
Date: 10 Sep 1982 0907-PDT
From: douglas <LANAM at HP-HULK>
Subject: warnings by compiler.
To: psl at HP-HULK

When the compiler says something is declared fluid, could you include the function that caused this on the same line in the message.  Due to the fast number of
lisp systems, I have a hard time remembering whether yours does it before it
prints the function name concerning it or after.
	douglas
-------
10-Sep-82 10:25:21-PDT,728;000000000001
Mail-From: LANAM created at 10-Sep-82 10:22:02
Date: 10 Sep 1982 1022-PDT
From: douglas <LANAM at HP-HULK>
Subject: feature that needs to be documented and fix in documentation.
To: psl at HP-HULK

I found if you set the value of breakfunction on the propertylist of
an atom, and type the atom at the break level, it will execute
that function.  This needs to be documented somewhere.  Also the
help file printed at the level should be able to be updated to
reflect any changes the user may make.   I am not sure I like having
atoms automatically changed into functions at type in, but I do like
being able to change the break system to take control characters
instead of alphabetic characters.
	douglas
-------
10-Sep-82 10:50:12-PDT,341;000000000001
Mail-From: LANAM created at 10-Sep-82 10:49:18
Date: 10 Sep 1982 1049-PDT
From: douglas <LANAM at HP-HULK>
Subject: configuration of bps and heap on 20
To: psl at HP-HULK

Can the configuration of the above in psl be changed by moving approx.
20K-30K of heap space from heap to bps in bare-psl and psl?
	thanks,
		douglas
-------
10-Sep-82 16:10:12-PDT,748;000000000001
Date: 10 Sep 1982 1606-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: complaint
To: PSL at HP-HULK
cc: AS at HP-HULK

The manual states that (APPLY x (LIST a b c...)) is compiled in such a way that
the list (LIST a b c ...) is not actually constructed.  This is a very useful
optimization that I rely upon to make message passing efficient in my OBJECTS
package.  However, I was recently surprised to discover that the optimization
is not performed if there are six or more elements in the list.  I surmise that
this is somehow related to the number of real (as opposed to virtual) registers
in the DEC-20 implementation, but don't see any reason why this should prevent
the optimization from being carried out.  What gives?
-------
10-Sep-82 16:25:33-PDT,351;000000000001
Mail-From: BENSON created at 10-Sep-82 16:20:11
Date: 10 Sep 1982 1620-PDT
From: Eric Benson <BENSON at HP-HULK>
Subject: Re: complaint
To: AS at HP-HULK, PSL at HP-HULK
In-Reply-To: Your message of 10-Sep-82 1610-PDT

It's a nasty interaction between optimized compilation of LIST and
optimized compilation of APPLY.  I can fix it.
-------
11-Sep-82 11:00:18-PDT,242;000000000001
Mail-From: LANAM created at 11-Sep-82 10:57:56
Date: 11 Sep 1982 1057-PDT
From: douglas <LANAM at HP-HULK>
To: psl at HP-HULK


how do I convert "23" or |23| into 23 in psl?
I need to be able to do this.
	thanks,
		douglas
-------
12-Sep-82 10:28:05-PDT,361;000000000000
Mail-From: LANAM created at 12-Sep-82 10:24:22
Date: 12 Sep 1982 1024-PDT
From: douglas <LANAM at HP-HULK>
Subject: what are the strange numbers after error. ex: {99}.
To: psl at HP-HULK

Do they have a meaning? If so, can that be printed instead?
If it is just an internal meaning or little help to the user, could
they be removed?
	douglas
-------
13-Sep-82 12:50:42-PDT,194;000000000001
Date: 13 Sep 1982 1249-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: bug in COMMON.SL
To: PSL at HP-HULK

Make-String in compiled form creates a string with 1 too many elements.
-------
16-Sep-82 11:42:52-PDT,708;000000000001
Date: 16 Sep 1982 1141-PDT
From: Kendzierski at HP-HULK (Nancy)
Subject: bug in UNION clause of FOR
To: psl at HP-HULK

  The manual states that "(UNION EXP) is similar to (COLLECT EXP), but
only adds an element to the list if it is not equal to anything already
there."  However, I get the following results with COLLECT and UNION:

-----------------------------
(for (from i 1 4)
  (collect (cond ((= i 1) 1)
		 ((= i 2) 1)
		 ((= i 3) 3)
		 ((= i 4) 3))
	   ))

Returned:  (1 1 3 3)
-----------------------------
(for (from i 1 4)
  (union (cond ((= i 1) 1)
	       ((= i 2) 1)
	       ((= i 3) 3)
	       ((= i 4) 3))
	 ))

Returned:  3
-----------------------------
-------
16-Sep-82 11:49:09-PDT,240;000000000000
Date: 16 Sep 1982 1149-PDT
From: Cris Perdue <Perdue>
Subject: Re: bug in UNION clause of FOR
To: Kendzierski
In-Reply-To: Your message of 16-Sep-82 1142-PDT

Actually, UNION is similar to JOIN rather than COLLECT.  Thanks.
-------
17-Sep-82 02:47:09-PDT,1466;000000000000
Mail-From: LANAM created at 17-Sep-82 02:46:17
Date: 17 Sep 1982 0246-PDT
From: douglas <LANAM at HP-HULK>
Subject: proposal for inum/wnum arithmetic.
To: benson at HP-HULK
cc: psl at HP-HULK, rosENBERG at HP-HULK, lanam at HP-HULK

I have thought of a reason for having both i and w commands.
I think the w should be what both are now (just do the machine
operation and dont worry about tags).
But the i commands (iplus, ishift, ilor, etc.) could take their
arguments make sure they are working on a full word (either
go down the pointer to the integer object or move the immediate
number into a full word (or register), play with it there, then
if the number if to be passed to another procedure or used outside
the context of the i num arithmetic functions, to be send to
a function that would convert the word back to psl format.
If small, convert to immediate format, if big, return the pointer
to the object.  This way I could have access to a full word
on any machine, and be able to produce efficient open code,
and not have to worry about the psl tag bits.

The proposal would be if the system sees
(ilor (ishift x n) (iland a b)), that x, n, a, and b would be converted
first, then the operations done, and then the one result would be 
converted back.  No type checking would be done (if it is an immediate
number, the pointer would be followed and its location used, for 
efficiency.).

How does this idea sound?

-------
17-Sep-82 02:57:07-PDT,1143;000000000000
Mail-From: LANAM created at 17-Sep-82 02:52:52
Date: 17 Sep 1982 0252-PDT
From: douglas <LANAM at HP-HULK>
Subject: compiler conversions to apply.
To: benson at HP-HULK, psl at HP-HULK
cc: ROSENBERG at HP-HULK

In the interpreter, if you have
(x y z) and x is a local variable and a function, the function x gets
evaluated.
In the compiler, it produces code that causes x to be evaluated first.

(in the case of
	(de x (list) (list list)) , the compiler goes into an endless
loop trying to perform this conversion for no apparent reason (it endlessly
prints error messages.))

I would like the compiler to not make this optimization, since I think
this is why apply is provided in the first place.  Also it makes it
hard to test code interpretively and then easily compile it.
Finally, alot of old frl code that I wish to bring up has this style
in it (frame is used as an argument and a function name in many
places, along with rule, and domain).  
If it isn't possible to remove it, is it possible to have a flag that
when set or unset causes the system not to do such an optimization?
	thanks,
		douglas
-------
17-Sep-82 09:57:05-PDT,749;000000000000
Mail-From: AS created at 17-Sep-82 09:54:27
Date: 17 Sep 1982 0954-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: Complaint
To: PSL at HP-HULK
cc: AS at HP-HULK

If I forget the ending " on a string in a file, then I get one message
"string continued over EOL" for every succeeding line in the file
when the file is read in.  There should be only one message given.
Furthermore, if you believe that multi-line strings are bad (which I
do), then you should probably generate an Error so that you don't
read the remainder of the file in "reverse polarity" (in terms of
what is inside vs. outside of string literals).
(Manual note: I couldn't find anything in my manual that addresses
the issue of multi-line string literals.)
-------
17-Sep-82 10:17:05-PDT,301;000000000000
Mail-From: PERDUE created at 17-Sep-82 10:15:26
Date: 17 Sep 1982 1015-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: Re: compiler conversions to apply.
To: LANAM at HP-HULK
cc: psl at HP-HULK
In-Reply-To: Your message of 17-Sep-82 0252-PDT

We already had a discussion of this.
-------
17-Sep-82 11:17:03-PDT,560;000000000000
Mail-From: AS created at 17-Sep-82 11:14:26
Date: 17 Sep 1982 1114-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: Compiler Error Message
To: PSL at HP-HULK
cc: AS at HP-HULK

What does the message "($FLUID FOO) not compiled" mean?  It sounds
like the compiler has broken or something, although the program
seems to work.  Furthermore, why shouldn't it be compiled?
Did the compiler run out of registers or something?
Suggested fix: either fix the compiler to compile it, or change
the error message to be more informative to naive users.
-------
17-Sep-82 11:42:00-PDT,1150;000000000000
Mail-From: AS created at 17-Sep-82 11:40:31
Date: 17 Sep 1982 1140-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: PSL cleanup
To: PSL at HP-HULK
cc: AS at HP-HULK, Griss at HP-HULK

As part of the current effort to "clean up" PSL, I would like to
suggest that an effort be made to reduce or eliminate the use
of fluid variables as "optional" or "implied" arguments, by defining
new functions with explicit arguments.  For example, instead of
having SpecialReadFunction*, SpecialWriteFunction*, and SpecialCloseFunction*,
there should be an additional function OpenSpecial that takes four
arguments, the filename, and the three functions.  Another example
is DumpFileName*: currently there is no way to save a PSL that does
not have DumpFileName* bound to the name of the file it was dumped
to.  In the case of "system" programs, the default dump file should
probably be "PSL.EXE" (i.e., something that would write in the
user's directory).  There should be a variant of DumpLisp that
takes the filename as an argument (and does NOT bind DumpFileName*).
These are the two examples that come to mind, there may be others.
-------
17-Sep-82 15:27:23-PDT,488;000000000000
Mail-From: BENSON created at 17-Sep-82 15:25:21
Date: 17 Sep 1982 1525-PDT
From: Eric Benson <BENSON at HP-HULK>
Subject: Re: bug in UNION clause of FOR
To: Kendzierski at HP-HULK, psl at HP-HULK
In-Reply-To: Your message of 16-Sep-82 1142-PDT

The bug here is in the manual, not in FOR.  It should refer to the
ADJOIN clause, not the UNION clause. UNION expects each expression to
be a list, then they are combined using UNION.  Actually, UNION is
analogous to JOIN.
-------
18-Sep-82 15:54:54-PDT,218;000000000000
Mail-From: LANAM created at 18-Sep-82 15:54:10
Date: 18 Sep 1982 1554-PDT
From: douglas <LANAM at HP-HULK>
Subject: what does #<Code:0> mean?
To: psl at HP-HULK

Why is this the return value of faslin?
-------
20-Sep-82 08:59:15-PDT,233;000000000000
Mail-From: GRISS created at 20-Sep-82 08:56:08
Date: 20 Sep 1982 0856-PDT
From: GRISS at HP-HULK
Subject: Re: PSL cleanup
To: AS at HP-HULK, PSL at HP-HULK
In-Reply-To: Your message of 17-Sep-82 1140-PDT


I agree.
-------
20-Sep-82 09:09:15-PDT,509;000000000000
Mail-From: BENSON created at 20-Sep-82 09:06:06
Date: 17 Sep 1982 1717-PDT
From: PAULSON
Subject: Bug reports
To: BENSON
Remailed-date: 20 Sep 1982 0906-PDT
Remailed-from: Eric Benson <BENSON at HP-HULK>
Remailed-to: psl at HP-HULK

Two problems:
  (1) Read macros are apparently not attached to read tables.  Therefore
a read macro for one read table may interfere with other read tables,
including the system read table.  
  (2) the function BUG bombs on directory access privileges.
-------
20-Sep-82 10:44:18-PDT,869;000000000000
Mail-From: AS created at 20-Sep-82 10:43:11
Date: 20 Sep 1982 1043-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: Complaint
To: PSL at HP-HULK
cc: AS at HP-HULK

I have found when writing functions designed to "replace" MAIN, that it
is necessary for those functions to initialize the variables
CurrentReadMacroIndicator* and CurrentScanTable*, otherwise after a
SaveSystem when the program comes up, the scan table will be in a
very strange state.  I believe that this initialization should be
performed by a "pre-main" procedure and that user-written "main"
procedures should be spared these details, which tend to be system-dependent.
Your source code for Main claims "Redefine this function to call whatever
top loop is desired."  I agree, except that "this function" should be
one that does nothing except invoke the "standard" top loop.
-------
20-Sep-82 11:09:20-PDT,359;000000000000
Mail-From: AS created at 20-Sep-82 11:07:38
Date: 20 Sep 1982 1107-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: Complaint
To: PSL at HP-HULK
cc: AS at HP-HULK

When compiling a file, extra right parens should produce
a warning message, as (in my case) they often are the result
of a paren mismatch in the middle of a function definition.
-------
20-Sep-82 15:52:33-PDT,307;000000000000
Mail-From: LANAM created at 20-Sep-82 15:50:44
Date: 20 Sep 1982 1550-PDT
From: douglas <LANAM at HP-HULK>
Subject: bug in scanner
To: psl at HP-HULK

1.2xa is read as two tokens 1.2 and xa.
1.2ea gives a error message that the exponent is missing.

same with 1.2x-a and 1.2e-a
	douglas
-------
20-Sep-82 15:52:44-PDT,272;000000000000
Mail-From: LANAM created at 20-Sep-82 15:51:29
Date: 20 Sep 1982 1551-PDT
From: douglas <LANAM at HP-HULK>
Subject: continued bug in psl scanner.
To: psl at HP-HULK

1xa is two atoms 1 and xa.
1ea says that the exponent in the float is missing.
	douglas
-------
21-Sep-82 09:46:42-PDT,275;000000000000
Mail-From: LANAM created at 21-Sep-82 09:45:48
Date: 21 Sep 1982 0945-PDT
From: douglas <LANAM at HP-HULK>
Subject: does the compiler have to complain about too many )'s?
To: psl at HP-HULK

Currently it complains and breaks.  It would be nicer if it didn't.
-------
21-Sep-82 10:26:32-PDT,540;000000000000
Mail-From: AS created at 21-Sep-82 10:24:22
Date: 21 Sep 1982 1024-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: Re: does the compiler have to complain about too many )'s?
To: LANAM at HP-HULK
cc: psl at HP-HULK
In-Reply-To: Your message of 21-Sep-82 0945-PDT

I think its important that the compiler complain about extra )'s.
I have been screwed a number of times because I had mismatched
parens in the middle of a function but no one told me.  It's not
necessary that it break, however.  Is that what you object to?
-------
21-Sep-82 10:36:37-PDT,508;000000000000
Mail-From: LANAM created at 21-Sep-82 10:31:52
Date: 21 Sep 1982 1031-PDT
From: douglas <LANAM at HP-HULK>
Subject: Re: does the compiler have to complain about too many )'s?
To: AS at HP-HULK
cc: psl at HP-HULK
In-Reply-To: Your message of 21-Sep-82 1024-PDT

I am getting screwed now, that my files dont compile because
of two many extra parenthesis (they load fine).
The message I can ignore, but I object greatly to the breaking,
(especially when I compile files in batch commands).
-------
22-Sep-82 15:38:39-PDT,256;000000000000
Mail-From: LANAM created at 22-Sep-82 15:34:38
Date: 22 Sep 1982 1534-PDT
From: douglas <LANAM at HP-HULK>
Subject: bug in do
To: psl at HP-HULK

do still returns t when there are no clauses after the test.
the manual says it returns nil.
-------
22-Sep-82 15:44:02-PDT,306;000000000000
Mail-From: BENSON created at 22-Sep-82 15:39:55
Date: 22 Sep 1982 1539-PDT
From: Eric Benson <BENSON at HP-HULK>
Subject: Re: bug in do
To: LANAM at HP-HULK
cc: psl at HP-HULK
In-Reply-To: Your message of 22-Sep-82 1534-PDT

I fixed the source but haven't rebuilt yet.  I'll do that now.
-------
22-Sep-82 15:58:26-PDT,297;000000000000
Mail-From: BENSON created at 22-Sep-82 15:56:23
Date: 22 Sep 1982 1556-PDT
From: Eric Benson <BENSON at HP-HULK>
Subject: Re: bug in do
To: LANAM at HP-HULK
cc: psl at HP-HULK
In-Reply-To: Your message of 22-Sep-82 1539-PDT

USEFUL has been rebuilt and presumably DO is correct.
-------
23-Sep-82 15:30:17-PDT,439;000000000000
Mail-From: LANAM created at 23-Sep-82 15:26:13
Date: 23 Sep 1982 1526-PDT
From: douglas <LANAM at HP-HULK>
Subject: bug in backtrace.
To: psl at HP-HULK

I found if you have

(x (y (z a))) and you get an error evaluating (z a), you might find x and
y on the backtrace stack even though you haven't executed it yet.
Worse, if you trace y, y will never say it is entered but will be on 
the backtrace stack.  
	douglas
-------
24-Sep-82 03:54:43-PDT,394;000000000000
Mail-From: LANAM created at 24-Sep-82 03:52:46
Date: 24 Sep 1982 0352-PDT
From: douglas <LANAM at HP-HULK>
Subject: other thing different about bare-psl.
To: psl at HP-HULK

It no longer tells the operating system that the process should be
kept when you exit and run another process.  When you do that,
the fork disappears.  Previously the fork use to stay around.
	douglas
-------
27-Sep-82 12:00:02-PDT,249;000000000000
Date: 27 Sep 1982 03:54:51-PDT
From: douglas at HP-Hewey
To: psl@hulk
Subject: bugs in vax version of psl

% ~psl/bin/psl
PSL 3.0, 22-Sep-82
1 lisp> (load nstruct)
***** Segmentation violation {99}
Break loop
2 lisp break>> q

	douglas
27-Sep-82 12:00:03-PDT,207;000000000000
Date: 27 Sep 1982 03:57:05-PDT
From: douglas at HP-Hewey
To: psl@hulk
Subject: vax version and prettyprint

The module prettyprint does not exist on the vax 
(only the older module pretty).
	douglas
27-Sep-82 12:00:04-PDT,339;000000000000
Date: 27 Sep 1982 04:26:52-PDT
From: douglas at HP-Hewey
To: psl@hulk
Subject: faslin on vax psl.

If you say
(faslout "filename")
define some functions here.
(faslend)

and do (faslin "filename.b") in either this psl or a new copy,
you will get a segmentation violation in the new version in
~psl/new-dist/bare-psl
	douglas
27-Sep-82 12:00:05-PDT,458;000000000000
Mail-From: FILMAN created at 24-Sep-82 14:20:40
Date: 24 Sep 1982 1420-PDT
From: FILMAN at HP-HULK
Subject: page and section numbers
To: psl at HP-HULK

I find confusing the fact that (in the PSL manual) page and section numbers
are annotated the same way.  When the index refers to 8.5, I don't know
whether to rush off to section 8.5 (wrong) or page 8.5 .  How about 8.5 for
sections and 8-5 for pages, or something like that?
					Bob
-------
27-Sep-82 12:00:06-PDT,308;000000000000
Mail-From: AS created at 27-Sep-82 09:02:49
Date: 27 Sep 1982 0902-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: Bug or documentation error
To: PSL at HP-HULK
cc: AS at HP-HULK

The manual says that ChannelRead will catch $READ$ and return
$EOF$.  This is false; only Read does the catch.
-------
27-Sep-82 12:00:08-PDT,422;000000000000
Mail-From: LANAM created at 27-Sep-82 04:33:32
Date: 27 Sep 1982 0433-PDT
From: douglas <LANAM at HP-HULK>
Subject: speed of psl
To: ROSENBERG at HP-HULK
cc: psl at HP-HULK

I am finding psl on the vax to be much slower than psl on the 20.
Is this true?  Is there any reason for this?
(Things are noticiable a factor of 4 slower with equivalent
load averages - but I did not do any timings).
	douglas
-------
27-Sep-82 12:00:09-PDT,361;000000000001
Mail-From: PERDUE created at 27-Sep-82 11:27:15
Date: 27 Sep 1982 1127-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: EOF handling
To: psl at HP-HULK

There appears to be no documentation in the reference manual
concerning end of file handling, except for the case of READ.
It appears to be undocumented for ChannelReadChar in particular.
-------
27-Sep-82 13:04:59-PDT,302;000000000001
Mail-From: AS created at 27-Sep-82 13:01:31
Date: 27 Sep 1982 1301-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: Complaint
To: PSL at HP-HULK
cc: AS at HP-HULK

The error "Undefined function FOO called from compiled code" should
(i.e., ought to be, for the user's sake) continuable.
-------
28-Sep-82 09:13:55-PDT,420;000000000001
Mail-From: BENSON created at 28-Sep-82 09:09:49
Date: 28 Sep 1982 0909-PDT
From: Eric Benson <BENSON at HP-HULK>
Subject: Re: Complaint
To: psl at HP-HULK
In-Reply-To: Your message of 27-Sep-82 1301-PDT

Yes, that would be one benefit of loading a register with the number of
arguments being passed to a function.  The problem now is not knowing
how many arguments to put in the list to be evaluated.
-------
28-Sep-82 11:05:36-PDT,432;000000000001
Mail-From: PERDUE created at 28-Sep-82 11:01:15
Date: 28 Sep 1982 1101-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: Documentation update for CopyStringToFrom
To: psl at HP-HULK

Copy all characters from OLD into NEW.  This operation is destructive.
If the lengths of OLD and NEW differ, only the lesser number of
characters is copied.  If NEW is longer than OLD, the part not
copied into is left unchanged.
-------
28-Sep-82 11:20:36-PDT,441;000000000001
Mail-From: AS created at 28-Sep-82 11:19:30
Date: 28 Sep 1982 1119-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: RETURN complaint
To: PSL at HP-HULK
cc: AS at HP-HULK

The PSL compiler now produces an error message if it
encounters a RETURN with no arguments.  This is fine.
However, it still generates an invocation of "NIL".
It should be possible to avoid generating garbage code
when there are errors in the source.
-------
28-Sep-82 13:55:41-PDT,572;000000000001
Mail-From: PERDUE created at 28-Sep-82 13:50:35
Date: 28 Sep 1982 1350-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: CompileTime and DskIn
To: psl at HP-HULK

(CompileTime (dskin "blah.sl")) has the effect of treating the
contents of blah.sl as though they were textually embedded in
the file with the CompileTime form.  (CompileTime (load blah))
on the other hand causes the definitions in blah.b to be made
available at compile time.  Even if there is a text file blah.lap
rather than binary blah.b, "load" seems to only load the
definitions.
-------
28-Sep-82 14:00:38-PDT,519;000000000001
Mail-From: PERDUE created at 28-Sep-82 13:59:41
Date: 28 Sep 1982 1359-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: CompileTime, Load, DskIn
To: psl at HP-HULK

Hmm.  It seems if I put (CompileTime (load foo)) into a source
file and compile the source file, and if foo.lap (another source
file) exists rather than foo.b, then the contents of foo.lap
are effectively included in the source file I am trying to compile.
This is a difference in behavior between compiled and non-compiled
files.
-------
28-Sep-82 17:00:39-PDT,171;000000000001
Mail-From: YDUJ created at 28-Sep-82 16:59:53
Date: 28 Sep 1982 1659-PDT
From: yduJ at HP-HULK (Judy Anderson)
Subject: testing 1 2 3
To: psl at HP-HULK


-------
28-Sep-82 17:50:14-PDT,3097;000000000001
Date: 28 Sep 1982 1750-PDT
From: Alan Snyder <AS>
Subject: new PSL!!!!
To: PSL-News: ;, PSL-Users: ;
cc: AS

Important Change to PSL!

We have installed a new version of PSL on HULK.  It contains a number of
significant changes which are described here.  In addition, you must change
your LOGIN.CMD file to TAKE PSL:LOGICAL-NAMES.CMD instead of
<PSL>LOGICAL-NAMES.CMD.  The <PSL> directory will disappear soon, so make this
change right away!

[These changes, except for NMODE, will appear on THOR and HEWEY shortly.  There
are no immediate plans to move NMODE to the Vax.]

Summary of changes:

* If you run "PSL", you will now get a PSL that contains the NMODE editor,
which is a replacement for EMODE.  PSL will start up in the editor, instead of
the PSL listen loop.  You can easily get back to the PSL listen loop from NMODE
by typing C-] L.  NMODE is a decent subset of EMACS, so if you are familiar
with EMACS you should be able to use NMODE without too much difficulty.  If you
are familiar with EMODE, you should read the file PSL:NMODE-GUIDE.TXT, which
explains the differences between NMODE and EMODE.  A printed copy of this memo,
including the NMODE command chart, is available in the documentation area next
to Helen Asakawa's office.

* The "PSL" program (what you get when you say "PSL" to EXEC) no longer
contains the PSL compiler.  Instead, there is a separate program for compiling
(Lisp) files.  To compile a file "FOO.SL", give the command "PSLCOMP FOO" to
EXEC.  PSLCOMP will produce a binary file "FOO.B" that can then be LOADed or
FASLINed.  To run the compiler interactively, just say "PSLCOMP" to EXEC.

* The PSL directories that contain the source and binaries for all PSL modules
have been moved to a private structure called SS: (the directories are now
SS:<PSL*>).  The old PSL directories (PS:<PSL*>) will disappear soon.  In
addition, the new directories have been reorganized somewhat to better reflect
the structure of the implementation.  The file PSL:-THIS-.DIRECTORY contains a
brief description of the new structure.  If you have used logical names to
refer to PSL directories, then this change should not cause too many problems.

* A number of small bug fixes and improvements have been made.  The most
notable improvements are (1) a more readable backtrace, (2) a better
prettyprinter, and (3) the definition of a "complete" set of I/O functions
taking an explicit channel argument (these functions all have names like
ChannelTerpri, where Terpri is an example of an I/O function that uses the
default I/O channels).  The file PSL:BUG-FIX.LOG contains an exhaustive listing
of the recent changes.

The documentation has been updated to reflect these changes.  The following new
or revised documents are available in the documentation area next to Helen
Asakawa's office:

	Notes on PSL at HP
	DEC-20 PSL New Users' Guide
	NMODE for EMODE Users
	How to customize NMODE

We have made "documentation packets" containing copies of these documents.
Users are encouraged to pick up a copy!
-------
28-Sep-82 20:42:48-PDT,488;000000000001
Mail-From: LANAM created at 28-Sep-82 20:39:17
Date: 28 Sep 1982 2039-PDT
From: douglas <LANAM at HP-HULK>
Subject: new psl
To: as at HP-HULK, psl at HP-HULK

I strongly object to psl starting out in the editor.   Now if you had an init
file, you would give people a choice.  Starting in the editor makes it
harder to run shell scripts with do or submit with psl.

Why wasn't any USERS asked if they would like or want this change?
When was this discussed?
	douglas
-------
28-Sep-82 20:57:45-PDT,504;000000000001
Mail-From: LANAM created at 28-Sep-82 20:53:45
Date: 28 Sep 1982 2053-PDT
From: douglas <LANAM at HP-HULK>
Subject: new psl and reset.
To: as at HP-HULK, psl at HP-HULK

do (reset) and now you get into the editor.
I object strongly to this.  This is not lisp.
Why not have a program nmode and a program psl?
Or at least have an init file that allows me to
start up in lisp if I like.
	douglas
ps: how do I change the prompt in psl?? 
	If i set promptstring*, the system resets it.
-------
28-Sep-82 21:02:45-PDT,704;000000000001
Mail-From: LANAM created at 28-Sep-82 20:59:41
Date: 28 Sep 1982 2059-PDT
From: douglas <LANAM at HP-HULK>
Subject: close all parenthsis to a particular level.
To: psl at HP-HULK

How about adding the ability of ] to close all parenthesis (as in franz,
maclisp, ucilisp).  It would be nice if it could stop at [ (as in franz,
maclisp, ucilisp).  But I realize you use [] for reading arrayes, thus
maybe you could use {} for this type of bracketing.  It would be nice
to type } to close an expression instead of )))))) (and have to count
them also, or wait for the editor to match them flipping the screen
at 1200 baud (That process is a pain to go through in the editor).
	douglas
-------
29-Sep-82 09:26:46-PDT,257;000000000001
Mail-From: PERDUE created at 29-Sep-82 09:23:08
Date: 29 Sep 1982 0923-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: Testing
To: psl at HP-HULK

Is this better?  I changed the distribution list to mention
ss:<psl>bug-mail.txt by name.
-------
29-Sep-82 09:56:46-PDT,254;000000000001
Mail-From: AS created at 29-Sep-82 09:53:14
Date: 29 Sep 1982 0953-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: testing
To: PSL at HP-HULK
cc: AS at HP-HULK

Perhaps this will work.  I changed the file protection
on PSL:BUG-MAIL.TXT.
-------
29-Sep-82 10:01:44-PDT,197;000000000001
Mail-From: AS created at 29-Sep-82 09:58:22
Date: 29 Sep 1982 0958-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: testing
To: PSL at HP-HULK
cc: AS at HP-HULK

another test, sorry
-------
29-Sep-82 10:01:48-PDT,456;000000000001
Mail-From: LANAM created at 29-Sep-82 10:01:01
Date: 29 Sep 1982 1001-PDT
From: douglas <LANAM at HP-HULK>
Subject: bug in nmode
To: as at HP-HULK, psl at HP-HULK

If you type
(expression) 
cntrl-] E.

where the cntrl-] E is on the start of a new line, 
you get
Exiting NMODE Lisp
End of File read!,

shouldn't it execute the last expression?  Why should typing a carriage
return before the cntrl-] E make a difference?
	douglas
-------
29-Sep-82 10:11:45-PDT,175;000000000001
Date: 29 Sep 1982 1010-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: more testing
To: PSL at HP-HULK
cc: AS at HP-HULK

sorry, folks, but it still don't work
-------
29-Sep-82 10:41:43-PDT,197;000000000001
Mail-From: ELDREDGE created at 29-Sep-82 10:41:35
Date: 29 Sep 1982 1041-PDT
From: Tim Eldredge <ELDREDGE at HP-HULK>
Subject: test
To: psl at HP-HULK

please igonore this message.
-------
29-Sep-82 10:56:43-PDT,350;000000000001
Mail-From: LANAM created at 29-Sep-82 10:55:54
Date: 29 Sep 1982 1055-PDT
From: douglas <LANAM at HP-HULK>
Subject: <psl>bug-mail.txt at HP-HULK
To: psl at HP-HULK


Could someone please correct the mail forwarding of psl that
goes to this file so that one does not get mail back saying
the file does not exist?  thanks,
	douglas
-------
29-Sep-82 11:36:44-PDT,284;000000000001
Mail-From: LANAM created at 29-Sep-82 11:34:48
Date: 29 Sep 1982 1134-PDT
From: douglas <LANAM at HP-HULK>
Subject: upon exit of psl (or interrupt with ^c).
To: psl at HP-HULK

Can the terminal keys be restored upon exit of psl-nmode
(or interrupt with ^c)?
	dougla
-------
29-Sep-82 11:51:45-PDT,321;000000000001
Mail-From: LANAM created at 29-Sep-82 11:47:14
Date: 29 Sep 1982 1147-PDT
From: douglas <LANAM at HP-HULK>
Subject: add to things psl should do when ^c is typed.
To: psl at HP-HULK

Add to things psl should do when ^c is typed:
restore cntl-s.  (This should be possible since emacs does this).
	douglas
-------
29-Sep-82 14:21:10-PDT,90;000000000001
Date: 29 Sep 1982 1421-PDT
From: Cris Perdue <Perdue>
Subject: testing

foo
-------
30-Sep-82 09:01:44-PDT,149;000000000001
Date: 30 Sep 1982 0901-PDT
From: Tim Eldredge <ELDREDGE at HP-THOR>
Subject: testing
To: psl at HP-HULK

This message came from THOR.
-------
30-Sep-82 09:15:05-PDT,113;000000000001
Date: 30 Sep 1982 09:11:14-PDT
From: twe at HP-Hewey
To: psl@hulk
Subject: testing

This came from the vax
30-Sep-82 09:15:11-PDT,196;000000000001
Mail-From: ELDREDGE created at 30-Sep-82 09:15:00
Date: 30 Sep 1982 0915-PDT
From: Tim Eldredge <ELDREDGE at HP-HULK>
Subject: testing
To: psl at HP-HULK

This is yet another test
-------
30-Sep-82 09:44:14-PDT,179;000000000000
Date: 30 Sep 1982 0940-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: test
To: PSL at HP-HULK
cc: AS at HP-HULK

Tim now says it will work "for sure".
Let's see!
-------
30-Sep-82 11:14:01-PDT,639;000000000000
Mail-From: AS created at 30-Sep-82 11:09:01
Date: 30 Sep 1982 1109-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: Request
To: PSL at HP-HULK
cc: AS at HP-HULK

I would like to reiterate a request made previously, I believe, by
Doug to get rid of the "FOO already loaded" messages.  If you
feel strongly that some sort of warning is needed when people
type (LOAD FOO) by hand, then I would suggest having LOAD return
a string that would be printed by the Read-Eval-Print loop.
I don't think there is any need to print these messages when
the LOAD is contained in a file (either source or object) that
is being read.
-------
30-Sep-82 19:33:45-PDT,423;000000000000
Date: 30 Sep 1982 19:15:53-PDT
From: douglas at HP-Hewey
To: benson@hulk, psl@hulk
Subject: problems with faslin and psl on the vax.

I still have the problem with any file I create with (faslout) - (faslend).
I can not load the object file in without getting in to a Break loop
because of some segmentation violation or bus error.
There are no calls to load or faslin in my files any more (on the vax).
	douglas
 1-Oct-82 11:24:42-PDT,333;000000000000
Mail-From: AS created at  1-Oct-82 11:23:53
Date:  1 Oct 1982 1123-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: Printing
To: PSL at HP-HULK
cc: AS at HP-HULK

The atom - prints as !- in Lisp mode.
The atom + prints as !+ in Lisp mode.
I believe this is a mistake.
The printer should not insert unnecessary !'s.
-------
 2-Oct-82 12:47:59-PDT,613;000000000000
Mail-From: LANAM created at  2-Oct-82 12:46:12
Date:  2 Oct 1982 1246-PDT
From: douglas <LANAM at HP-HULK>
Subject: please do not have psl come up in the editor.
To: psl at HP-HULK

This is not a desired start up position.
1) Reading logs of background jobs is very difficult, if you can get
them to work at all.
2) Nmode does not work on a lot of terminals.  (including the ever
popular chipmunk.
3) The first thing I want to do in a lisp is dskin or fasl in my
files, not edit a command to do this.
4) It is even difficult to run do's with this type of mode.
	(shell scripts).
	douglas
-------
 2-Oct-82 12:52:58-PDT,491;000000000000
Mail-From: LANAM created at  2-Oct-82 12:48:03
Date:  2 Oct 1982 1248-PDT
From: douglas <LANAM at HP-HULK>
Subject: princ does too much.
To: psl at HP-HULK

Princ should not check the position of the line to determine
whether or not the atom will fit.  There should be a higher
level function with that property.  I thought princ should
just print the atom.  (or is there a lower level princ with
out that check and possibly added carriage return not printed).
	douglas
-------
 2-Oct-82 14:17:45-PDT,646;000000000000
Mail-From: LANAM created at  2-Oct-82 14:15:18
Date:  2 Oct 1982 1415-PDT
From: douglas <LANAM at HP-HULK>
Subject: suggestion about printing of error messages in compiler.
To: psl at HP-HULK

Could the error messages that are longer than one line, be indented about 1 tab
stop (5-8 spaces on the  2nd and succeeding lines so that they stand out and
are easier to distinguish and read).  An example would be
***  Car in (car (foo 'foo1 (foo2 (foo3 'ffo4 (foo4 'xjks) 'sdjkl) (append (foo2 'x) (apply 'foo3 '4))))), not used, therefore not compiled.
Due to macros, a number of these come up in my program.
	thanks,
		douglas
-------
 5-Oct-82 15:11:47-PDT,314;000000000000
Mail-From: PERDUE created at  5-Oct-82 15:11:06
Date:  5 Oct 1982 1511-PDT
From: Cris Perdue <Perdue at HP-HULK>
Subject: Documentation for REPEAT
To: psl at HP-HULK

Documentation for REPEAT is still incorrect in the latest
PSL reference manual.  The syntax is:
Repeat ([S:form], E:form): nil

-------
 5-Oct-82 16:31:29-PDT,659;000000000000
Date:  5 Oct 1982 1628-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: PSL compiler bug
To: PSL at HP-HULK

The PSL compiler still has a bug related to fast vector access:

(de foo (v)
  (cons
   (+ (igetv v 0) (igetv v 1))
   (+ (igetv v 2) (igetv v 3))
   ))
FOO
(setf v [1 2 3 4])
[1 2 3 4]
(foo v)
(3 . 7)
(compile '(foo))
*** (FOO): base 460253, length 6 words
NIL
(foo v)
(0 . 7)

(*ENTRY FOO EXPR 1)
(*ALLOC 0)
(*MOVE (MEMORY (REG 1) (WCONST 4)) (REG 2))
(*WPLUS2 (REG 2) (MEMORY (REG 1) (WCONST 3)))
(*MOVE (MEMORY (REG 1) (WCONST 1)) (REG 1))
(*WPLUS2 (REG 1) (MEMORY (REG 1) (WCONST 2)))
(*LINKE 0 CONS EXPR 2)
-------
 5-Oct-82 17:51:56-PDT,279;000000000000
Mail-From: FILMAN created at  5-Oct-82 17:47:25
Date:  5 Oct 1982 1747-PDT
From: FILMAN at HP-HULK
Subject: apply and list
To: psl at HP-HULK

Apply doesn't seem to work with list.  I.e.:

(apply 'list '(3 4 5)) ==> nil

Is this a feature or a bug?
					Bob
-------
 6-Oct-82 09:19:11-PDT,303;000000000000
Mail-From: BENSON created at  6-Oct-82 09:16:25
Date:  6 Oct 1982 0916-PDT
From: Eric Benson <BENSON at HP-HULK>
Subject: Re: apply and list
To: FILMAN at HP-HULK
cc: psl at HP-HULK
In-Reply-To: Your message of 5-Oct-82 1747-PDT

Only EXPRs can be APPLYed correctly.  LIST is a FEXPR.
-------
 6-Oct-82 10:04:09-PDT,521;000000000000
Mail-From: FILMAN created at  6-Oct-82 10:00:11
Date:  6 Oct 1982 1000-PDT
From: FILMAN at HP-HULK
Subject: Re: apply and list
To: BENSON at HP-HULK
cc: psl at HP-HULK
In-Reply-To: Your message of 6-Oct-82 0916-PDT

If only EXPRs can be correctly applied, then you need to fix the 
documentation, where it says:

"We permit macros and fexprs to be applied;"

though the rest of the sentence presents a confusing disclaimer.

In any case, why can FEXPRs and MACROS be correctly applied?
					Bob
-------
 6-Oct-82 10:48:51-PDT,1181;000000000001
Mail-From: BENSON created at  6-Oct-82 10:44:23
Date:  6 Oct 1982 1044-PDT
From: Eric Benson <BENSON at HP-HULK>
Subject: Re: apply and list
To: FILMAN at HP-HULK
cc: psl at HP-HULK
In-Reply-To: Your message of 6-Oct-82 1000-PDT

They can be applied, but the result of Apply(FexprOrMacro, X) is the same as
Apply(cdr getd FexprOrMacro, X).  That means that the code is treated as though
it were an EXPR.  FEXPRs take a single argument, which is a list of unevaluated
parameters.  In the case of EXPRs, Apply(X, Y) is the same as
Eval(cons(X, for each U in Y collect list('QUOTE, U))).  This is not the
case for FEXPRs or macros.  In the case of macros, Apply can be used to
perform macro expansion, i.e.
(apply 'let '((let ((x y)) z))) returns ((lambda (x) z) y).  In the case
of FEXPRs, the list given to APPLY should have one element, which is the
formal parameter to the function, e.g. if x=1, y=2 and z=3, then
(apply 'list '((x y z))) returns (1 2 3).  This type of thing is only
dome in unusual situations, e.g. in Eval.  It is generally not recommended
that macros and fexprs be given to APPLY.  The function which does what
you want is EVAL.
-------
 7-Oct-82 15:18:50-PDT,707;000000000001
Mail-From: AS created at  7-Oct-82 15:17:52
Date:  7 Oct 1982 1517-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: Bug
To: PSL at HP-HULK
cc: AS at HP-HULK

PSL is apparently using a reserved location in an improper way.
The location ".JBSYM" (whatever that is) is supposed to point
to a symbol table, but it apparently does not contain a proper
value, since if you ask EXEC to print out locations in symbolic
mode, the EXEC will blow up trying to do a symbol table lookup.
Please fix this bug.  (I have noticed NDDT get screwed up doing
symbol table lookup also; perhaps this is the cause of that
problem as well.)  (This analysis is based on information provided
by Tim Eldredge.)
-------
 9-Oct-82 12:16:55-PDT,798;000000000001
Mail-From: LANAM created at  9-Oct-82 12:14:25
Date:  9 Oct 1982 1214-PDT
From: douglas <LANAM at HP-HULK>
Subject: terminal interrupt (^B) error
To: benson at HP-HULK, psl at HP-HULK

Similar to the one on the vax, on the 20 it also tries to reexecute previously
typed in expressions.
8 lisp> (show 'thing)

(thing (ako ($if-added (add-instance)) ($if-removed (remove-instance)))
       (instance ($value (request) (domain) (rule))
                 ($if-added (add-ako))
                 ($if-removed (remove-ako)))
       (self ($value (%(fname :frame)))))

nil
Time: 120 ms
9 lisp> *** Break in cleario at 43316
Break loop
***** `show' is an unbound ID
***** Continuation requires a value for `show'
Break loop
thing
Time: 1 ms
12 lisp break>>> ^C

	douglas
-------
15-Oct-82 11:35:28-PDT,282;000000000001
Date: 15 Oct 1982 1131-PDT
From: PERDUE at HP-HULK
Subject: Make-String
To: PSL at HP-HULK

The reference manual claims that the first argument to make-string
is the upper limit for indices into the string, but in fact it
is the number of characters in the string.
-------
18-Oct-82 12:32:59-PDT,1010;000000000001
Mail-From: AS created at 18-Oct-82 12:29:47
Date: 18 Oct 1982 1229-PDT
From: Alan Snyder <AS at HP-HULK>
Subject: compiler bug
To: PSL at HP-HULK

The compiler incorectly compiles the first clause of the COND in the function
below.  It compiles to return M2, rather than M1.

(de foo (i1 i2)
  (let ((m1 (> i1 3)) 
	(m2 (> i2 4))
	)
    (cond ((not (eq m1 m2))
	   m1)
	  (t
	   (+ i1 i2))
	  )))

(*ENTRY FOO EXPR 2)
(*ALLOC 3)
(*MOVE (REG 1) (FRAME 1))
(*MOVE (REG 2) (FRAME 2))
(*MOVE (QUOTE 4) (REG 2))
(*MOVE (FRAME 2) (REG 1))
(*LINK GREATERP EXPR 2)
(*MOVE (REG 1) (FRAME 3)) -- REG 1 contains M2
(*MOVE (QUOTE 3) (REG 2))
(*MOVE (FRAME 1) (REG 1))
(*LINK GREATERP EXPR 2)
(*MOVE (REG 1) (REG 2)) -- REG 1 contains M1
(*MOVE (FRAME 3) (REG 1))
(*JUMPNOTEQ (LABEL G0001) (REG 2) (REG 1))
        (CAME (REG 2) (REG 1))
        (JRST (LABEL G0001))
(*MOVE (FRAME 2) (REG 2))
(*MOVE (FRAME 1) (REG 1))
(*LINKE 3 PLUS2 EXPR 2)
(*LBL (LABEL G0001))
(*EXIT 3)
-------
22-Oct-82 09:42:02-PDT,455;000000000001
Mail-From: LANAM created at 22-Oct-82 09:38:48
Date: 22 Oct 1982 0938-PDT
From: douglas <LANAM at HP-HULK>
Subject: function timings.
To: psl at HP-HULK

Is it possible to make a version of psl that gives me a profile
of all the lisp functions called and how much cpu time was spent
in each. (I would assume since this involves some overhead, it
should not be put in the standard psl).  It would be preferable
to have this on the vax.
-------
27-Oct-82 17:16:40-PDT,335;000000000001
Mail-From: LANAM created at 27-Oct-82 17:16:07
Date: 27 Oct 1982 1716-PDT
From: douglas <LANAM at HP-HULK>
Subject: bug in psl - (tr get)
To: psl at HP-HULK


Do (tr get) in psl, and you get an endless message:
***** Undefined function 'GET' called from compiled code

over and over and over and over ...
	douglas
-------
30-Oct-82 18:51:17-PDT,1012;000000000001
Mail-From: LANAM created at 30-Oct-82 18:49:42
Date: 30 Oct 1982 1849-PDT
From: douglas <LANAM at HP-HULK>
Subject: difference in apply betwen compiled and interpreted code.
To: psl at HP-HULK

Dealing with apply to nexprs.:
18 lisp> (dn nexpr (a) (princ a) (terpri))
NEXPR
19 lisp> (de calling-function (arg) (apply (function nexpr) (list arg))
19 lisp> )
CALLING-FUNCTION
20 lisp> (calling-function 'a)
A
NIL
21 lisp> (calling-function '(a b))
(A B)
NIL
22 lisp> (compile '(calling-function))
*** Function `CALLING-FUNCTION' has been redefined
*** (CALLING-FUNCTION): base 257007, length 3 words
NIL
23 lisp> (calling-function '(a b))
((A B))
NIL
24 lisp> (calling-function 'a)
(A)
NIL
25 lisp> ^C


--------
Note:  This bug does not exist on the vax. On the vax, this function
runs the same interpretively and compiled.  (The interpretive
version on the 20 is the same definition as that on the vax).  This
use to work on the 20 until about 3 weeks ago.
	douglas
-------
 1-Nov-82 15:01:41-PST,352;000000000001
Mail-From: PERDUE created at  1-Nov-82 14:56:40
Date:  1 Nov 1982 1456-PST
From: Cris Perdue <Perdue at HP-HULK>
Subject: APPEND
To: psl at HP-HULK

In PSL the function APPEND now takes exactly 2 arguments.
Could it be extended to take an arbitrary number.  Probably
0 and 1 should also be legitimate numbers of arguments.
What say?
-------
 2-Nov-82 09:05:28-PST,247;000000000001
Mail-From: BENSON created at  2-Nov-82 09:03:58
Date:  2 Nov 1982 0903-PST
From: Eric Benson <BENSON at HP-HULK>
Subject: Re: APPEND
To: Perdue at HP-HULK, psl at HP-HULK
In-Reply-To: Your message of 1-Nov-82 1456-PST

Someday...
-------
10-Nov-82 13:42:47-PST,217;000000000001
Date: 10 Nov 1982 1340-PST
From: AS at HP-HULK
Subject: documentation deficiency
To: PSL at HP-HULK
cc: AS at HP-HULK

The manual says that InternP takes an ID argument.
It also will accept a string.
-------
10-Nov-82 16:27:48-PST,2142;000000000001
Mail-From: LANAM created at 10-Nov-82 16:22:56
Date: 10 Nov 1982 1622-PST
From: douglas <LANAM at HP-HULK>
Subject: new package to time functions.
To: psl at HP-HULK

Package name: time-fnc
To load it, do : (load time-fnc)

Source: pu:time-fnc.sl
Object: pul:time-fnc.b

Purpose: Will record the total time spent from beginning to end in a function 
	 and the number of calls to the function. (Works on all functions,
	 compiled and interpreted).

Side-effect: Over all execution time is slowed down when this information
	is recorded.  Thus functions that are called by a function being
	timed, should not be timed at the same time that the calling
	function is being timed.

Description of the package and how to use it:


Time-fnc.sl : code to time function calls.



Usage:

	do 
	(timef function-name-1 function-name-2 ...)

	Timef is a fexpr.
	It will redefine the functions named so that timing information is
	kept on these functions.  
	This information is kept on the property list of the function name.
	The properties used are `time' and `number-of-calls'.

	(get function-name 'time) gives you the total time in the function.
	(not counting gc time).
	Note, this is the time from entrance to exit.
	The timef function redefines the function with an
	unwind-protect, so calls that are interrupted
	by *throws are counted.

	(get function-name 'number-of-calls) gives you the number of times
	the function is called.

	To stop timing do : 
	(untimef function-name1 ..)
	or do (untimef) for all functions.
	(untimef) is a fexpr.

	To print timing information do 
	(print-time-info function-name-1 function-name-2 ..)

	or do (print-time-info) for timing information on all function names.

	special variables used: 
	*timed-functions* : list of all functions currently being timed.
	*all-timed-functions* : list of all functions ever timed in the
		current session.

	Comment: if tr is called on a called on a function that is already
	being timed, and then untimef is called on the function, the
	function will no longer be traced.

-------

	douglas
-------
10-Nov-82 17:02:48-PST,389;000000000001
Mail-From: LANAM created at 10-Nov-82 17:02:00
Date: 10 Nov 1982 1702-PST
From: douglas <LANAM at HP-HULK>
Subject: new package: time-fnc
To: psl at HP-HULK

The package now subtracts out time spent in timing functions.
Thus one timed function that calls another timed function will get
the correct time (the same as if the called function had not been timed).
	douglas
-------
12-Nov-82 18:23:36-PST,478;000000000001
Mail-From: LANAM created at 12-Nov-82 18:22:33
Date: 12 Nov 1982 1822-PST
From: douglas <LANAM at HP-HULK>
Subject: new prettyprinter
To: benson at HP-HULK
cc: psl at HP-HULK

I have modified pp for frl to handle vectors, and readmacros better.
The new version is in psl syntax and runs in psl, so I have put it
in pul:.
The names of the files are newpp.sl, and newpp.b .

Note: It may still need a little work with lambda, and prog expressions.
	douglas
-------
12-Nov-82 19:28:23-PST,466;000000000001
Date: 12 Nov 1982 19:23:11-PST
From: douglas at HP-Hewey
To: psl@hulk
Subject: printing without carriage returns.

If you do 
(let ()
	(princ 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
	(princ 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb))

The system automatically puts a carriage return between because the
second atom (bbb..), is longer than the space on the line left.
I need to be able to turn this off?  How do I do that?

	douglas
12-Nov-82 19:28:31-PST,223;000000000001
Date: 12 Nov 1982 19:26:06-PST
From: douglas at HP-Hewey
To: psl@hulk
Subject: linelength

Is there a way to turn off automatic line feeds without making the
function (linelength) return some large number?
	douglas
14-Nov-82 09:34:39-PST,279;000000000001
Mail-From: GRISS created at 14-Nov-82 09:33:51
Date: 14 Nov 1982 0933-PST
From: GRISS at HP-HULK
Subject: .B
To: psl at HP-HULK

Pehaps we should cleanup the .B needed/omitted in the FASLOUT and FASLIN
pair. I guess I would make the .B explicit in the FASLOUT ?
-------
15-Nov-82 09:27:28-PST,256;000000000001
Mail-From: BENSON created at 15-Nov-82 09:26:24
Date: 15 Nov 1982 0926-PST
From: Eric Benson <BENSON at HP-HULK>
Subject: Re: .B
To: GRISS at HP-HULK, psl at HP-HULK
In-Reply-To: Your message of 14-Nov-82 0933-PST

Yes, an excellent idea.
-------
15-Nov-82 10:47:24-PST,311;000000000001
Mail-From: PERDUE created at 15-Nov-82 10:44:09
Date: 15 Nov 1982 1044-PST
From: Cris Perdue <Perdue at HP-HULK>
Subject: LispVars in SysLisp code
To: psl at HP-HULK

In the section of the manual on SYSLISP there is really no discussion
of the use of "LispVar".  It only appears in an example.
-------
15-Nov-82 10:52:25-PST,255;000000000001
Mail-From: PERDUE created at 15-Nov-82 10:51:48
Date: 15 Nov 1982 1051-PST
From: Cris Perdue <Perdue at HP-HULK>
Subject: SysLisp FOR loop
To: psl at HP-HULK

There is no discussion in my manual of what can be done in a
SysLisp FOR loop.
-------
15-Nov-82 12:12:31-PST,282;000000000001
Mail-From: PERDUE created at 15-Nov-82 12:09:38
Date: 15 Nov 1982 1209-PST
From: Cris Perdue <Perdue at HP-HULK>
Subject: RLISP (SysLisp?) parser
To: psl at HP-HULK

I had an excess "end;" in a source file and the parser (compiler?)
didn't complain about it.  Boo!
-------
15-Nov-82 23:48:56-PST,389;000000000001
Date: 15 Nov 1982 23:44:12-PST
From: douglas at HP-Hewey
To: psl@hulk
Subject: behaviour in printing with prinlevel.

It appears that the print function used by tr knows about circular lists.
It uses %L1: , etc.  But if you have prinlength or prinlevel set, there
are times that the definition of %L1: is not shown, only references to it
all over the place are printed.
	douglas
16-Nov-82 16:42:20-PST,372;000000000001
Mail-From: PERDUE created at 16-Nov-82 16:41:53
Date: 16 Nov 1982 1641-PST
From: Cris Perdue <Perdue at HP-HULK>
Subject: INDX
To: psl at HP-HULK

Caution: The "indx" function doesn't do the same thing in SysLISP
that it does in regular lisp.  In SysLISP it just does the
"obvious" address arithmetic without accounting for the header
word of a vector.
-------
17-Nov-82 17:44:15-PST,379;000000000001
Mail-From: PERDUE created at 17-Nov-82 17:40:43
Date: 17 Nov 1982 1740-PST
From: Cris Perdue <Perdue at HP-HULK>
Subject: WCONSTs for tags, etc.
To: psl at HP-HULK

Is there a proper way to make sure that various system WCONSTs are
defined with the correct values?  I am thinking particularly of the
constants representing the values of the tags for LISP data.
-------
18-Nov-82 09:58:58-PST,387;000000000001
Date: 18 Nov 1982 0957-PST
From: AS at HP-HULK
Subject: documentation deficiency
To: PSL at HP-HULK
cc: AS at HP-HULK

My manual does not describe the following Printf formats (which are
documented in the code):

  %b - print the specified number of blanks
  %f - start a fresh line if not at the beginning of the line
  %t - print blanks until the specified column
-------
18-Nov-82 20:29:52-PST,158;000000000001
Date: 18 Nov 1982 20:25:01-PST
From: douglas at HP-Hewey
To: psl@hulk
Subject: question

how do I find out how much id space is left?
	thanks,
		Doug
19-Nov-82 11:38:32-PST,789;000000000001
Mail-From: LANAM created at 19-Nov-82 11:38:01
Date: 19 Nov 1982 1138-PST
From: douglas <LANAM at HP-HULK>
Subject: Re: Length of ID free list
To: Perdue at HP-HULK
cc: psl at HP-HULK
In-Reply-To: Your message of 19-Nov-82 1131-PST

I was told they need to write a function.  I am not sure how urgent it is,
as I then to run out at times, but I can recover the space anyways.  It would
tell me wether I should not bother to continue working in the current copy
of psl (for certain long task that generate many id's, and this would be
useful.)

More useful things and much more needed are (on the vax);

Make interrupt (^c) a continuable break.

Make interrupt not reexecute that last thing that was typed into the input
buffer (and already evaled!).
	douglas
-------
19-Nov-82 12:03:31-PST,490;000000000001
Mail-From: PERDUE created at 19-Nov-82 12:00:28
Date: 19 Nov 1982 1200-PST
From: Cris Perdue <Perdue at HP-HULK>
Subject: Fast vector and string operations
To: psl at HP-HULK

The vector and string operations beginning with "i" (igetv, iputv, etc.)
are more or less documented in the reference manual (igets and iputs
were penciled into the original mine was made from).  These are
only available through a library, though, and that fact is not
mentioned in the manual.
-------
20-Nov-82 07:28:39-PST,259;000000000001
Mail-From: GRISS created at 20-Nov-82 07:26:13
Date: 20 Nov 1982 0726-PST
From: GRISS at HP-HULK
Subject: (concat s v)
To: psl at HP-HULK

Error message when trying to concat a string and a vector only refers to one
of the offeding elements.
-------
22-Nov-82 11:03:16-PST,304;000000000001
Mail-From: PERDUE created at 22-Nov-82 10:58:08
Date: 22 Nov 1982 1058-PST
From: Cris Perdue <Perdue at HP-HULK>
Subject: The HCONS package
To: psl at HP-HULK

The HCONS package is documented but only the package itself is
referred to in the index, not any of the functions it provides.
-------
22-Nov-82 14:09:43-PST,189;000000000001
Date: 22 Nov 1982 1405-PST
From: Cris Perdue <Perdue at HP-HULK>
Subject: IF-SYSTEM
To: psl at HP-HULK

IF_SYSTEM is documented as being a CMACRO, but it is really
a macro.
-------
23-Nov-82 10:07:53-PST,460;000000000001
Mail-From: SOREFF created at 23-Nov-82 10:07:12
Date: 23 Nov 1982 1007-PST
From: SOREFF at HP-HULK
Subject: possible bug
To: psl at HP-HULK
cc: soreff at HP-HULK

In the course of debugging a piece of software, I noticed that when
(list2string '(a b . c)) is executed, no error is flagged and [a b]
is returned. Is this an intentional feature? It would seem reasonable 
to treat the argument as being of the wrong type. -Jeff (Soreff@Hulk)
-------
23-Nov-82 10:22:50-PST,348;000000000001
Mail-From: BENSON created at 23-Nov-82 10:21:51
Date: 23 Nov 1982 1021-PST
From: Eric Benson <BENSON at HP-HULK>
Subject: Re: possible bug
To: SOREFF at HP-HULK, psl at HP-HULK
In-Reply-To: Your message of 23-Nov-82 1007-PST

Nearly every program in PSL which deals with lists uses ATOM to test for
end-of-list, rather than NULL.
-------
23-Nov-82 10:27:51-PST,362;000000000001
Mail-From: BENSON created at 23-Nov-82 10:26:56
Date: 23 Nov 1982 1026-PST
From: Eric Benson <BENSON at HP-HULK>
Subject: Re: possible bug
To: SOREFF at HP-HULK, psl at HP-HULK
In-Reply-To: Your message of 23-Nov-82 1021-PST

Of course I meant function, not program.  These could be changed to cause
an error, but I don't think it's important.
-------
23-Nov-82 16:51:38-PST,1406;000000000001
Date: 23 Nov 1982 1651-PST
From: Cris Perdue <Perdue>
Subject: LOAD vs. IMPORTS
To: PSL-Users: ;

This note may be IMPORTANT TO YOU!!

Do your PSL programs use a lot of space?  Do you use the function
LOAD in your source files?  Then you can probably save space
by using IMPORTS instead!

The IMPORTS function is little known, but quite similar in effect
to LOAD.  IMPORTS is mentioned in the reference manual in the same
section, but not described, so here goes:

Call: (imports <files>)

The argument to IMPORTS should evaluate to a list of atoms or
strings which are treated as references to files in the same way
as is done by LOAD.  If not already loaded, those load modules
are loaded.  This is the same behavior as LOAD, but loading
requested by IMPORTS may be delayed until after all the
initializations specified in the source file have been performed.

Note: When compiling a file, code of two sorts is generated: code
for compiled functions (etc.) and code for initialization.
Initialization code includes code to install the definitions of
compiled functions and code to perform any other actions
specified by "top level" expressions in the file.

Allowing delay in the loading specified by IMPORTS makes it
possible to reclaim some space used for the process of loading.
This space is in fact precisely the space occupied by the
initialization code.
-------
24-Nov-82 11:02:25-PST,208;000000000001
Date: 24 Nov 1982 1058-PST
From: PERDUE at HP-HULK
Subject: READ-UTILS
To: PSL at HP-HULK

The library module READ-UTILS is documented in the reference
manual as being named READ-TABLE-UTILS.
-------
25-Nov-82 07:17:32-PST,212;000000000001
Mail-From: GRISS created at 25-Nov-82 07:14:46
Date: 25 Nov 1982 0714-PST
From: GRISS at HP-HULK
Subject: ExitLISP for 20
To: psl at HP-HULK, psl-bugs at UTAH-20

We need an ExitLISP stub for 20.
-------
29-Nov-82 07:37:24-PST,763;000000000001
Mail-From: GRISS created at 29-Nov-82 07:34:53
Date: 29 Nov 1982 0734-PST
From: GRISS at HP-HULK
Subject: FLAG->SWITCH
To: hearn at RAND-UNIX
cc: psl at HP-HULK, uscg at UTAH-20

I propose renaming the things we have been calling FLAGS (!*ECHO, etc)
into SWITCHEs. This is more consistent with the ON/OFF functions that
change them, and avoids confusion the FLAG operations that put atoms on
property lists.

Thus SWITCHs are a special case of global/fluids; by convetion they
have a * at the front of their names, other globals have * at end.

ON xx,yy,xx; turns on the SWITCH's *XX,*YY,*ZZ.

Perhaps we could make ON also accept with the *:
ON *xx,*yy.

Should the SIMPFG property be really on the XXX or the *XXX for consistency?
-------
29-Nov-82 10:52:17-PST,266;000000000001
Date: 29 Nov 1982 1049-PST
From: AS at HP-HULK
Subject: feature request
To: PSL at HP-HULK
cc: AS at HP-HULK

Although the Common Lisp manual doesn't say so, I think that PRINLENGTH
(or some variable) should control the printing of strings as well.
-------
29-Nov-82 13:07:08-PST,313;000000000001
Mail-From: LANAM created at 29-Nov-82 13:03:40
Date: 29 Nov 1982 1303-PST
From: douglas <LANAM at HP-HULK>
Subject: capitalization function.
To: psl at HP-HULK

Is there a function that takes a word and prints it so that the
first letter is in upper case and the rest is in lower case?
	douglas
-------
29-Nov-82 15:54:42-PST,467;000000000001
Mail-From: BENSON created at 29-Nov-82 15:50:21
Date: 29 Nov 1982 1550-PST
From: Eric Benson <BENSON at HP-HULK>
Subject: Re: capitalization function.
To: LANAM at HP-HULK, psl at HP-HULK
In-Reply-To: Your message of 29-Nov-82 1303-PST

STRING-CAPITALIZE takes a string argument and returns a string with all "words"
capitalized from the argument.  A "word" is any sequence of alphanumeric
characters.  See the Common Lisp manual for more details.
-------
30-Nov-82 01:13:56-PST,714;000000000001
Mail-From: GRISS created at 30-Nov-82 01:09:04
Date: 30 Nov 1982 0109-PST
From: GRISS at HP-HULK
Subject: draft of portions of new PSL manual
To: psl at HP-HULK

I am enaged in editing the latest PSL manual with people at Utah.
I have some chapters down here on <griss> as *.lpt. Please feel free
to look at an comment on these. They may lag a day or two behind those at
Utah. We have made extensive additions based on 3.1 additions, and corrections.
Also we are trying to use LISP syntax, rather than RLISP (or at least a mix).

I will be viitng Utah Thursday/Friday, would likew to give as much feedback.
Volunteers to help improve manual welcome (yes, I heard some of you complain...)
M
-------
 1-Dec-82 11:02:17-PST,385;000000000001
Date: 1 Dec 1982 10:54:24-PST
From: douglas at HP-Hewey
To: benson@hulk, psl@hulk
Subject: change in printing ports of compiler.

Can all printing be done to one port on the vax, please.
I get a message like, cannot convert <#XXyy> into string, and have
no idea which function it is in, because the compiler does not print
the function names at any reasonable time.
	douglas
 1-Dec-82 15:42:23-PST,370;000000000001
Mail-From: BENSON created at  1-Dec-82 15:39:39
Date:  1 Dec 1982 1539-PST
From: Eric Benson <BENSON at HP-HULK>
Subject: Bug in compiler in &PaApply
To: psl at HP-HULK

The line
    if first third U = 'LIST then
should be changed to
    if EqCar(third U, 'LIST) then

(It sometimes takes the CAR of an atom.  EqCar checks to be sure it's a
pair.)
-------
 2-Dec-82 08:21:20-PST,1267;000000000001
Mail-From: GRISS created at  2-Dec-82 08:16:43
Date:  2 Dec 1982 0816-PST
From: GRISS at HP-HULK
Subject: Duplicate functionality
To: psl at HP-HULK, psl at UTAH-20

Folks, its time to make some decisions/gather information on
the various duplicate functionality modules we now have: Let
me list some, and solicit more examples:

DEFSTRUCT and NSTRUCT
PRETTY and PRETTYPRINT and (? one other?
EMODE and NMODE

EDITOR and MINI-EDITOR 
TRACE/DEBUG and MINI-TRACE


In some cases, we either had the early simple module, and inherited
a second module with other packages (the various pretty's), or
managed to get a more official version (LISPM NSTRUCT) converted to
PSL via a compatibility package, or a new woeker, following the NIH
syndrome made changes and renamed. 

We cant afford to support this "chaos" much longer, w cant afford
to document all variants, and be responsible for maintaining all
versions on all machines.

Please send me MAIL on other examples of duplication, and
your feelings why a certain module has a clone, rather than being
repaired.

I would like to trim the set of files for the upcoming distributions.

We could always relgate the "unofficial" versions to an UNSUPPORTED
random junk directory.
-------
 2-Dec-82 09:27:20-PST,565;000000000001
Date:  2 Dec 1982 0925-PST
From: AS at HP-HULK
Subject: suggestion
To: PSL at HP-HULK
cc: AS at HP-HULK

I would like to suggest adding primitives

  vector-trim (v, new-length)
  string-trim (s, new-length)

that would reduce the length of existing vector and string objects.
This would be done by adjusting the size field in the header word
and, if necessary, making the "freed" space at the end of the object
look like some sort of object so that heap scanning would still work.
The "freed" space would them be reclaimed by the next GC.
-------
 2-Dec-82 11:17:21-PST,877;000000000001
Mail-From: BENSON created at  2-Dec-82 11:15:15
Date:  2 Dec 1982 1115-PST
From: Eric Benson <BENSON at HP-HULK>
Subject: Re: Duplicate functionality
To: GRISS at HP-HULK, psl at HP-HULK, psl at UTAH-20
In-Reply-To: Your message of 2-Dec-82 0816-PST

My feeling is that some of the small versions of things should be retained,
but only for the bootstrapping phase for new machines.  It has been very
useful to have both MINI-EDITOR and MINI-TRACE while debugging the HP9836
PSL.  It would be highly impractical (beyond consideration) to include
DEBUG and ZPEDIT in a cross-compilation.  The lightweight versions should
not be included in any released system, however, and therefore need not be
documented in the manual.  It might be worthwhile to make sure that the
mini versions of things are true subsets, rather than slightly incompatible
versions.
-------
 2-Dec-82 11:17:41-PST,307;000000000001
Mail-From: BENSON created at  2-Dec-82 11:16:25
Date:  2 Dec 1982 1116-PST
From: Eric Benson <BENSON at HP-HULK>
Subject: Re: suggestion
To: AS at HP-HULK, PSL at HP-HULK
In-Reply-To: Your message of 2-Dec-82 0927-PST

Something equivalent to this already exists, in the module VECTOR-FIX.
-------
 3-Dec-82 10:17:56-PST,301;000000000001
Date:  3 Dec 1982 1013-PST
From: PERDUE at HP-HULK
Subject: Re: suggestion
To: AS at HP-HULK
cc: psl at HP-HULK
In-Reply-To: Your message of 3 Dec 1982 01:39:41-PST

In the module PU:VECTOR-FIX, the function TruncateVector provides
what you want for vectors, though not for strings.
-------
 3-Dec-82 18:13:54-PST,648;000000000001
Date:  3 Dec 1982 1809-PST
From: PERDUE at HP-HULK
Subject: Compiling boolean expressions for value
To: PSL at HP-HULK
cc: Feldman at HP-HULK

Samuel Feldman discovered that boolean expressions do not always
return the same value in compiled code that they do in interpreted
code.  In particular, things like double negations get optimized
completely away, but this results in an expression that may return
something other than T or NIL.

After consulting Eric Benson, I have tested out a patch to the
compiler to fix this and have changed the sources correspondingly. The
compiler should do this right in the next release.
-------
 8-Dec-82 14:24:32-PST,729;000400000001
Date:  8 Dec 1982 1420-PST
From: PERDUE at HP-HULK
Subject: Internals of BREAK
To: psl at HP-HULK

These remarks apply just to system internals, I guess, but here goes
anyway:

The hooks in BREAK do not connect RLISP up to the BREAK loop.  Why
not?  If there is a decent reason, should the hooks be removed from
BREAK?  Should they be removed in any case?

The function BREAK is not documented as a function for the user to
call.  Such a thing would be useful:  BREAK could serve to provide
breakpoints.  If it is to stand somewhat on its own, its interrelation
with ERROR, CONTINUABLEERROR, etc. must certainly be cleaned up.
Responsiblity for various actions and messages is very poorly
distributed.
-------
 8-Dec-82 14:24:46-PST,478;000400000001
Date:  8 Dec 1982 1423-PST
From: PERDUE at HP-HULK
Subject: BREAK loop documentation
To: psl at HP-HULK

The variables breakreader*, breakevaluator*, and breakprinter* are
mythical.  BREAK now in fact uses toploopread*, toploopeval*, and
toploopprint*, though it isn't clear that this is a viable and/or
permanent feature of BREAK.  (Technically, toploopeval* is only called
after a check that toploopread* has not returned an atom that is a
break command.)
-------
 9-Dec-82 18:14:45-PST,425;000400000001
Date:  9 Dec 1982 1811-PST
From: PERDUE at HP-HULK
Subject: Documentation of ContinuableError
To: PSL at HP-HULK

The documentation of ContinuableError and the break loop is aimed at
situations where there is an error in interpreted code.  The
documentation of ContinuableError should say explicitly that the value
of the retry form or of the explicit continuation value is returned
from ContinuableError.
-------
10-Dec-82 17:45:15-PST,530;000000000001
Date: 10 Dec 1982 1740-PST
From: PERDUE at HP-HULK
Subject: [Forwarded:] trace facilities in PSL
To: PSL at HP-HULK

Date: 10 Dec 1982 1500-PST
From: SOREFF
Subject: trace facilities in PSL
To: perdue
cc: soreff

I think that there is a bug in the PSL trace facilities. Trst appears to
drop the first element of vectors that it displays.	-Jeff

3 NMODE Lisp> (de echo (x) x)
ECHO
4 NMODE Lisp> (trst echo)
(ECHO)
5 NMODE Lisp> (echo [a])
ECHO being entered
   X:   []
ECHO = []
[A]
6 NMODE Lisp> 
-------
11-Dec-82 18:23:10-PST,256;000000000001
Date: 11 Dec 1982 18:19:42-PST
From: douglas at HP-Hewey
To: benson@hulk, psl@hulk
Subject: question about tr .

What does it mean when tr starts putting "*"'s at the beginning of each
line of the trace information printed out?
	thanks,
		douglas
12-Dec-82 13:17:09-PST,329;000000000001
Date: 12 Dec 1982 13:10:36-PST
From: douglas at HP-Hewey
To: benson@hulk, griss@hulk, psl@hulk
Subject: bug in garbage collection

Interrupts should be turned off during garbage collection.
I and a few others (Mark, Carl, etc), have had very, very strange
things happen after interrupting a garbage collection.
	douglas
13-Dec-82 12:06:55-PST,484;000000000001
Mail-From: SOREFF created at 13-Dec-82 12:04:12
Date: 13 Dec 1982 1204-PST
From: SOREFF at HP-HULK
Subject: bug in trst
To: psl at HP-HULK
cc: soreff at HP-HULK

Trst seems to have a bug in it that is sensitive to the formal parameters
of the function(s) being traced.	-Jeff

(de tst1 (x y z)
  (cond (x
	 (setq y z))))
(de tst2 (pop y z)
  (cond (pop
	 (setq y z))))
(trst tst1) % OK
(trst tst2) % blows up, differs from tst1 only in formal parameter name
-------
13-Dec-82 14:01:56-PST,402;000000000001
Mail-From: SOREFF created at 13-Dec-82 13:57:36
Date: 13 Dec 1982 1357-PST
From: SOREFF at HP-HULK
Subject: representing control characters
To: psl at HP-HULK
cc: soreff at HP-HULK

Is there a simple way to represent control characters in a PSL source file
which does not require actual control characters in the file, allowing it
to be printed without fouling up the printer?	-Jeff
-------
13-Dec-82 15:01:59-PST,715;000400000001
Date: 13 Dec 1982 1456-PST
From: PERDUE at HP-HULK
Subject: CHAR and "#\"
To: PSL at HP-HULK
cc: Soreff at HP-HULK

The CHAR macro is apparently documented in the wrong place and the
documentation for the "#\" (extended) read macro needs to be fleshed
out.  CHAR is actually in the kernel in spite of being documented in
the section on SYSLISP, and the kernel seems like a reasonable place for
it.  "#\" is actually an extended version of CHAR (redefine DOCHAR,
which does the work for CHAR), and the names defined for characters need
to appear in the documentation, not just the source code.

The set of names supplied with #\ in PU:READ-MACROS is also quite
excessive and I will trim it.
-------
19-Dec-82 17:47:56-PST,738;000000000001
Date: 19 Dec 1982 17:34:47-PST
From: douglas at HP-VENUS
To: griss@hulk, psl@hulk
Subject: deficiency in psl (dealing with remainders and modular arithmetic).

I find remainder is not complete in its present definition in psl.
I need to always do:
(let ((a (remainder arg1 arg2)))
     (cond ((>= a 0) a)
	   (t (minus a)))),

I could find no function that corresponds to the above. 
Nor could I find a function which returns a/b mod c in a range
other than (-c,c).  It is useful to have integer remainder functions
that return in the ranges [0,c), and (-c/2,c/2] (or was is [-c/2,c/2).)

Do such functions exist?

Wremainder and Iremainder both act the same as remainder (except only
								 on integers).
	douglas
20-Dec-82 06:52:41-PST,363;000000000001
Mail-From: GRISS created at 20-Dec-82 06:49:28
Date: 20 Dec 1982 0649-PST
From: GRISS at HP-HULK
Subject: RCREF "bug"
To: psl at HP-HULK

Need to install LPOSN for line number counters in RCREF.

Need to install information about FOREACH and other "standard" macros
(or make them expand) so that variables in FOREACH dont behave as
functions.
-------
20-Dec-82 07:27:34-PST,426;000000000001
Mail-From: GRISS created at 20-Dec-82 07:24:34
Date: 20 Dec 1982 0724-PST
From: GRISS at HP-HULK
Subject: RCREF
To: psl at HP-HULK

I have flagged some functions EXPAND (FOR, FOREACH, WHILE and REPEAT)
and taught RCREF about NEXPRs and SMACROS.

Still need to carfully check the various standard functionlists
to suppress printing of "uninteresting" functions. Eg, GEQ, LEQ should
be added to such lists.
-------
20-Dec-82 18:29:00-PST,406;000000000001
Mail-From: GRISS created at 20-Dec-82 18:27:47
Date: 20 Dec 1982 1827-PST
From: GRISS at HP-HULK
Subject: RCREF
To: psl at HP-HULK

We need to teach RCREF about functions such as PRINTF and BLDMSG that
take a variable # of arguments. perhaps relate to better NEXPR/LEXPR
model.

We need to teach RCREF how to use .BUILD file(s) to cref modules with
appropriate support modules laoded.
-------
21-Dec-82 14:55:00-PST,4447;000000000001
Mail-From: BENSON created at 21-Dec-82 14:50:08
Date: 21 Dec 1982 1450-PST
From: Eric Benson <BENSON at HP-HULK>
Subject: PSL problems
To: psl at HP-HULK

A perusal of PSL:BUG-MAIL.TXT revealed the following outstanding problems
with PSL:

No checking for number of arguments in compiled code, not even for
interpreted code calling compiled code.  A related problem is the inability
to define functions which take a variable number of arguments which can be
FUNCALLed effectively.

The distinction between fluids and globals is not useful in PSL.  Its only
function is to print annoying messages about globals which can't become
fluids.  Perhaps the warning message should be suppresed.

There is no general function for type coercion.  Also there is no function
TYPE-OF which returns the name of a data type, or TYPECASE which dispatches
on the type.  In general, the name of a data type is not really used by the
system.

Debugging tools leave much to be desired.  Some features requested are:

   A backtrace for bindings of fluid variables.
   A means of examining stack frames of compiled functions.
   A better interface to the STEP function, such as being able to step just
within a certain function, similar to TRST.

The structure editor ZPEDIT, obtained from IMSSS has bugs in the A, N and
BO commands.  These are probably caused by miscompilation due to evaluation
order problems.

There are several deficiencies with input and output:

   RDS and WRS are considered to be poor means to direct input and output
to different places, as opposed to functions which take optional stream
arguments.
   The representation of channels as small integers means that there are a
limited number of streams which can be active.  Also, there can be no predicate
stream-p with this arrangement.
   The method of opening special channels is messy.  It should be changed
to use a separate function OPEN-SPECIAL.
   The token scanner is insufficiently general.  Read macros are tied to
property lists instead of scanner tables.
   + and - print as !+ and !-.

Characters are represented as integers instead of being a separate data
type.

FASLOUT adds a ".b" to the filename given, while FASLIN does not.

The arguments to MAP, MAPC, etc. are in the wrong order wrt
Maclisp/Commonlisp compatibility.

The separation of error output and standard output into 2 channels on Unix
has proven to be undesirable.  They should  be combined into 1 channel.

There should be user-controllable hooks before and after garbage
collection.  Also, interrupts should be disabled during GC.

Some system functions cannot be traced without destroying the system, e.g.
GET.

There is no way to circumvent the automatic line breaks produced by PRIN1
and PRIN2 before long atoms.

The interface to BREAK is poor, with the single character atoms which do
magic things.  Also, the inheritance of the top loop read/eval/print is
undesirable.

There are 2 different interfaces to Rlisp, one from the PSL top loop,
obtained with the function RLISP, and one from Reduce, with the BEGIN
function.  These are slightly incompatible and produce different results
when a break loop is entered (see above comment).

The small-integer-only functions IPLUS2, IDIFFERENCE, etc. are not
documented.

The PRINTX function used for printing parameters of traced functions does
not interact well with PRINLEVEL and/or PRINLENGTH.

The most negative integer is not properly handled by the printer.  An
infinite stream of - signs is produced.  The solution is to do all
arithmetic on negative numbers in printing routines, since -n exists for
all positive n in 2's complement number systems.

The function ERRORSET must call EVAL on its form argument.  This causes the
usual problems with calling EVAL.  The only other way to trap errors is
with UNWIND-PROTECT, but that doesn't stop BREAK from being called.  ERRSET
exists but it doesn't seem to be what is desired, being essentially just a
special form version of ERRORSET.

The %e format specifier in PRINTF has the same problem as ERRORSET, a call
to EVAL.

Compilation of constant expressions is sometimes wrong, e.g. (eq 3 3).

Code space cannot be reclaimed, even though compiled functions may no
longer be available.

UNTR doesn't change a function back to its original definition, but leaves
a silently traced definition.

-------
21-Dec-82 22:27:35-PST,124;000000000001
Date: 21 Dec 1982 2227-PST
From: Cris Perdue <Perdue>
Subject: Test
To: Benson, PSL-Buggees: ;

Just a test.
-------
21-Dec-82 22:34:04-PST,127;000000000001
Date: 21 Dec 1982 2231-PST
From: Cris Perdue <Perdue at HP-HULK>
Subject: Test
To: psl at HP-HULK

another test
-------
22-Dec-82 10:03:43-PST,563;000000000001
Mail-From: GRISS created at 22-Dec-82 09:59:11
Date: 22 Dec 1982 0959-PST
From: GRISS at HP-HULK
Subject: BIGNUM/LAP problem on HP9836
To: psl at HP-HULK

Apparently LAP and BIGNUM inmteract badly on HP9836. This beacuse INUM
range decreased when BIGNUMs present, but some code in LAP must be
cavalierly passing Generic arith output, assumed to be INUM, to INUM
routines.

Should track down and fix in LAP.

Alternative fix (longer term), is to make BIGNUM and GENERIC rith
use double word operations to correctly permit full sized INUMs.
-------
24-Nov-82 01:48:48-PST,471;000000000005
Date: 24 Nov 1982 01:43:46-PST
From: daemon at HP-Hewey
Via: utah-cs
Date: 23 Nov 1982 0736-MST
From: Robert R. Kessler <KESSLER at UTAH-20>
To: psl-bugs at UTAH-20

It doesn't seem to function properly.  IN RLISP mode, !*echo is ignored,
and only depends on whether or not there is a ; or $.

I propose:  If !*echo on then go by the ; or $, otherwise with !*echo off
then don't echo.

? The fix is easy, do people agree with the change?

Bob.
-------

14-Dec-82 01:37:05-PST,418;000000000005
Date: 14 Dec 1982 01:35:34-PST
From: daemon at HP-Hewey
Via: utah-cs
Date: 13 Dec 1982 2146-MST
From: William Galway <Galway at UTAH-20>
Subject: Bug in COMMON module
To: PSL-BUGS at UTAH-20

There is a bug in the CopyList and CopyAlist utilities defined in
PU:COMMON.LSP, causing the first thing in the list to be copied twice.
I've fixed the source code and put it onto <PSL.UTIL.NEWVERSIONS>.
-------

23-Dec-82 14:00:02-PST,792;000000000001
Date: 23 Dec 1982 12:36:18-PST
From: GRISS@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 00:37:24 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0033-MST
Date: 22 Dec 1982 0959-PST
From: GRISS at HP-HULK
Subject: BIGNUM/LAP problem on HP9836
To: psl at HP-HULK, GRISS@at, @, GRISS@HP-labs@HP-VENUS, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 22 Dec 82 23:07-PDT

Apparently LAP and BIGNUM inmteract badly on HP9836. This beacuse INUM
range decreased when BIGNUMs present, but some code in LAP must be
cavalierly passing Generic arith output, assumed to be INUM, to INUM
routines.

Should track down and fix in LAP.

Alternative fix (longer term), is to make BIGNUM and GENERIC rith
use double word operations to correctly permit full sized INUMs.
-------



23-Dec-82 14:00:11-PST,778;000000000001
Date: 23 Dec 1982 12:52:47-PST
From: SOREFF@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 00:42:22 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0036-MST
Date: 13 Dec 1982 1204-PST
From: SOREFF at HP-HULK
Subject: bug in trst
To: psl at HP-HULK, SOREFF@at, @, SOREFF@HP-labs@HP-VENUS, HP-VENUS at RAND-RELAY
cc: soreff at HP-HULK, SOREFF@at, @, SOREFF@HP-labs@HP-VENUS, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 22 Dec 82 23:09-PDT

Trst seems to have a bug in it that is sensitive to the formal parameters
of the function(s) being traced.	-Jeff

(de tst1 (x y z)
  (cond (x
	 (setq y z))))
(de tst2 (pop y z)
  (cond (pop
	 (setq y z))))
(trst tst1) % OK
(trst tst2) % blows up, differs from tst1 only in formal parameter name
-------



23-Dec-82 14:00:18-PST,696;000000000001
Date: 23 Dec 1982 12:53:11-PST
From: SOREFF@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 00:42:41 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0038-MST
Date: 13 Dec 1982 1357-PST
From: SOREFF at HP-HULK
Subject: representing control characters
To: psl at HP-HULK, SOREFF@at, @, SOREFF@HP-labs@HP-VENUS, HP-VENUS at RAND-RELAY
cc: soreff at HP-HULK, SOREFF@at, @, SOREFF@HP-labs@HP-VENUS, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 22 Dec 82 23:10-PDT

Is there a simple way to represent control characters in a PSL source file
which does not require actual control characters in the file, allowing it
to be printed without fouling up the printer?	-Jeff
-------



23-Dec-82 14:00:28-PST,932;000000000001
Date: 23 Dec 1982 12:53:33-PST
From: PERDUE@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 00:43:01 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0038-MST
Date: 13 Dec 1982 1456-PST
From: PERDUE at HP-HULK
Subject: CHAR and "#\"
To: PSL at HP-HULK
cc: Soreff at HP-HULK
Via:  HP-Labs; 22 Dec 82 23:11-PDT

The CHAR macro is apparently documented in the wrong place and the
documentation for the "#\" (extended) read macro needs to be fleshed
out.  CHAR is actually in the kernel in spite of being documented in
the section on SYSLISP, and the kernel seems like a reasonable place for
it.  "#\" is actually an extended version of CHAR (redefine DOCHAR,
which does the work for CHAR), and the names defined for characters need
to appear in the documentation, not just the source code.

The set of names supplied with #\ in PU:READ-MACROS is also quite
excessive and I will trim it.
-------



23-Dec-82 14:01:19-PST,957;000000000001
Date: 23 Dec 1982 12:53:57-PST
From: douglas@HP-VENUS at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 00:52:28 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0048-MST
Date: 19 Dec 1982 17:34:47-PST
From: douglas at HP-VENUS
To: griss@hulk, psl@hulk
Subject: deficiency in psl (dealing with remainders and modular arithmetic).
Via:  HP-Labs; 22 Dec 82 23:28-PDT

I find remainder is not complete in its present definition in psl.
I need to always do:
(let ((a (remainder arg1 arg2)))
     (cond ((>= a 0) a)
	   (t (minus a)))),

I could find no function that corresponds to the above. 
Nor could I find a function which returns a/b mod c in a range
other than (-c,c).  It is useful to have integer remainder functions
that return in the ranges [0,c), and (-c/2,c/2] (or was is [-c/2,c/2).)

Do such functions exist?

Wremainder and Iremainder both act the same as remainder (except only
								 on integers).
	douglas



23-Dec-82 14:01:32-PST,592;000000000001
Date: 23 Dec 1982 12:54:19-PST
From: GRISS@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 00:52:48 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0048-MST
Date: 20 Dec 1982 0649-PST
From: GRISS at HP-HULK
Subject: RCREF "bug"
To: psl at HP-HULK, GRISS@at, @, GRISS@HP-labs@HP-VENUS, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 22 Dec 82 23:29-PDT

Need to install LPOSN for line number counters in RCREF.

Need to install information about FOREACH and other "standard" macros
(or make them expand) so that variables in FOREACH dont behave as
functions.
-------



23-Dec-82 14:01:40-PST,655;000000000001
Date: 23 Dec 1982 12:54:40-PST
From: GRISS@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 00:53:10 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0048-MST
Date: 20 Dec 1982 0724-PST
From: GRISS at HP-HULK
Subject: RCREF
To: psl at HP-HULK, GRISS@at, @, GRISS@HP-labs@HP-VENUS, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 22 Dec 82 23:29-PDT

I have flagged some functions EXPAND (FOR, FOREACH, WHILE and REPEAT)
and taught RCREF about NEXPRs and SMACROS.

Still need to carfully check the various standard functionlists
to suppress printing of "uninteresting" functions. Eg, GEQ, LEQ should
be added to such lists.
-------



23-Dec-82 14:01:48-PST,635;000000000001
Date: 23 Dec 1982 12:55:00-PST
From: GRISS@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 01:37:20 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0131-MST
Date: 20 Dec 1982 1827-PST
From: GRISS at HP-HULK
Subject: RCREF
To: psl at HP-HULK, GRISS@at, @, GRISS@HP-labs@HP-VENUS, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 22 Dec 82 23:35-PDT

We need to teach RCREF about functions such as PRINTF and BLDMSG that
take a variable # of arguments. perhaps relate to better NEXPR/LEXPR
model.

We need to teach RCREF how to use .BUILD file(s) to cref modules with
appropriate support modules laoded.
-------



23-Dec-82 14:01:57-PST,4678;000000000001
Date: 23 Dec 1982 12:55:28-PST
From: BENSON@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 01:42:22 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0134-MST
Date: 21 Dec 1982 1450-PST
From: Eric Benson <BENSON at HP-HULK>
Subject: PSL problems
To: psl at HP-HULK, BENSON@at, @, BENSON@HP-labs@HP-VENUS, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 22 Dec 82 23:39-PDT

A perusal of PSL:BUG-MAIL.TXT revealed the following outstanding problems
with PSL:

No checking for number of arguments in compiled code, not even for
interpreted code calling compiled code.  A related problem is the inability
to define functions which take a variable number of arguments which can be
FUNCALLed effectively.

The distinction between fluids and globals is not useful in PSL.  Its only
function is to print annoying messages about globals which can't become
fluids.  Perhaps the warning message should be suppresed.

There is no general function for type coercion.  Also there is no function
TYPE-OF which returns the name of a data type, or TYPECASE which dispatches
on the type.  In general, the name of a data type is not really used by the
system.

Debugging tools leave much to be desired.  Some features requested are:

   A backtrace for bindings of fluid variables.
   A means of examining stack frames of compiled functions.
   A better interface to the STEP function, such as being able to step just
within a certain function, similar to TRST.

The structure editor ZPEDIT, obtained from IMSSS has bugs in the A, N and
BO commands.  These are probably caused by miscompilation due to evaluation
order problems.

There are several deficiencies with input and output:

   RDS and WRS are considered to be poor means to direct input and output
to different places, as opposed to functions which take optional stream
arguments.
   The representation of channels as small integers means that there are a
limited number of streams which can be active.  Also, there can be no predicate
stream-p with this arrangement.
   The method of opening special channels is messy.  It should be changed
to use a separate function OPEN-SPECIAL.
   The token scanner is insufficiently general.  Read macros are tied to
property lists instead of scanner tables.
   + and - print as !+ and !-.

Characters are represented as integers instead of being a separate data
type.

FASLOUT adds a ".b" to the filename given, while FASLIN does not.

The arguments to MAP, MAPC, etc. are in the wrong order wrt
Maclisp/Commonlisp compatibility.

The separation of error output and standard output into 2 channels on Unix
has proven to be undesirable.  They should  be combined into 1 channel.

There should be user-controllable hooks before and after garbage
collection.  Also, interrupts should be disabled during GC.

Some system functions cannot be traced without destroying the system, e.g.
GET.

There is no way to circumvent the automatic line breaks produced by PRIN1
and PRIN2 before long atoms.

The interface to BREAK is poor, with the single character atoms which do
magic things.  Also, the inheritance of the top loop read/eval/print is
undesirable.

There are 2 different interfaces to Rlisp, one from the PSL top loop,
obtained with the function RLISP, and one from Reduce, with the BEGIN
function.  These are slightly incompatible and produce different results
when a break loop is entered (see above comment).

The small-integer-only functions IPLUS2, IDIFFERENCE, etc. are not
documented.

The PRINTX function used for printing parameters of traced functions does
not interact well with PRINLEVEL and/or PRINLENGTH.

The most negative integer is not properly handled by the printer.  An
infinite stream of - signs is produced.  The solution is to do all
arithmetic on negative numbers in printing routines, since -n exists for
all positive n in 2's complement number systems.

The function ERRORSET must call EVAL on its form argument.  This causes the
usual problems with calling EVAL.  The only other way to trap errors is
with UNWIND-PROTECT, but that doesn't stop BREAK from being called.  ERRSET
exists but it doesn't seem to be what is desired, being essentially just a
special form version of ERRORSET.

The %e format specifier in PRINTF has the same problem as ERRORSET, a call
to EVAL.

Compilation of constant expressions is sometimes wrong, e.g. (eq 3 3).

Code space cannot be reclaimed, even though compiled functions may no
longer be available.

UNTR doesn't change a function back to its original definition, but leaves
a silently traced definition.

-------



23-Dec-82 14:02:04-PST,666;000000000001
Date: 23 Dec 1982 12:55:52-PST
From: SOREFF@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 01:42:43 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0135-MST
Date: 21 Dec 1982 1728-PST
From: SOREFF at HP-HULK
Subject: compiler
To: psl at HP-HULK, SOREFF@at, @, SOREFF@HP-labs@HP-VENUS, HP-VENUS at RAND-RELAY
cc: soreff at HP-HULK, SOREFF@at, @, SOREFF@HP-labs@HP-VENUS, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 22 Dec 82 23:41-PDT

What does "Compiler bug: expression too complicated, please simplify" mean?!!!
What sort of sexp is too complex for the compiler to handle, what sort of
rewrite is needed to eliminate it?	-Jeff
-------



24-Dec-82 01:49:00-PST,1029;000000000001
Date: 24 Dec 1982 01:43:25-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 21:22:27 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 2113-MST
Date: 23 Dec 1982 12:36:18-PST
From: GRISS@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 00:37:24 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0033-MST
Date: 22 Dec 1982 0959-PST
From: GRISS at HP-HULK
Subject: BIGNUM/LAP problem on HP9836
To: psl at HP-HULK, GRISS@at, @, GRISS@HP-labs, @, GRISS@HP-HULK, @, HP-VENUS@HP-labs, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 22 Dec 82 23:07-PDT
Via:  HP-Labs; 23 Dec 82 19:49-PDT

Apparently LAP and BIGNUM inmteract badly on HP9836. This beacuse INUM
range decreased when BIGNUMs present, but some code in LAP must be
cavalierly passing Generic arith output, assumed to be INUM, to INUM
routines.

Should track down and fix in LAP.

Alternative fix (longer term), is to make BIGNUM and GENERIC rith
use double word operations to correctly permit full sized INUMs.
-------





24-Dec-82 01:49:07-PST,1047;000000000001
Date: 24 Dec 1982 01:43:42-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 21:22:46 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 2113-MST
Date: 23 Dec 1982 12:52:47-PST
From: SOREFF@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 00:42:22 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0036-MST
Date: 13 Dec 1982 1204-PST
From: SOREFF at HP-HULK
Subject: bug in trst
To: psl at HP-HULK, SOREFF@at, @, SOREFF@HP-labs, @, SOREFF@HP-HULK, @, HP-VENUS@HP-labs, HP-VENUS at RAND-RELAY
cc: soreff at HP-HULK, SOREFF@at, @, SOREFF@HP-labs, @, SOREFF@HP-HULK, @, HP-VENUS@HP-labs, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 22 Dec 82 23:09-PDT
Via:  HP-Labs; 23 Dec 82 19:49-PDT

Trst seems to have a bug in it that is sensitive to the formal parameters
of the function(s) being traced.	-Jeff

(de tst1 (x y z)
  (cond (x
	 (setq y z))))
(de tst2 (pop y z)
  (cond (pop
	 (setq y z))))
(trst tst1) % OK
(trst tst2) % blows up, differs from tst1 only in formal parameter name
-------





24-Dec-82 01:49:13-PST,965;000000000001
Date: 24 Dec 1982 01:44:01-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 21:23:05 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 2114-MST
Date: 23 Dec 1982 12:53:11-PST
From: SOREFF@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 00:42:41 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0038-MST
Date: 13 Dec 1982 1357-PST
From: SOREFF at HP-HULK
Subject: representing control characters
To: psl at HP-HULK, SOREFF@at, @, SOREFF@HP-labs, @, SOREFF@HP-HULK, @, HP-VENUS@HP-labs, HP-VENUS at RAND-RELAY
cc: soreff at HP-HULK, SOREFF@at, @, SOREFF@HP-labs, @, SOREFF@HP-HULK, @, HP-VENUS@HP-labs, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 22 Dec 82 23:10-PDT
Via:  HP-Labs; 23 Dec 82 19:49-PDT

Is there a simple way to represent control characters in a PSL source file
which does not require actual control characters in the file, allowing it
to be printed without fouling up the printer?	-Jeff
-------





24-Dec-82 01:49:19-PST,1139;000000000001
Date: 24 Dec 1982 01:44:21-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 21:23:24 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 2114-MST
Date: 23 Dec 1982 12:53:33-PST
From: PERDUE@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 00:43:01 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0038-MST
Date: 13 Dec 1982 1456-PST
From: PERDUE at HP-HULK
Subject: CHAR and "#\"
To: PSL at HP-HULK
cc: Soreff at HP-HULK
Via:  HP-Labs; 22 Dec 82 23:11-PDT
Via:  HP-Labs; 23 Dec 82 19:49-PDT

The CHAR macro is apparently documented in the wrong place and the
documentation for the "#\" (extended) read macro needs to be fleshed
out.  CHAR is actually in the kernel in spite of being documented in
the section on SYSLISP, and the kernel seems like a reasonable place for
it.  "#\" is actually an extended version of CHAR (redefine DOCHAR,
which does the work for CHAR), and the names defined for characters need
to appear in the documentation, not just the source code.

The set of names supplied with #\ in PU:READ-MACROS is also quite
excessive and I will trim it.
-------





24-Dec-82 01:49:26-PST,1164;000000000001
Date: 24 Dec 1982 01:44:39-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 21:23:43 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 2114-MST
Date: 23 Dec 1982 12:53:57-PST
From: douglas@HP-VENUS at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 00:52:28 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0048-MST
Date: 19 Dec 1982 17:34:47-PST
From: douglas at HP-VENUS
To: griss@hulk, psl@hulk
Subject: deficiency in psl (dealing with remainders and modular arithmetic).
Via:  HP-Labs; 22 Dec 82 23:28-PDT
Via:  HP-Labs; 23 Dec 82 19:50-PDT

I find remainder is not complete in its present definition in psl.
I need to always do:
(let ((a (remainder arg1 arg2)))
     (cond ((>= a 0) a)
	   (t (minus a)))),

I could find no function that corresponds to the above. 
Nor could I find a function which returns a/b mod c in a range
other than (-c,c).  It is useful to have integer remainder functions
that return in the ranges [0,c), and (-c/2,c/2] (or was is [-c/2,c/2).)

Do such functions exist?

Wremainder and Iremainder both act the same as remainder (except only
								 on integers).
	douglas





24-Dec-82 01:49:31-PST,829;000000000001
Date: 24 Dec 1982 01:44:58-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 21:24:02 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 2114-MST
Date: 23 Dec 1982 12:54:19-PST
From: GRISS@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 00:52:48 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0048-MST
Date: 20 Dec 1982 0649-PST
From: GRISS at HP-HULK
Subject: RCREF "bug"
To: psl at HP-HULK, GRISS@at, @, GRISS@HP-labs, @, GRISS@HP-HULK, @, HP-VENUS@HP-labs, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 22 Dec 82 23:29-PDT
Via:  HP-Labs; 23 Dec 82 19:50-PDT

Need to install LPOSN for line number counters in RCREF.

Need to install information about FOREACH and other "standard" macros
(or make them expand) so that variables in FOREACH dont behave as
functions.
-------





24-Dec-82 02:06:41-PST,892;000000000001
Date: 24 Dec 1982 01:45:18-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 21:24:22 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 2115-MST
Date: 23 Dec 1982 12:54:40-PST
From: GRISS@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 00:53:10 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0048-MST
Date: 20 Dec 1982 0724-PST
From: GRISS at HP-HULK
Subject: RCREF
To: psl at HP-HULK, GRISS@at, @, GRISS@HP-labs, @, GRISS@HP-HULK, @, HP-VENUS@HP-labs, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 22 Dec 82 23:29-PDT
Via:  HP-Labs; 23 Dec 82 19:50-PDT

I have flagged some functions EXPAND (FOR, FOREACH, WHILE and REPEAT)
and taught RCREF about NEXPRs and SMACROS.

Still need to carfully check the various standard functionlists
to suppress printing of "uninteresting" functions. Eg, GEQ, LEQ should
be added to such lists.
-------





24-Dec-82 02:06:53-PST,873;000000000001
Date: 24 Dec 1982 01:45:35-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 21:24:41 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 2115-MST
Date: 23 Dec 1982 12:55:00-PST
From: GRISS@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 01:37:20 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0131-MST
Date: 20 Dec 1982 1827-PST
From: GRISS at HP-HULK
Subject: RCREF
To: psl at HP-HULK, GRISS@at, @, GRISS@HP-labs, @, GRISS@HP-HULK, @, HP-VENUS@HP-labs, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 22 Dec 82 23:35-PDT
Via:  HP-Labs; 23 Dec 82 19:50-PDT

We need to teach RCREF about functions such as PRINTF and BLDMSG that
take a variable # of arguments . perhaps relate to better NEXPR/LEXPR
model.

We need to teach RCREF how to use .BUILD file(s) to cref modules with
appropriate support modules laoded.
-------





24-Dec-82 02:07:06-PST,4916;000000000001
Date: 24 Dec 1982 02:05:32-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 21:25:03 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 2115-MST
Date: 23 Dec 1982 12:55:28-PST
From: BENSON@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 01:42:22 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0134-MST
Date: 21 Dec 1982 1450-PST
From: Eric Benson <BENSON at HP-HULK>
Subject: PSL problems
To: psl at HP-HULK, BENSON@at, @, BENSON@HP-labs, @, BENSON@HP-HULK, @, HP-VENUS@HP-labs, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 22 Dec 82 23:39-PDT
Via:  HP-Labs; 23 Dec 82 19:51-PDT

A perusal of PSL:BUG-MAIL.TXT revealed the following outstanding problems
with PSL:

No checking for number of arguments in compiled code, not even for
interpreted code calling compiled code.  A related problem is the inability
to define functions which take a variable number of arguments which can be
FUNCALLed effectively.

The distinction between fluids and globals is not useful in PSL.  Its only
function is to print annoying messages about globals which can't become
fluids.  Perhaps the warning message should be suppresed.

There is no general function for type coercion.  Also there is no function
TYPE-OF which returns the name of a data type, or TYPECASE which dispatches
on the type.  In general, the name of a data type is not really used by the
system.

Debugging tools leave much to be desired.  Some features requested are:

   A backtrace for bindings of fluid variables.
   A means of examining stack frames of compiled functions.
   A better interface to the STEP function, such as being able to step just
within a certain function, similar to TRST.

The structure editor ZPEDIT, obtained from IMSSS has bugs in the A, N and
BO commands.  These are probably caused by miscompilation due to evaluation
order problems.

There are several deficiencies with input and output:

   RDS and WRS are considered to be poor means to direct input and output
to different places, as opposed to functions which take optional stream
arguments.
   The representation of channels as small integers means that there are a
limited number of streams which can be active.  Also, there can be no predicate
stream-p with this arrangement.
   The method of opening special channels is messy.  It should be changed
to use a separate function OPEN-SPECIAL.
   The token scanner is insufficiently general.  Read macros are tied to
property lists instead of scanner tables.
   + and - print as !+ and !-.

Characters are represented as integers instead of being a separate data
type.

FASLOUT adds a ".b" to the filename given, while FASLIN does not.

The arguments to MAP, MAPC, etc. are in the wrong order wrt
Maclisp/Commonlisp compatibility.

The separation of error output and standard output into 2 channels on Unix
has proven to be undesirable.  They should  be combined into 1 channel.

There should be user-controllable hooks before and after garbage
collection.  Also, interrupts should be disabled during GC.

Some system functions cannot be traced without destroying the system, e.g.
GET.

There is no way to circumvent the automatic line breaks produced by PRIN1
and PRIN2 before long atoms.

The interface to BREAK is poor, with the single character atoms which do
magic things.  Also, the inheritance of the top loop read/eval/print is
undesirable.

There are 2 different interfaces to Rlisp, one from the PSL top loop,
obtained with the function RLISP, and one from Reduce, with the BEGIN
function.  These are slightly incompatible and produce different results
when a break loop is entered (see above comment).

The small-integer-only functions IPLUS2, IDIFFERENCE, etc. are not
documented.

The PRINTX function used for printing parameters of traced functions does
not interact well with PRINLEVEL and/or PRINLENGTH.

The most negative integer is not properly handled by the printer.  An
infinite stream of - signs is produced.  The solution is to do all
arithmetic on negative numbers in printing routines, since -n exists for
all positive n in 2's complement number systems.

The function ERRORSET must call EVAL on its form argument.  This causes the
usual problems with calling EVAL.  The only other way to trap errors is
with UNWIND-PROTECT, but that doesn't stop BREAK from being called.  ERRSET
exists but it doesn't seem to be what is desired, being essentially just a
special form version of ERRORSET.

The %e format specifier in PRINTF has the same problem as ERRORSET, a call
to EVAL.

Compilation of constant expressions is sometimes wrong, e.g. (eq 3 3).

Code space cannot be reclaimed, even though compiled functions may no
longer be available.

UNTR doesn't change a function back to its original definition, but leaves
a silently traced definition.

-------





24-Dec-82 02:17:27-PST,935;000000000001
Date: 24 Dec 1982 02:05:53-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 21:25:23 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 2116-MST
Date: 23 Dec 1982 12:55:52-PST
From: SOREFF@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 01:42:43 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0135-MST
Date: 21 Dec 1982 1728-PST
From: SOREFF at HP-HULK
Subject: compiler
To: psl at HP-HULK, SOREFF@at, @, SOREFF@HP-labs, @, SOREFF@HP-HULK, @, HP-VENUS@HP-labs, HP-VENUS at RAND-RELAY
cc: soreff at HP-HULK, SOREFF@at, @, SOREFF@HP-labs, @, SOREFF@HP-HULK, @, HP-VENUS@HP-labs, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 22 Dec 82 23:41-PDT
Via:  HP-Labs; 23 Dec 82 19:51-PDT

What does "Compiler bug: expression too complicated, please simplify" mean?!!!
What sort of sexp is too complex for the compiler to handle, what sort of
rewrite is needed to eliminate it?	-Jeff
-------





24-Dec-82 09:50:59-PST,1235;000000000001
Date: 24 Dec 1982 09:46:34-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Dec 24 07:32:28 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 24-Dec-82 0728-MST
Date: 24 Dec 1982 01:43:25-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 21:22:27 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 2113-MST
Date: 23 Dec 1982 12:36:18-PST
From: GRISS@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 00:37:24 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0033-MST
Date: 22 Dec 1982 0959-PST
From: GRISS at HP-HULK
Subject: BIGNUM/LAP problem on HP9836
To: psl at HP-HULK, GRISS@at, @, GRISS@HP-labs, @, GRISS@HP-HULK, @, HP-VENUS@HP-labs, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 22 Dec 82 23:07-PDT
Via:  HP-Labs; 23 Dec 82 19:49-PDT
Via:  HP-Labs; 24 Dec 82 6:16-PDT

Apparently LAP and BIGNUM inmteract badly on HP9836. This beacuse INUM
range decreased when BIGNUMs present, but some code in LAP must be
cavalierly passing Generic arith output, assumed to be INUM, to INUM
routines.

Should track down and fix in LAP.

Alternative fix (longer term), is to make BIGNUM and GENERIC rith
use double word operations to correctly permit full sized INUMs.
-------







24-Dec-82 09:51:06-PST,1253;000000000001
Date: 24 Dec 1982 09:46:51-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Dec 24 07:32:47 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 24-Dec-82 0729-MST
Date: 24 Dec 1982 01:43:42-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 21:22:46 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 2113-MST
Date: 23 Dec 1982 12:52:47-PST
From: SOREFF@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 00:42:22 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0036-MST
Date: 13 Dec 1982 1204-PST
From: SOREFF at HP-HULK
Subject: bug in trst
To: psl at HP-HULK, SOREFF@at, @, SOREFF@HP-labs, @, SOREFF@HP-HULK, @, HP-VENUS@HP-labs, HP-VENUS at RAND-RELAY
cc: soreff at HP-HULK, SOREFF@at, @, SOREFF@HP-labs, @, SOREFF@HP-HULK, @, HP-VENUS@HP-labs, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 22 Dec 82 23:09-PDT
Via:  HP-Labs; 23 Dec 82 19:49-PDT
Via:  HP-Labs; 24 Dec 82 6:16-PDT

Trst seems to have a bug in it that is sensitive to the formal parameters
of the function(s) being traced.	-Jeff

(de tst1 (x y z)
  (cond (x
	 (setq y z))))
(de tst2 (pop y z)
  (cond (pop
	 (setq y z))))
(trst tst1) % OK
(trst tst2) % blows up, differs from tst1 only in formal parameter name
-------







24-Dec-82 09:51:12-PST,1171;000000000001
Date: 24 Dec 1982 09:47:08-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Dec 24 07:33:07 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 24-Dec-82 0729-MST
Date: 24 Dec 1982 01:44:01-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 21:23:05 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 2114-MST
Date: 23 Dec 1982 12:53:11-PST
From: SOREFF@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 00:42:41 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0038-MST
Date: 13 Dec 1982 1357-PST
From: SOREFF at HP-HULK
Subject: representing control characters
To: psl at HP-HULK, SOREFF@at, @, SOREFF@HP-labs, @, SOREFF@HP-HULK, @, HP-VENUS@HP-labs, HP-VENUS at RAND-RELAY
cc: soreff at HP-HULK, SOREFF@at, @, SOREFF@HP-labs, @, SOREFF@HP-HULK, @, HP-VENUS@HP-labs, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 22 Dec 82 23:10-PDT
Via:  HP-Labs; 23 Dec 82 19:49-PDT
Via:  HP-Labs; 24 Dec 82 6:17-PDT

Is there a simple way to represent control characters in a PSL source file
which does not require actual control characters in the file, allowing it
to be printed without fouling up the printer?	-Jeff
-------







24-Dec-82 09:51:18-PST,1345;000000000001
Date: 24 Dec 1982 09:47:25-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Dec 24 07:33:27 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 24-Dec-82 0729-MST
Date: 24 Dec 1982 01:44:21-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 21:23:24 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 2114-MST
Date: 23 Dec 1982 12:53:33-PST
From: PERDUE@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 00:43:01 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0038-MST
Date: 13 Dec 1982 1456-PST
From: PERDUE at HP-HULK
Subject: CHAR and "#\"
To: PSL at HP-HULK
cc: Soreff at HP-HULK
Via:  HP-Labs; 22 Dec 82 23:11-PDT
Via:  HP-Labs; 23 Dec 82 19:49-PDT
Via:  HP-Labs; 24 Dec 82 6:17-PDT

The CHAR macro is apparently documented in the wrong place and the
documentation for the "#\" (extended) read macro needs to be fleshed
out.  CHAR is actually in the kernel in spite of being documented in
the section on SYSLISP, and the kernel seems like a reasonable place for
it.  "#\" is actually an extended version of CHAR (redefine DOCHAR,
which does the work for CHAR), and the names defined for characters need
to appear in the documentation, not just the source code.

The set of names supplied with #\ in PU:READ-MACROS is also quite
excessive and I will trim it.
-------







24-Dec-82 09:51:24-PST,1370;000000000001
Date: 24 Dec 1982 09:47:42-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Dec 24 07:33:46 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 24-Dec-82 0730-MST
Date: 24 Dec 1982 01:44:39-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 21:23:43 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 2114-MST
Date: 23 Dec 1982 12:53:57-PST
From: douglas@HP-VENUS at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 00:52:28 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0048-MST
Date: 19 Dec 1982 17:34:47-PST
From: douglas at HP-VENUS
To: griss@hulk, psl@hulk
Subject: deficiency in psl (dealing with remainders and modular arithmetic).
Via:  HP-Labs; 22 Dec 82 23:28-PDT
Via:  HP-Labs; 23 Dec 82 19:50-PDT
Via:  HP-Labs; 24 Dec 82 6:17-PDT

I find remainder is not complete in its present definition in psl.
I need to always do:
(let ((a (remainder arg1 arg2)))
     (cond ((>= a 0) a)
	   (t (minus a)))),

I could find no function that corresponds to the above. 
Nor could I find a function which returns a/b mod c in a range
other than (-c,c).  It is useful to have integer remainder functions
that return in the ranges [0,c), and (-c/2,c/2] (or was is [-c/2,c/2).)

Do such functions exist?

Wremainder and Iremainder both act the same as remainder (except only
								 on integers).
	douglas







24-Dec-82 10:02:50-PST,1035;000000000001
Date: 24 Dec 1982 09:47:59-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Dec 24 07:34:05 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 24-Dec-82 0730-MST
Date: 24 Dec 1982 01:44:58-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 21:24:02 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 2114-MST
Date: 23 Dec 1982 12:54:19-PST
From: GRISS@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 00:52:48 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0048-MST
Date: 20 Dec 1982 0649-PST
From: GRISS at HP-HULK
Subject: RCREF "bug"
To: psl at HP-HULK, GRISS@at, @, GRISS@HP-labs, @, GRISS@HP-HULK, @, HP-VENUS@HP-labs, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 22 Dec 82 23:29-PDT
Via:  HP-Labs; 23 Dec 82 19:50-PDT
Via:  HP-Labs; 24 Dec 82 6:17-PDT

Need to install LPOSN for line number counters in RCREF.

Need to install information about FOREACH and other "standard" macros
(or make them expand) so that variables in FOREACH dont behave as
functions.
-------







24-Dec-82 10:02:59-PST,1098;000000000001
Date: 24 Dec 1982 09:48:15-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Dec 24 07:34:26 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 24-Dec-82 0730-MST
Date: 24 Dec 1982 01:45:18-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 21:24:22 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 2115-MST
Date: 23 Dec 1982 12:54:40-PST
From: GRISS@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 00:53:10 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0048-MST
Date: 20 Dec 1982 0724-PST
From: GRISS at HP-HULK
Subject: RCREF
To: psl at HP-HULK, GRISS@at, @, GRISS@HP-labs, @, GRISS@HP-HULK, @, HP-VENUS@HP-labs, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 22 Dec 82 23:29-PDT
Via:  HP-Labs; 23 Dec 82 19:50-PDT
Via:  HP-Labs; 24 Dec 82 6:18-PDT

I have flagged some functions EXPAND (FOR, FOREACH, WHILE and REPEAT)
and taught RCREF about NEXPRs and SMACROS.

Still need to carfully check the various standard functionlists
to suppress printing of "uninteresting" functions. Eg, GEQ, LEQ should
be added to such lists.
-------







24-Dec-82 10:03:06-PST,1079;000000000001
Date: 24 Dec 1982 09:48:33-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Dec 24 07:34:46 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 24-Dec-82 0730-MST
Date: 24 Dec 1982 01:45:35-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 21:24:41 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 2115-MST
Date: 23 Dec 1982 12:55:00-PST
From: GRISS@HP-HULK at HP-VENUS
Via: utah-cs
Date: Thu Dec 23 01:37:20 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 23-Dec-82 0131-MST
Date: 20 Dec 1982 1827-PST
From: GRISS at HP-HULK
Subject: RCREF
To: psl at HP-HULK, GRISS@at, @, GRISS@HP-labs, @, GRISS@HP-HULK, @, HP-VENUS@HP-labs, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 22 Dec 82 23:35-PDT
Via:  HP-Labs; 23 Dec 82 19:50-PDT
Via:  HP-Labs; 24 Dec 82 6:18-PDT

We need to teach RCREF about functions such as PRINTF and BLDMSG that
take a variable # of arguments . perhaps relate to better NEXPR/LEXPR
model.

We need to teach RCREF how to use .BUILD file(s) to cref modules with
appropriate support modules laoded.
-------







28-Dec-82 14:17:25-PST,185;000000000001
Date: 28 Dec 1982 1414-PST
From: PERDUE at HP-HULK
Subject: Fix to TRST
To: PSL, Soreff

I have fixed the bug with TRST where (cond (pop (setq y z))) was
handled wrong.
-------
28-Dec-82 16:33:40-PST,487;000000000001
Mail-From: GRISS created at 28-Dec-82 16:28:55
Date: 28 Dec 1982 1628-PST
From: GRISS at HP-HULK
Subject: Misc
To: psl at HP-HULK

a) I am working on major cleanup of compiler. Copy on <griss>new-compiler.red
    _Please dont change COMPILER.RED on PC:

b) Some new .MSS files for manual. I put on <psl-distribution.rsm>,
   new one are nn-name.mss, so can compare with old, and R'd versions.

   This is not latest set, but much closer ow to what we have at Utah.
-------
29-Dec-82 13:16:59-PST,156;000000000001
Date: 29 Dec 1982 1316-PST
From: PERDUE at HP-HULK
Subject: LPOSN
To: PSL

I have modified source files to implement LPOSN and CHANNELLPOSN.
-------
29-Dec-82 14:50:40-PST,265;000000000001
Mail-From: GRISS created at 29-Dec-82 14:42:07
Date: 29 Dec 1982 1442-PST
From: GRISS at HP-HULK
Subject: Latest Printx
To: psl at HP-HULK

try trst of foo x;

procedure foo x; 1;

and call foo '[]; seems to put in the %L1: stuff unneccesarily.
-------
29-Dec-82 15:22:00-PST,327;000000000001
Date: 29 Dec 1982 15:06:10-PST
From: douglas at HP-VENUS
To: benson@HP-VENUS, benson@hulk, psl@hulk
Subject: psl bug on vax.

When you start psl on the vax now, you get the message:
***** `READ-INIT-FILE' is an undefined function
***** Continuation requires a value for `(READ-INIT-FILE "psl")'
Break loop

	Douglas
30-Dec-82 01:42:07-PST,703;000000000001
Date: 30 Dec 1982 01:35:47-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Wed Dec 29 22:32:11 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 29-Dec-82 2225-MST
Date: 28 Dec 1982 1628-PST
From: GRISS at HP-HULK
Subject: Misc
To: psl at HP-HULK, GRISS@at, @, HP-labs@HP-VENUS, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 28 Dec 82 19:57-PDT

a) I am working on major cleanup of compiler. Copy on <griss>new-compiler.red
    _Please dont change COMPILER.RED on PC:

b) Some new .MSS files for manual. I put on <psl-distribution.rsm>,
   new one are nn-name.mss, so can compare with old, and R'd versions.

   This is not latest set, but much closer ow to what we have at Utah.
-------



30-Dec-82 01:42:08-PST,450;000000000001
Date: 30 Dec 1982 01:35:55-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Wed Dec 29 22:32:18 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 29-Dec-82 2224-MST
Date: 28 Dec 1982 1414-PST
From: PERDUE at HP-HULK
Subject: Fix to TRST
To: PERDUE@PSL, @, HP-labs@HP-VENUS, PERDUE@Soreff, @, HP-labs@HP-VENUS
Via:  HP-Labs; 28 Dec 82 19:56-PDT

I have fixed the bug with TRST where (cond (pop (setq y z))) was
handled wrong.
-------



30-Dec-82 01:42:10-PST,393;000000000001
Date: 30 Dec 1982 01:36:03-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Wed Dec 29 22:57:12 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 29-Dec-82 2253-MST
Date: 29 Dec 1982 1316-PST
From: PERDUE at HP-HULK
Subject: LPOSN
To: PERDUE@PSL, @, HP-labs@HP-VENUS
Via:  HP-Labs; 29 Dec 82 19:12-PDT

I have modified source files to implement LPOSN and CHANNELLPOSN.
-------



30-Dec-82 01:42:12-PST,481;000000000001
Date: 30 Dec 1982 01:36:15-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Wed Dec 29 22:57:20 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 29-Dec-82 2253-MST
Date: 29 Dec 1982 1442-PST
From: GRISS at HP-HULK
Subject: Latest Printx
To: psl at HP-HULK, GRISS@at, @, HP-labs@HP-VENUS, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 29 Dec 82 19:12-PDT

try trst of foo x;

procedure foo x; 1;

and call foo '[]; seems to put in the %L1: stuff unneccesarily.
-------



30-Dec-82 01:42:14-PST,536;000000000001
Date: 30 Dec 1982 01:36:25-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Wed Dec 29 22:57:29 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 29-Dec-82 2253-MST
Date: 29 Dec 1982 15:06:10-PST
From: douglas at HP-VENUS
To: benson@HP-VENUS, benson@hulk, psl@hulk
Subject: psl bug on vax.
Via:  HP-Labs; 29 Dec 82 19:12-PDT

When you start psl on the vax now, you get the message:
***** `READ-INIT-FILE' is an undefined function
***** Continuation requires a value for `(READ-INIT-FILE "psl")'
Break loop

	Douglas



30-Dec-82 06:56:29-PST,579;000000000001
Mail-From: GRISS created at 30-Dec-82 06:56:02
Date: 30 Dec 1982 0656-PST
From: GRISS at HP-HULK
Subject: HELP
To: psl at HP-HULK

a) Need to change HELP file syntax to be LISP syntax in example, ala
   manual headers

b) Need to fix the HELP(); and HELP HELP; problems.
   Perhaps HELP should NOT be an RLISP parsing function, or at least
   should only work to suppress argument parsing functions, so that
   HELP(a,b,c); is the model. Needs a new kind of RLISx parsing function.

c) Need to update the HELP.TBL for more important GLOBALS and switches.
-------
30-Dec-82 07:11:02-PST,458;000000000001
Mail-From: GRISS created at 30-Dec-82 07:07:50
Date: 30 Dec 1982 0707-PST
From: GRISS at HP-HULK
Subject: Mathlib
To: psl at HP-HULK

It references some constants, Smallest-Flonum, etc. These
are MACHINE dependent (ie, FLOAT implementation dependent).

They should be move to the MATHLIB.BUILD file, and IF_SYSTEMs
added for each machine.

These constants are really more globally interesting. Check common-LISP
environment enquiries.
-------
30-Dec-82 09:41:12-PST,794;000000000001
Date: 30 Dec 1982 09:36:01-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Thu Dec 30 08:47:08 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 30-Dec-82 0839-MST
Date: 30 Dec 1982 0656-PST
From: GRISS at HP-HULK
Subject: HELP
To: psl at HP-HULK, GRISS@at, @, HP-labs@HP-VENUS, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 30 Dec 82 7:12-PDT

a) Need to change HELP file syntax to be LISP syntax in example, ala
   manual headers

b) Need to fix the HELP(); and HELP HELP; problems.
   Perhaps HELP should NOT be an RLISP parsing function, or at least
   should only work to suppress argument parsing functions, so that
   HELP(a,b,c); is the model. Needs a new kind of RLISx parsing function.

c) Need to update the HELP.TBL for more important GLOBALS and switches.
-------



30-Dec-82 09:41:14-PST,673;000000000001
Date: 30 Dec 1982 09:36:09-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Thu Dec 30 08:47:15 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 30-Dec-82 0839-MST
Date: 30 Dec 1982 0707-PST
From: GRISS at HP-HULK
Subject: Mathlib
To: psl at HP-HULK, GRISS@at, @, HP-labs@HP-VENUS, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 30 Dec 82 7:12-PDT

It references some constants, Smallest-Flonum, etc. These
are MACHINE dependent (ie, FLOAT implementation dependent).

They should be move to the MATHLIB.BUILD file, and IF_SYSTEMs
added for each machine.

These constants are really more globally interesting. Check common-LISP
environment enquiries.
-------



30-Dec-82 12:03:23-PST,328;000000000001
Date: 30 Dec 1982 1159-PST
From: AS at HP-HULK
Subject: manual suggestion
To: PSL
cc: AS

It is not clear that the arguments to compiletime, bothtimes, and loadtime
should not be quoted, since they are described as Exprs.  In any case, I would
prefer that they be macros and take an arbitrary number of forms.
-------
30-Dec-82 12:18:55-PST,277;000000000001
Date: 30 Dec 1982 12:12:26-PST
From: douglas at HP-VENUS
To: as@hulk, griss@hulk, psl@hulk
Subject: new manual mistake (br, unbr):

The manual lists the functions br, and unbr on page 2-5.
These functions do not exist in psl on the vax.
(in psl or in debug).
	Douglas
30-Dec-82 16:13:50-PST,480;000000000001
Date: 30 Dec 1982 16:07:17-PST
From: douglas at HP-VENUS
To: griss@hulk, psl@hulk, tracy@Hulk
Subject: psl chipmunk compiler bug.

In the function wconstevaluable: If it is given an argument (frame 1):

	If no function frame exists ( (getd 'frame) = nil),
		The correct code is produced.
	If the user has define a function frame (getd 'frame ) <> nil ,
		The system proceeds to call the function "frame".

This does not take place on the vax and/or hulk.

	Douglas
30-Dec-82 16:14:00-PST,415;000000000001
Date: 30 Dec 1982 16:09:11-PST
From: douglas at HP-VENUS
To: griss@hulk, psl@hulk
Subject: clarification to last letter on psl chipmunk compiler.

The bug happens when you compile a simple function that causes
the compiler to call its internal function "wconstevaluatable"
with an argument "(frame 1)".
Normal arguments to wconstevaluable seem to include "frame x",
"(reg x)", "(minus x)", etc.
	Douglas
31-Dec-82 00:56:36-PST,1109;000000000001
Date: 31 Dec 1982 00:56:17-PST
From: douglas at HP-VENUS
To: psl@hulk
Subject: psl compiler bug .

% psl  
PSL 3.1, 29-Dec-82
1 lisp> (load compiler)
NIL
2 lisp> (defun reg (x) t)
REG
3 lisp> (de x (y z) (iplus2 y z))
X
4 lisp> (compile '(x))
***** Unknown label `T' in LAP
Break loop


Note, I have found that defining the functions:
"frame", & "reg"  causes the compiler to produce just plain
strange code in all versions of psl.

These functions do not exist in psl anywhere. 

It appears that the function "wconstevaluable" in the psl compiler
is too general about how it goes about evalualating its arguments.

It appears that it tries to see if something is a constant at compile
time, and if it is, it evaluates it and puts it in place of its contents.

This function appears to be passed operands in lap code. ( (reg 1) (wconst 1),
							   and (frame 1) , etc.)

To my understanding,
A correction to this function should tell which small 
subset of functions are correct to expand and which are not real functions
but labels or tags in the lap code.

	Douglas
31-Dec-82 02:01:25-PST,585;000000000000
Date: 31 Dec 1982 02:01:20-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Dec 31 00:57:08 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 31-Dec-82 0053-MST
Date: 30 Dec 1982 1159-PST
From: AS at HP-HULK
Subject: manual suggestion
To: AS@PSL, @, HP-labs@HP-VENUS
cc: AS@AS, @, HP-labs@HP-VENUS
Via:  HP-Labs; 30 Dec 82 23:46-PDT

It is not clear that the arguments to compiletime, bothtimes, and loadtime
should not be quoted, since they are described as Exprs.  In any case, I would
prefer that they be macros and take an arbitrary number of forms.
-------



31-Dec-82 02:01:27-PST,486;000000000000
Date: 31 Dec 1982 02:01:27-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Dec 31 00:57:15 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 31-Dec-82 0053-MST
Date: 30 Dec 1982 12:12:26-PST
From: douglas at HP-VENUS
To: as@hulk, griss@hulk, psl@hulk
Subject: new manual mistake (br, unbr):
Via:  HP-Labs; 30 Dec 82 23:46-PDT

The manual lists the functions br, and unbr on page 2-5.
These functions do not exist in psl on the vax.
(in psl or in debug).
	Douglas



31-Dec-82 02:01:29-PST,689;000000000000
Date: 31 Dec 1982 02:01:33-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Dec 31 01:32:08 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 31-Dec-82 0128-MST
Date: 30 Dec 1982 16:07:17-PST
From: douglas at HP-VENUS
To: griss@hulk, psl@hulk, tracy@Hulk
Subject: psl chipmunk compiler bug.
Via:  HP-Labs; 30 Dec 82 23:55-PDT

In the function wconstevaluable: If it is given an argument (frame 1):

	If no function frame exists ( (getd 'frame) = nil),
		The correct code is produced.
	If the user has define a function frame (getd 'frame ) <> nil ,
		The system proceeds to call the function "frame".

This does not take place on the vax and/or hulk.

	Douglas



31-Dec-82 02:01:31-PST,624;000000000000
Date: 31 Dec 1982 02:01:39-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Dec 31 01:32:16 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 31-Dec-82 0128-MST
Date: 30 Dec 1982 16:09:11-PST
From: douglas at HP-VENUS
To: griss@hulk, psl@hulk
Subject: clarification to last letter on psl chipmunk compiler.
Via:  HP-Labs; 30 Dec 82 23:55-PDT

The bug happens when you compile a simple function that causes
the compiler to call its internal function "wconstevaluatable"
with an argument "(frame 1)".
Normal arguments to wconstevaluable seem to include "frame x",
"(reg x)", "(minus x)", etc.
	Douglas



31-Dec-82 06:05:34-PST,519;000000000000
Mail-From: GRISS created at 31-Dec-82 06:00:42
Date: 31 Dec 1982 0600-PST
From: GRISS at HP-HULK
Subject: Re: new manual mistake (br, unbr):
To: douglas at HP-VENUS, as at HP-HULK, psl at HP-HULK
In-Reply-To: Your message of 30-Dec-82 1218-PST

Actually, BR and UNBR in the MINI-TRACE used to be in KERNELand then
DEBUG loaded over it. Recent cleanups must have put FULL debug (autload stub)
in kernel. 

Ideal is that MINI-TRACE be true subset of DEBUG, rest  loaded in
if needed for FULL debug.
-------
31-Dec-82 06:05:43-PST,537;000000000000
Mail-From: GRISS created at 31-Dec-82 06:01:14
Date: 31 Dec 1982 0601-PST
From: GRISS at HP-HULK
Subject: [douglas at HP-VENUS: missing line in manual (page 2-5) Factorial Function.]
To: psl at HP-HULK


                ---------------
Date: 30 Dec 1982 12:19:26-PST
From: douglas at HP-VENUS
To: as@hulk, griss@hulk
Subject: missing line in manual (page 2-5) Factorial Function.

After the line 
8 NMODE Lisp>	(Cond ((Eq 1)

Should be the missing line:

8 NMODE Lisp> 		1)

                ---------------
-------
31-Dec-82 06:20:32-PST,753;000000000000
Mail-From: GRISS created at 31-Dec-82 06:19:46
Date: 31 Dec 1982 0619-PST
From: GRISS at HP-HULK
Subject: Wconst Evaluable Fix
To: psl at HP-HULK

Fix is not to flag those functions that are compiled as is, but rather
to INSIST that for a (FOOO x y z) to get WCONST processing, it always
has a special property on FOOOO. Right nowe the model used is that
if x y z are wconst expressions, and if FOOO is a defined function, do it.

Need to change WconstEvaluable and WconstExpression in Pc:ANYREG-CMACRO.SL,
and to determine the set of functions that WCONSTxxx expects. Actually,
its more an issue of WHAT functions have been used in sources.

PLUS, WPLUS2, TIMES, WTIMES2, LSH etc come to mind, but we have to scan
all code.

-------
31-Dec-82 06:25:31-PST,291;000000000000
Mail-From: GRISS created at 31-Dec-82 06:20:50
Date: 31 Dec 1982 0620-PST
From: GRISS at HP-HULK
Subject: WCONST..
To: psl at HP-HULK

actually, we should also detrimin what flags FRAME has to avoid this on 20
and VAX, and fail on HP9836. Probably something like TERMINAL..
-------
31-Dec-82 09:39:55-PST,1318;000000000000
Date: 31 Dec 1982 09:35:53-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Dec 31 07:47:12 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 31-Dec-82 0742-MST
Date: 31 Dec 1982 00:56:17-PST
From: douglas at HP-VENUS
To: psl@hulk
Subject: psl compiler bug .
Via:  HP-Labs; 31 Dec 82 6:37-PDT

% psl  
PSL 3.1, 29-Dec-82
1 lisp> (load compiler)
NIL
2 lisp> (defun reg (x) t)
REG
3 lisp> (de x (y z) (iplus2 y z))
X
4 lisp> (compile '(x))
***** Unknown label `T' in LAP
Break loop


Note, I have found that defining the functions:
"frame", & "reg"  causes the compiler to produce just plain
strange code in all versions of psl.

These functions do not exist in psl anywhere . 

It appears that the function "wconstevaluable" in the psl compiler
is too general about how it goes about evalualating its arguments.

It appears that it tries to see if something is a constant at compile
time, and if it is, it evaluates it and puts it in place of its contents.

This function appears to be passed operands in lap code. ( (reg 1) (wconst 1),
							   and (frame 1) , etc.)

To my understanding,
A correction to this function should tell which small 
subset of functions are correct to expand and which are not real functions
but labels or tags in the lap code.

	Douglas



31-Dec-82 09:39:57-PST,869;000000000000
Date: 31 Dec 1982 09:35:59-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Dec 31 07:47:18 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 31-Dec-82 0742-MST
Date: 31 Dec 1982 0600-PST
From: GRISS at HP-HULK
Subject: Re: new manual mistake (br, unbr):
To: douglas at HP-VENUS, GRISS@at, @, HP-labs@HP-VENUS, GRISS@RAND-RELAY, @, HP-labs@HP-VENUS,
    as at HP-HULK, GRISS@at, @, HP-labs@HP-VENUS, HP-VENUS at RAND-RELAY,
    psl at HP-HULK, GRISS@at, @, HP-labs@HP-VENUS, HP-VENUS at RAND-RELAY
In-Reply-To: Your message of 30-Dec-82 1218-PST
Via:  HP-Labs; 31 Dec 82 6:37-PDT

Actually, BR and UNBR in the MINI-TRACE used to be in KERNELand then
DEBUG loaded over it. Recent cleanups must have put FULL debug (autload stub)
in kernel. 

Ideal is that MINI-TRACE be true subset of DEBUG, rest  loaded in
if needed for FULL debug.
-------



31-Dec-82 09:39:59-PST,752;000000000000
Date: 31 Dec 1982 09:36:04-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Dec 31 07:47:25 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 31-Dec-82 0743-MST
Date: 31 Dec 1982 0601-PST
From: GRISS at HP-HULK
Subject: [douglas at HP-VENUS: missing line in manual (page 2-5) Factorial Function.]
To: psl at HP-HULK, GRISS@at, @, HP-labs@HP-VENUS, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 31 Dec 82 6:37-PDT


                ---------------
Date: 30 Dec 1982 12:19:26-PST
From: douglas at HP-VENUS
To: as@hulk, griss@hulk
Subject: missing line in manual (page 2-5) Factorial Function.

After the line 
8 NMODE Lisp>	(Cond ((Eq 1)

Should be the missing line:

8 NMODE Lisp> 		1)

                ---------------
-------



31-Dec-82 09:40:01-PST,968;000000000000
Date: 31 Dec 1982 09:36:09-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Dec 31 07:47:32 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 31-Dec-82 0743-MST
Date: 31 Dec 1982 0619-PST
From: GRISS at HP-HULK
Subject: Wconst Evaluable Fix
To: psl at HP-HULK, GRISS@at, @, HP-labs@HP-VENUS, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 31 Dec 82 6:37-PDT

Fix is not to flag those functions that are compiled as is, but rather
to INSIST that for a (FOOO x y z) to get WCONST processing, it always
has a special property on FOOOO. Right nowe the model used is that
if x y z are wconst expressions, and if FOOO is a defined function, do it.

Need to change WconstEvaluable and WconstExpression in Pc:ANYREG-CMACRO.SL,
and to determine the set of functions that WCONSTxxx expects. Actually,
its more an issue of WHAT functions have been used in sources.

PLUS, WPLUS2, TIMES, WTIMES2, LSH etc come to mind, but we have to scan
all code.

-------



31-Dec-82 09:40:03-PST,506;000000000000
Date: 31 Dec 1982 09:36:14-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Dec 31 07:47:39 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 31-Dec-82 0743-MST
Date: 31 Dec 1982 0620-PST
From: GRISS at HP-HULK
Subject: WCONST..
To: psl at HP-HULK, GRISS@at, @, HP-labs@HP-VENUS, HP-VENUS at RAND-RELAY
Via:  HP-Labs; 31 Dec 82 6:37-PDT

actually, we should also detrimin what flags FRAME has to avoid this on 20
and VAX, and fail on HP9836. Probably something like TERMINAL..
-------



31-Dec-82 15:35:28-PST,299;000000000000
Date: 31 Dec 1982 15:33:06-PST
From: douglas at HP-VENUS
To: GRISS@HP-HULK, as@HP-HULK, douglas@HP-VENUS, psl@HP-HULK
Subject: Re: new manual mistake (br, unbr):

Martin,

	Are you saying that "br" and "unbr" exist still?  I am unable
to find them in psl / bare-psl / or debug.

	Douglas
31-Dec-82 18:44:49-PST,551;000000000000
Date: 31 Dec 1982 18:44:48-PST
From: douglas at HP-VENUS
To: psl@hulk
Subject: question about manual notation.


When you describe functions:

as in :  (example from page 16-3).

(Br [Fname:id]) : Undefined 					macro

In general, it seems to me that it may be hard to know
whether or not the macro needs to have its arguments
quoted.  This probably should be stated somehow.  

Also,  Martin seems to imply that Br still exists.  I can not find it.
If it does, please tell me where, as I would like to use it.   Thanks.

	Douglas
31-Dec-82 18:49:47-PST,268;000000000000
Date: 31 Dec 1982 18:46:28-PST
From: douglas at HP-VENUS
To: psl@hulk
Subject: picture rlisp question

Does rlisp need to be loaded into psl for picture rlisp to work?
(And thus its name?)  Does it only work in rlisp?  Will it work fine
in psl without rlisp? 
31-Dec-82 21:34:19-PST,261;000000000000
Date: 31 Dec 1982 21:18:58-PST
From: douglas at HP-VENUS
To: griss@hulk, psl@hulk
Subject: chipmunk non recursive garbage collector
Cc: benson@hulk, tracy@hulk

I have found that it is working fine for me, and handles the frl
structures well.
	Douglas
 1-Jan-83 01:34:55-PST,507;000000000000
Date: 1 Jan 1983 01:34:51-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Dec 31 21:19:21 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 31-Dec-82 2115-MST
Date: 31 Dec 1982 15:33:06-PST
From: douglas at HP-VENUS
To: GRISS@HP-HULK, as@HP-HULK, douglas@HP-VENUS, psl@HP-HULK
Subject: Re: new manual mistake (br, unbr):
Via:  HP-Labs; 31 Dec 82 19:43-PDT

Martin,

	Are you saying that "br" and "unbr" exist still?  I am unable
to find them in psl / bare-psl / or debug.

	Douglas



 1-Jan-83 01:34:56-PST,759;000000000000
Date: 1 Jan 1983 01:34:56-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Dec 31 21:19:38 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 31-Dec-82 2116-MST
Date: 31 Dec 1982 18:44:48-PST
From: douglas at HP-VENUS
To: psl@hulk
Subject: question about manual notation.
Via:  HP-Labs; 31 Dec 82 19:43-PDT


When you describe functions:

as in :  (example from page 16-3).

(Br [Fname:id]) : Undefined 					macro

In general, it seems to me that it may be hard to know
whether or not the macro needs to have its arguments
quoted.  This probably should be stated somehow.  

Also,  Martin seems to imply that Br still exists.  I can not find it.
If it does, please tell me where, as I would like to use it.   Thanks.

	Douglas



 1-Jan-83 01:34:58-PST,476;000000000000
Date: 1 Jan 1983 01:35:01-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Dec 31 21:19:53 1982
Mail-from: ARPANET site RAND-RELAY rcvd at 31-Dec-82 2116-MST
Date: 31 Dec 1982 18:46:28-PST
From: douglas at HP-VENUS
To: psl@hulk
Subject: picture rlisp question
Via:  HP-Labs; 31 Dec 82 19:43-PDT

Does rlisp need to be loaded into psl for picture rlisp to work?
(And thus its name?)  Does it only work in rlisp?  Will it work fine
in psl without rlisp? 



 1-Jan-83 10:38:14-PST,420;000000000000
Mail-From: GRISS created at  1-Jan-83 10:36:33
Date:  1 Jan 1983 1036-PST
From: GRISS at HP-HULK
Subject: RLISP hooks
To: psl at HP-HULK

Need to change DEFINEROP to be a macro, so that it creates PUT's
in files for RLISP parser calls. Then files will load into PSL
without RLISP, and work when RLISP loaded.

Need to examine Pu:RLISP-PARSER.RED.

Alternativ is to haved DEFINEROP etc in "kernel".
-------
 1-Jan-83 11:23:02-PST,389;000000000000
Mail-From: LANAM created at  1-Jan-83 11:21:26
Date:  1 Jan 1983 1121-PST
From: douglas <LANAM at HP-HULK>
Subject: Thanks for help in getting pfrl to run on chipmunk.
To: griss at HP-HULK, benson at HP-HULK, tracy at HP-HULK, osnos at HP-HULK
cc: psl at HP-HULK

Thank you all for you help in my getting pfrl to run on the chipmunk.
I appreciate it very much.
	Douglas
-------
 3-Jan-83 07:20:00-PST,206;000000000000
Mail-From: GRISS created at  3-Jan-83 07:16:14
Date:  3 Jan 1983 0716-PST
From: GRISS at HP-HULK
Subject: ExitLISP on 20
To: psl at HP-HULK

Need to add Exitlisp (as alias for Quit?) on 20.
-------
 3-Jan-83 10:50:40-PST,535;000000000000
Date: 3 Jan 1983 10:46:01-PST
From: douglas at HP-VENUS
To: psl@hulk
Subject: compiler bug


(de x (a b)
  (cons a (igetv b a)))

Compiles fine.


(de x (a b)
  (cond ((igetv b a) (cons a (igetv b a)))))

Compiles fine.

But:
The following does not:

(de x (a b)
  (and (igetv b a) (cons a (igetv b a))))

It gives the following error message:
***** 
Unknown LAP operand `(wplus2 (wshift (wplus2 ($local a) (wconst 1)) (
immediate 2)) (field ($local b) (wconst 5) (wconst 27)))'
Break loop
6 lisp break>> 
 3-Jan-83 14:36:52-PST,431;000000000000
Date: 3 Jan 1983 14:35:17-PST
From: douglas at HP-MARS
To: psl@hulk
Subject: bug in psl on chipmunk (in fasl and RESTORE).

If I have the filer preloaded into my Chipmunk pascal environment, 
and I try (load strings) or (load compiler), I get 
some kind of illegal memory / bus error.
Everything works fine if I don't preload the filer.
I made sure there was enough bps and heap space to load these modules in.
	Douglas
 4-Jan-83 07:26:02-PST,969;000000000000
Mail-From: GRISS created at  4-Jan-83 07:23:11
Date:  4 Jan 1983 0723-PST
From: GRISS at HP-HULK
Subject: Picture RLISP
To: PSL-Users: ;
cc: psl at HP-HULK

In response to a number of requests, I have made some changes to
PictureRLISP so that It can now be run under PSL (without INFIX
syntax) as well as RLISP. I have also fixed some bugs that somehow
crept in over the past few months.

See the files on pnew, shortly to be moved to PU:, PL: and PH:

PRLISP.HLP and PRLISP2D.HLP describe briefly how to run the
3D and 2D versions on the HP2648a.

PR-DEMO.RED, PR-DEMO.SL PR2D-DEMO.RED and PR2D-DEMO.SL are
appropriate demo files.

The files PRLISP.LAP and PRLISP2D.LAP load the appropriate
.B files.


I had make some significant changes to the RLISP parser to permit
both .RED and .SL versions to coexist... the RLISP itself has
not yet been moved to pnew:, but these files should work.

BUGS/COMPLAINTS/QURIES to <griss>@hulk.
-------
 4-Jan-83 12:37:05-PST,484;000000000000
Date: 4 Jan 1983 12:34:27-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Tue Jan  4 13:19:18 1983
Received: from UTAH-20 by UTAH-20; Tuesday, 4 Jan 83 12:15:19-MST
Date:  4 Jan 1983 1215-MST
From: Robert R. Kessler <KESSLER at UTAH-20>
Subject: This is a test message
To: Psl-Bugs at UTAH-20

This is a test to make sure that we do not have any cycles in our psl bug
reporting.  This should go to all local buggee's and send off to hp's
local bugees.

Bob.
-------

 5-Jan-83 11:55:45-PST,826;000000000000
Date: 5 Jan 1983 11:51:03-PST
From: douglas at HP-VENUS
To: localpsl@hulk

>From Mailer@HP-HULK Wed Jan  5 11:44:40 1983
Date:  5 Jan 1983 1145-PST
From: The Mailer Daemon <Mailer at HP-HULK>
To: douglas at HP-VENUS
Subject: Message of 5-Jan-83 11:37:56
Status: R

Message failed for the following:
! Equivalent to localpsl here! -localpsl ! Local distribution list at HP-HULK: No such mailbox
no network forwarding! at HP-HULK: No such mailbox
            ------------
Date: 5 Jan 1983 11:36:42-PST
From: douglas at HP-VENUS
To: psl@hulk
Subject: strange uniqueness to chipmunk psl (in prompt).

Why does the prompt gain a ">" with each dumplisp performed?
(when the dump'd object is restored, the prompt has one more">" than
it did in the running psl in which it was dumped.)

	Douglas
-------


 5-Jan-83 11:55:47-PST,1043;000000000000
Date: 5 Jan 1983 11:51:15-PST
From: douglas at HP-VENUS
To: localpsl@hulk

>From Mailer@HP-HULK Wed Jan  5 11:44:43 1983
Date:  5 Jan 1983 1145-PST
From: The Mailer Daemon <Mailer at HP-HULK>
To: douglas at HP-VENUS
Subject: Message of 5-Jan-83 11:40:20
Status: R

Message failed for the following:
! Equivalent to localpsl here! -localpsl ! Local distribution list at HP-HULK: No such mailbox
no network forwarding! at HP-HULK: No such mailbox
            ------------
Date: 5 Jan 1983 11:39:06-PST
From: douglas at HP-VENUS
To: psl@hulk
Subject: prompt in psl

Is there any easy way to change the prompt in psl?  As in the c-shell, where
you can say (setq prompt "My new prompt") or (setq prompt "My new prompt !$")
where !$ gets replaced with the current history number?  (My memory of csh
is not too good in this case,  I know there is a character sequence which
means substitute the current history number, but I do not remember what it 
is so I used !$ above.)
							Thanks,

								Douglas

-------


 5-Jan-83 16:52:02-PST,192;000000000000
Date:  5 Jan 1983 1649-PST
From: PERDUE at HP-HULK
Subject: ExitLISP on the DEC-20
To: PSL

I have added ExitLISP to the file P20:system-extras.red.  It is a
synonym for QUIT.
-------
 5-Jan-83 17:12:04-PST,310;000000000000
Date:  5 Jan 1983 1710-PST
From: PERDUE at HP-HULK
Subject: BR and UNBR documentation
To: PSL
cc: Lanam

Doug Lanam has pointed out that BR and UNBR do not exist on the VAX.
These do not exist on the DEC-20 either, and in fact our PSL NEWS file
says they have been entirely removed from PSL.
-------
 6-Jan-83 06:26:03-PST,461;000000000000
Mail-From: GRISS created at  6-Jan-83 06:22:32
Date:  6 Jan 1983 0622-PST
From: GRISS at HP-HULK
Subject: Gsort.red
To: kendZIERSKI at HP-HULK, perduE at HP-HULK
cc: psl at HP-HULK

I have a faster GSORT from Galway, but it uses COMMON, USEFUL, etc,
]and causes problems with some of RCREF, since FOR gets redefined, and
so the FOR analysis function needs to be corrected. I think we need to
make ALL the FOR's compatible syntax, semantics.
-------
 6-Jan-83 08:45:40-PST,306;000000000000
Date:  6 Jan 1983 0842-PST
From: AS at HP-HULK
Subject: bug
To: PSL
cc: AS

If PSL is interrupted (e.g. ^C'ed) while a garbage collection is in progress,
then if it is restarted (as opposed to CONTINUED), the garbage collection should
be resumed and completed before resetting the world.
-------
 6-Jan-83 12:37:24-PST,441;000000000000
Date: 6 Jan 1983 12:34:28-PST
From: daemon at HP-VENUS
Via: utah-cs
Date:  6 Jan 1983 1135-MST
From: Robert R. Kessler <KESSLER at UTAH-20>
Subject: Rlisp Parser Bug
To: psl-bugs at UTAH-20

The following code will not parse (in file <kessler.psl>quit.red):

% Neither of the following will work.  When loading them, you must say yes to
%  continue.

procedure foo;
<<quit()>>;

procedure foo;
<<quit>>;

end;
-------

 6-Jan-83 14:42:25-PST,360;000000000000
Date: 6 Jan 1983 14:31:06-PST
From: douglas at HP-MARS
To: griss@Hulk, psl@hulk
Subject: psl on the vax

Can the psl on the vax be remade with the bps increased by 50000 words.  I
do not mind if this is taken out of heap space.
As heap space is very, very large at present.
This is needed to provide a psl which can fit all of frl and gpsg.
	Douglas
 6-Jan-83 16:57:27-PST,716;000000000000
Date: 6 Jan 1983 16:55:34-PST
From: OTHMER@UTAH-20 at HP-VENUS
Via: utah-cs
Date:  6 Jan 1983 1449-MST
From: Bobbie Othmer <OTHMER at UTAH-20>
Subject: bug in putd
To: psl-bugs at UTAH-20

There is a small bug in PutD.  The property indicator TYPE is no
longer used to record whether an id is global or fluid.  The following
test is always false.  This won't cause any problems but should
probably be fixed next time somebody builds the kernel.

    else begin scalar VarType, PrintRedefinedMessage, OldIN, PromptString!*,
			QueryResponse;
	if (VarType := get(FnName, 'TYPE))
		and (VarType = 'FLUID or VarType = 'GLOBAL) then
	    ErrorPrintF("*** %r is a non-local variable", FnName)
-------

 7-Jan-83 17:23:30-PST,204;000000000000
Mail-From: PERDUE created at  7-Jan-83 17:22:04
Date:  7 Jan 1983 1722-PST
From: Cris Perdue <Perdue at HP-HULK>
Subject: Test
To: PSL at HP-HULK

Test of the bug reporter function (bug).
-------
 7-Jan-83 17:33:28-PST,145;000000000000
Date:  7 Jan 1983 1728-PST
From: Cris Perdue <Perdue at HP-HULK>
Subject: Another test
To: PSL at HP-HULK

Another test of "bug".
-------
 8-Jan-83 17:56:40-PST,630;000000000000
Date: 8 Jan 1983 17:54:51-PST
From: douglas at HP-VENUS
To: psl@hulk
Subject: recursive garbage collection

I have just gotten a garbage collection that kept saying:
*** Garbage collection starting
*** Garbage collection starting
*** Garbage collection starting
*** Garbage collection starting
*** Garbage collection starting
*** Garbage collection starting
*** Garbage collection starting
*** Garbage collection starting
*** Garbage collection starting


Over and over and over.

I think I can reproduce it, but not without running the ic demo.
This occurs on the vax (not known if it occurs anywhere else).
 9-Jan-83 01:41:36-PST,486;000000000000
Date: 9 Jan 1983 01:36:14-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Sat Jan  8 22:38:41 1983
Received: from UDEL-RELAY by UTAH-20; Saturday, 8 Jan 83 22:36:14-MST
Return-Path: <mmdf@udel-relay>
Date:  3 Jan 1983 0716-PST
From: GRISS@HP-HULK
Subject: ExitLISP on 20
To: psl@HP-HULK, GRISS@@, @, HP-labs@HP-VENUS, HP-VENUS@RAND-RELAY
Via:  HP-Labs; 3 Jan 83 19:26-PDT
Via:  rand-relay; 4 Jan 83 21:50-EST

Need to add Exitlisp (as alias for Quit?) on 20.
-------


 9-Jan-83 01:41:38-PST,815;000000000000
Date: 9 Jan 1983 01:36:19-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Sat Jan  8 22:39:18 1983
Received: from UDEL-RELAY by UTAH-20; Saturday, 8 Jan 83 22:36:55-MST
Return-Path: <mmdf@udel-relay>
Date: 3 Jan 1983 10:46:01-PST
From: douglas@HP-VENUS
Subject: compiler bug
To: psl@hulk
Via:  HP-Labs; 3 Jan 83 19:26-PDT
Via:  rand-relay; 4 Jan 83 21:50-EST


(de x (a b)
  (cons a (igetv b a)))

Compiles fine.


(de x (a b)
  (cond ((igetv b a) (cons a (igetv b a)))))

Compiles fine.

But:
The following does not:

(de x (a b)
  (and (igetv b a) (cons a (igetv b a))))

It gives the following error message:
***** 
Unknown LAP operand `(wplus2 (wshift (wplus2 ($local a) (wconst 1)) (
immediate 2)) (field ($local b) (wconst 5) (wconst 27)))'
Break loop
6 lisp break>> 


 9-Jan-83 01:41:40-PST,711;000000000000
Date: 9 Jan 1983 01:36:24-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Sat Jan  8 22:39:56 1983
Received: from UDEL-RELAY by UTAH-20; Saturday, 8 Jan 83 22:38:53-MST
Return-Path: <mmdf@udel-relay>
Date: 3 Jan 1983 14:35:17-PST
From: douglas@HP-MARS
Subject: bug in psl on chipmunk (in fasl and RESTORE).
To: psl@hulk
Via:  HP-Labs; 3 Jan 83 19:27-PDT
Via:  rand-relay; 4 Jan 83 21:51-EST

If I have the filer preloaded into my Chipmunk pascal environment, 
and I try (load strings) or (load compiler), I get 
some kind of illegal memory / bus error.
Everything works fine if I don't preload the filer.
I made sure there was enough bps and heap space to load these modules in.
	Douglas


 9-Jan-83 01:41:42-PST,540;000000000000
Date: 9 Jan 1983 01:36:30-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Sat Jan  8 22:56:14 1983
Received: from UDEL-RELAY by UTAH-20; Saturday, 8 Jan 83 22:54:16-MST
Return-Path: <mmdf@udel-relay>
Date: 31 Dec 1982 21:18:58-PST
From: douglas@HP-VENUS
Subject: chipmunk non recursive garbage collector
To: griss@hulk, psl@hulk
Cc: benson@hulk, tracy@hulk
Via:  HP-Labs; 1 Jan 83 6:41-PDT
Via:  rand-relay; 2 Jan 83 18:29-EST

I have found that it is working fine for me, and handles the frl
structures well.
	Douglas


 9-Jan-83 01:41:44-PST,700;000000000000
Date: 9 Jan 1983 01:36:34-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Sat Jan  8 22:58:39 1983
Received: from UDEL-RELAY by UTAH-20; Saturday, 8 Jan 83 22:57:30-MST
Return-Path: <mmdf@udel-relay>
Date:  1 Jan 1983 1036-PST
From: GRISS@HP-HULK
Subject: RLISP hooks
To: psl@HP-HULK, GRISS@@, @, HP-labs@HP-VENUS, HP-VENUS@RAND-RELAY
Via:  HP-Labs; 1 Jan 83 19:14-PDT
Via:  rand-relay; 2 Jan 83 18:33-EST

Need to change DEFINEROP to be a macro, so that it creates PUT's
in files for RLISP parser calls. Then files will load into PSL
without RLISP, and work when RLISP loaded.

Need to examine Pu:RLISP-PARSER.RED.

Alternativ is to haved DEFINEROP etc in "kernel".
-------


 9-Jan-83 01:41:46-PST,855;000000000000
Date: 9 Jan 1983 01:36:39-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Sat Jan  8 22:59:16 1983
Received: from UDEL-RELAY by UTAH-20; Saturday, 8 Jan 83 22:57:47-MST
Return-Path: <mmdf@udel-relay>
Date:  1 Jan 1983 1121-PST
From: douglas <LANAM@HP-HULK>
Subject: Thanks for help in getting pfrl to run on chipmunk.
,
To: griss@HP-HULK, LANAM@@@HP-labs, HP-VENUS@RAND-RELAY, benson@HP-HULKc3
,
        LANAM@@@HP-labs, HP-VENUS@RAND-RELAY, tracy@HP-HULK, LANAM@@@HP-labs|
,
        HP-VENUS@RAND-RELAY, osnos@HP-HULK, LANAM@@@HP-labs, LANAM@@@HP-labs|
        HP-VENUS@RAND-RELAY
Cc: psl@HP-HULK, LANAM@@@HP-labs, HP-VENUS@RAND-RELAY
Via:  HP-Labs; 1 Jan 83 19:14-PDT
Via:  rand-relay; 2 Jan 83 18:33-EST

Thank you all for you help in my getting pfrl to run on the chipmunk.
I appreciate it very much.
	Douglas
-------


 9-Jan-83 01:41:48-PST,1284;000000000000
Date: 9 Jan 1983 01:36:44-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Sat Jan  8 23:29:32 1983
Received: from UDEL-RELAY by UTAH-20; Saturday, 8 Jan 83 23:28:13-MST
Return-Path: <mmdf@udel-relay>
Date:  4 Jan 1983 0723-PST
From: GRISS@HP-HULK
Subject: Picture RLISP
To: PSL-Users.@HP-labs, GRISS@;, @, HP-labs@HP-VENUS
Cc: psl@HP-HULK, GRISS@@, @, HP-labs@HP-VENUS, HP-VENUS@RAND-RELAY
Via:  HP-Labs; 4 Jan 83 23:21-PDT
Via:  rand-relay; 5 Jan 83 12:31-EST

In response to a number of requests, I have made some changes to
PictureRLISP so that It can now be run under PSL (without INFIX
syntax) as well as RLISP. I have also fixed some bugs that somehow
crept in over the past few months.

See the files on pnew, shortly to be moved to PU:, PL: and PH:

PRLISP.HLP and PRLISP2D.HLP describe briefly how to run the
3D and 2D versions on the HP2648a.

PR-DEMO.RED, PR-DEMO.SL PR2D-DEMO.RED and PR2D-DEMO.SL are
appropriate demo files.

The files PRLISP.LAP and PRLISP2D.LAP load the appropriate
B files.


I had make some significant changes to the RLISP parser to permit
both .RED and .SL versions to coexist... the RLISP itself has
not yet been moved to pnew:, but these files should work.

BUGS/COMPLAINTS/QURIES to <griss>@hulk.
-------


 9-Jan-83 01:41:50-PST,437;000000000000
Date: 9 Jan 1983 01:36:49-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Sun Jan  9 01:19:31 1983
Received: from UDEL-RELAY by UTAH-20; Sunday, 9 Jan 83 01:18:30-MST
Return-Path: <mmdf@udel-relay>
Date:     9 Jan 83 1:46:33-EST (Sun)
From: G. B. Reilly <reilly@udel-relay>
Subject:  Information
To: psl-bugs@utah-20

Could you please send me some information about the current state of PSL?


Thanks,

Brendan Reilly

10-Jan-83 12:38:59-PST,631;000000000000
Date: 10 Jan 1983 12:34:39-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: 10 Jan 1983 0801-MST
From: Robert R. Kessler <KESSLER at UTAH-20>
Subject: Floats
To: psl-bugs at UTAH-20

Floats with a large number of digits after the decimal point are really weird:

[PHOTO:  Recording initiated  Mon 10-Jan-83 7:59AM]

@rlisp
PSL Rlisp
Exiting rlisp
PSL 3.1 Rlisp, 27-Oct-82
[1] 1.1234567890;
1.1234568
[2] 12.1234567890;
12.123457
[3] 123.1234567890;
20.044242
[4] 123.123456789;
20.044242
[5] 123.12345678;
123.12346
[6] quit;
@po

[PHOTO:  Recording terminated Mon 10-Jan-83 8:00AM]

Bob.
-------

10-Jan-83 12:39:02-PST,356;000000000000
Date: 10 Jan 1983 12:34:46-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: 10 Jan 1983 0907-MST
From: Robert R. Kessler <KESSLER at UTAH-20>
Subject: Possible Compiler Bug
To: psl-bugs at UTAH-20

It seems that the compiler gets a Label NIL not found error when compiling
something of the form:  (EQ (FOO X)) within a cond..  

Bob.
-------

10-Jan-83 15:46:42-PST,568;000000000000
Date: 10 Jan 1983 15:40:58-PST
From: douglas at HP-VENUS
To: psl@hulk
Subject: psl bug in readch and readchar on vax.
Cc: '@HP-VENUS

If you do
(Setq x (readchar))^D<cr>  where ^D is a cntrl-d and <cr> is a return,
you should get x set to 4.  Instead you get x set to 10.  It seems
the eof is ignored by readchar. 
Readch works similar.

If you type:
(setq x (readchar))^D^D, then x will get set to 4.

This only seems to appear on the vax.  On the hulk, it seems to work fine
to type:
(setq x (readchar))^Z<cr>.

(X will get set to 26).
	Douglas
11-Jan-83 14:18:03-PST,236;000000000000
Date: 11 Jan 1983 1414-PST
From: PERDUE at HP-HULK
Subject: Re: Floats
To: PSL
In-Reply-To: Your message of 10-Jan-83

Bob Kessler's bug concerning input of floating point numbers has
already been fixed by Eric Benson.
-------
11-Jan-83 15:38:05-PST,482;000000000000
Date: 11 Jan 1983 1536-PST
From: PERDUE at HP-HULK
Subject: Re: psl bug in readch and readchar on vax.
To: 
cc: PSL
In-Reply-To: Your message of 10-Jan-83

I have the following information from Ken Greer:

When reading from the terminal (and not in "raw mode"), no Unix
program "sees" ^D's in the input buffer.  A ^D causes the "read"
system call to return, but does not itself appear in the input buffer.
The phenomenon you noticed is not a PSL bug.
-------
-------
11-Jan-83 15:43:14-PST,321;000000000000
Date: 11 Jan 1983 1542-PST
From: AS at HP-HULK
Subject: problem with On
To: PSL
cc: AS

A top-level form (ON FOO) is ineffective at load time unless enclosed in
BothTimes or LoadTime.  The manual gives no hint that this is the case.
I'm not sure that the present behavior is the "right thing", however.
-------
11-Jan-83 23:50:12-PST,303;000000000000
Date: 11 Jan 1983 23:53:36-PST
From: douglas at HP-MARS
To: psl@hulk
Subject: compiler check

If psl has a function already existing in memory and compiles a call
to it, could the compiler check that the correct number of arguments are
given (This would only be in the case of exprs).
	Douglas
12-Jan-83 13:54:38-PST,296;000000000000
Date: 12 Jan 1983 1353-PST
From: PERDUE at HP-HULK
Subject: Re: compiler check
To: douglas at HP-MARS
cc: PSL
In-Reply-To: Your message of 11-Jan-83

Argument number checking in the compiler would be a darned good idea.
Extensive work on the compiler will soon be done at Utah.
-------
12-Jan-83 21:20:07-PST,771;000000000000
Mail-From: GRISS created at 12-Jan-83 21:17:04
Date: 12 Jan 1983 2117-PST
From: GRISS at HP-HULK
Subject: VAX
To: psl at HP-HULK

I have rebuilt VAX system, incorporating essentially all of the
changes made recetnly to the 20, such as continuable errors from]
compiled code, better format Errors, LPOSN, etc. ALso included are
the new comands from Utah, for CD("..."), GETENV("...") and PWD().

The system includes a command to get the command line as a vector,
which can be used to make PSLCOMP work like the 20. Unfortunately,
this still seems to get only 1 argument, the program name itself.

Perhaps a UTah fix will be forthcoming soon.

Next step to rebuild all of $PU, test and then attempt to move latest
system to MARS (mercury?)

M
-------
13-Jan-83 18:54:51-PST,395;000000000000
Date: 13 Jan 1983 1851-PST
From: PERDUE at HP-HULK
Subject: Re: Possible Compiler Bug
To: 
cc: PSL
In-Reply-To: Your message of 10-Jan-83

There certainly is a bug in the compiler with (EQ (FOO X)).  Martin
has some code well underway to provide rather general checking of
number of arguments, so I'll just say the problem will cease sometime
not too long from now.
-------
-------
13-Jan-83 20:09:36-PST,315;000000000000
Date: 13 Jan 1983 20:13:10-PST
From: douglas at HP-MARS
To: psl@hulk
Subject: psl bug with files.

If you say
(setq out* xx)
Where xx is not a legal port, 
	The system just does 
***** Segmentation violation
***** Segmentation violation

At the least, a warning about this should be put in the manual.
13-Jan-83 21:14:24-PST,193;000000000000
Date: 13 Jan 1983 21:16:48-PST
From: douglas at HP-MARS
To: psl@hulk
Subject: eof flag

Can a flag be added that prevents eof (sent from a terminal only) from
exiting lisp on the vax?  
14-Jan-83 09:08:08-PST,171;000000000000
Date: 14 Jan 1983 0903-PST
From: PERDUE at HP-HULK
Subject: Bug in PUTD
To: PSL

I have updated the source for PUTD in response to Bobbie Othmer's
report.
-------
16-Jan-83 10:06:12-PST,463;000000000000
Mail-From: GRISS created at 16-Jan-83 10:04:10
Date: 16 Jan 1983 1004-PST
From: GRISS at HP-HULK
Subject: laod vs Imports
To: psl at HP-HULK

I suggest that IMPORTS be flushed. I belive that now LOAD in a file works
just fine, ie LOADs immediately if file is .SL, .RED, but defers on a pending
stack if this is .B file, to avould FASLIN inside FASLIN. This is what
IMPORTS currently does, except that IMPORTS doenst work in interpreted code.

-------
17-Jan-83 17:11:51-PST,625;000000000000
Mail-From: ROSENBERG created at 17-Jan-83 17:08:32
Date: 17 Jan 1983 1708-PST
From: Steven <ROSENBERG at HP-HULK>
Subject: trace, step
To: psl at HP-HULK

1. There should be a command that untraces everything without having to
specify a list of functions.

2. I tried (untr <function>) on various functions. It only seems to work 
half the time.

3. I tried step. Afterwards it seemd to screw up the orfinary top-level
read-eval loop.

4. There should be a step mode where you turn it on for a function, and when
in t he course of normal events that function gets called, you are then stepping
it.
-------
18-Jan-83 18:48:09-PST,289;000000000000
Date: 18 Jan 1983 18:50:41-PST
From: douglas at HP-MARS
To: psl@hulk
Subject: flag to kill eof exiting

I need to be able to shut off the feature that eof (^D) at top
level exits psl.  This is annoying when a ^D is accidently sent and
I loose 30 minutes or more of work.
	Douglas
19-Jan-83 11:53:36-PST,100;000000000000
Date: 19 Jan 1983 11:57:45-PST
From: perdue at HP-MARS
To: psl@HP-MARS
Subject: foo

Testing.
19-Jan-83 15:03:49-PST,929;000000000000
Date: 19 Jan 1983 15:08:42-PST
From: douglas at HP-MARS
To: psl@hulk
Subject: inconsistensy with explode.

Explode acts differently whether or not the flag *lower is set.
It should do the same thing in either case.  I thought *lower is only
used for lowercasing output.

Note: if *lower is t, explode makes its list with the letters
actually being the lower case letters.  (Thus I can not say
					      that any letter
					      is equal to any
					      letter I can type in).

Explode should not lower casify the letters in the id name 
(unless they already are in lower case (in the id table)).

	Douglas

1 lisp> (Setq a 'abcd)
ABCD
2 lisp> (explode a)
(A B C D)
3 lisp> (setq *lower t)
t
4 lisp> (explode a)
(a b c d)
5 lisp> (equal (ans 2) (ans 4))
nil
6 lisp> (equal (car (ans 2)) 'a)
t
7 lisp> (equal (car (ans 4)) 'a)
nil
8 lisp> (equal (car (ans 4)) 'A)
nil
9 lisp> Exiting lisp
19-Jan-83 15:23:35-PST,243;000000000000
Date: 19 Jan 1983 15:25:36-PST
From: douglas at HP-MARS
To: psl@hulk
Subject: correct definition of explode

If you do 
(let ((*lower nil))
	(explode ..)))
where .. is your argument, you get a correct definition of explode.
	Douglas
21-Jan-83 14:37:41-PST,525;000000000000
Date: 21 Jan 1983 14:40:43-PST
From: douglas at HP-MARS
To: psl@hulk
Subject: why two gc's when dumplisp is called?

*** Garbage collection starting
*** GC 9: time 1343 ms, 8303 recovered, 386655 free
*** Garbage collection starting
*** GC 10: time 1462 ms, 0 recovered, 386656 free



Always when I call dumplisp, 2 gc's are performed.  The second always seems to have done
nothing useful.  Why does this happen?  Is it possible to 
eliminate the second gc?
(This behaviour is noticed on the vax).
	Douglas
21-Jan-83 16:17:37-PST,1172;000000000000
Date: 21 Jan 1983 16:22:24-PST
From: douglas at HP-MARS
To: psl@hulk
Subject: the following does not work correctly compiled:
Cc: gawron@HP-MARS


Function:

(macro proog (l)
  (list 'prog (list 'var)
	(list 'setq 'var 2)
	(setq Loope (gensym))
	(list 'cond (list (list 'eq 'var 0) 
			  (list 'return 'var))
	      (list t nil))
	(list 'prin1 ''HI)
	(list 'setq 'var (list 'sub1 'var))
	(list 'go loope)))

Expansion of (proog) with proog running interpretively:
(PROG (VAR)
      (SETQ VAR 2)
      G0004
      (COND ((EQ VAR 0) (RETURN VAR)) (T NIL))
      (PRIN1 'HI)
      (SETQ VAR (SUB1 VAR))
      (GO G0004))

This above works fine over and over if proog is not compiled:

Next we compile proog:

Expansion of (proog) with proog running compiled:
(PROG (VAR)
      (SETQ VAR 2)
      G0020
      (COND ((EQ VAR 0) (RETURN VAR)) (T NIL))
      (PRIN1 'HI)
      (SETQ VAR (SUB1 VAR))
      (GO G0004))

Note, the difference.  I think it has something to do with declaring
loope to be special.  It makes the change for the go part, but does
not produce the special/fluid reference for the assignment part.

	Douglas

24-Jan-83 12:38:44-PST,2733;000000000000
Date: 24 Jan 1983 12:35:28-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: 24 Jan 1983 0941-MST
From: Robert R. Kessler <KESSLER@UTAH-20>
Subject: Compiler Bug
To: psl-bugs@UTAH-20

When an argument to a function is named W, and eqcar is called, the fails to 
generate the correct code.  Somehow it doesn't save the value of the W
argument:

Notice that in the second example, reg 1 is saved in reg 4:

[PHOTO:  Recording initiated  Mon 24-Jan-83 9:37AM]

@psl
PSL 3.1, 18-Jan-83
1 lisp> (on comp plap pgwd)
NIL
2 lisp> (de foo (u v w) (eqcar u 'foo))
(*ENTRY FOO EXPR 3)
(*ALLOC 0)
(*JUMPTYPE (LABEL G0004) (REG 1) PAIR)
(*MOVE (QUOTE NIL) (REG 1))
(*JUMP (LABEL G0005))
(*LBL (LABEL G0004))
(*MOVE (QUOTE T) (REG 1))
(*LBL (LABEL G0005))
(*JUMPEQ (LABEL G0001) (REG 1) (QUOTE NIL))
(*MOVE (CAR (REG 3)) (REG 1))
(*JUMPEQ (LABEL G0006) (REG 1) (QUOTE FOO))
(*MOVE (QUOTE NIL) (REG 1))
(*EXIT 0)
(*LBL (LABEL G0006))
(*MOVE (QUOTE T) (REG 1))
(*LBL (LABEL G0001))
(*EXIT 0)
		(FULLWORD 3)
		(*ENTRY FOO EXPR 3)
		(LDB (REG T6) "L0001")
		(CAIN (REG T6) 9)
		(JRST G0004)
		(MOVE (REG 1) (REG NIL))
		(JRST G0005)
G0004		(MOVE (REG 1) (FLUID T))
G0005		(CAMN (REG 1) (REG NIL))
		(JRST G0001)
		(MOVE (REG 1) (INDEXED (REG 3) 0))
		(CAMN (REG 1) "L0002")
		(JRST G0006)
		(MOVE (REG 1) (REG NIL))
		(POPJ (REG ST) 0)
G0006		(MOVE (REG 1) (FLUID T))
G0001		(POPJ (REG ST) 0)
L0001		(FULLWORD (FIELDPOINTER (REG 1) 0 5))
L0002		(FULLWORD (MKITEM 30 (IDLOC FOO)))
*** (FOO): base 261717, length 18 words
FOO
3 lisp> (de fee (u v ww) (eqcar u 'foo))
(*ENTRY FEE EXPR 3)
(*ALLOC 0)
(*MOVE (REG 1) (REG 4))
(*JUMPTYPE (LABEL G0004) (REG 1) PAIR)
(*MOVE (QUOTE NIL) (REG 1))
(*JUMP (LABEL G0005))
(*LBL (LABEL G0004))
(*MOVE (QUOTE T) (REG 1))
(*LBL (LABEL G0005))
(*JUMPEQ (LABEL G0001) (REG 1) (QUOTE NIL))
(*MOVE (CAR (REG 4)) (REG 1))
(*JUMPEQ (LABEL G0006) (REG 1) (QUOTE FOO))
(*MOVE (QUOTE NIL) (REG 1))
(*EXIT 0)
(*LBL (LABEL G0006))
(*MOVE (QUOTE T) (REG 1))
(*LBL (LABEL G0001))
(*EXIT 0)
		(FULLWORD 3)
		(*ENTRY FEE EXPR 3)
		(MOVE (REG 4) (REG 1))
		(LDB (REG T6) "L0003")
		(CAIN (REG T6) 9)
		(JRST G0004)
		(MOVE (REG 1) (REG NIL))
		(JRST G0005)
G0004		(MOVE (REG 1) (FLUID T))
G0005		(CAMN (REG 1) (REG NIL))
		(JRST G0001)
		(MOVE (REG 1) (INDEXED (REG 4) 0))
		(CAMN (REG 1) "L0004")
		(JRST G0006)
		(MOVE (REG 1) (REG NIL))
		(POPJ (REG ST) 0)
G0006		(MOVE (REG 1) (FLUID T))
G0001		(POPJ (REG ST) 0)
L0003		(FULLWORD (FIELDPOINTER (REG 1) 0 5))
L0004		(FULLWORD (MKITEM 30 (IDLOC FOO)))
*** (FEE): base 261745, length 19 words
FEE
4 lisp> (quit)
@po

[PHOTO:  Recording terminated Mon 24-Jan-83 9:40AM]
-------

24-Jan-83 12:58:59-PST,1419;000000000000
Date: 24 Jan 1983 1256-PST
From: PERDUE at HP-HULK
Subject: Compiler problem
To: PSL-Users
cc: PSL

The PSL compiler has a misfeature that may cause obscure bugs in
your programs.  Except for forms like COND and PROGN, evaluation
of subexpressions is not guaranteed to occur in left-to-right
order.  In fact whether it was intended or not, in complex
expressions the subexpressions may be evaluated in any order
whatsoever.  A warning of sorts exists in the reference manual,
but should be made much more strongly.  (There is a flag that is
supposed to turn off the misfeature, but Martin Griss believes
that it does not work, and the manual echoes this belief.)

Here are two examples of actual compiler (mis)behavior:

(de frag () (list (setq x (bletch)) x))

In this example bletch is called first, then the second
element of the list is determined, then x is altered and the
first element of the list determined.  If initially x=1, while
bletch sets x to 2 and returns 3, the value of frag is the list
(3 2).

(de scrog () (list (rplaca x (bletch)) (car x)))

In this example (bletch) gets evaluated first, then (car x), then
the rplaca is done and its value used.  If initially x = (1 2)
and bletch sets x to (3) while returning 4, the value of scrog
will be ((4) 3), with x = (4).

This note is in response to a problem found by Mark Gawron and
reported by Doug Lanam.
-------
24-Jan-83 15:40:09-PST,734;000000000000
Date: 24 Jan 1983 1535-PST
From: PERDUE at HP-HULK
Subject: Re: Compiler Bug
To: PSL
In-Reply-To: Your message of 24-Jan-83

Concerning the compiler bug with eqcar, that's a mean little bug.
We have patched our CMACRO definition for eqcar in the compiler.
(Martin just changed the name "W" to something obscure.)

The problem you noticed is evidently one with handling of open
lambdas by the compiler, but I don't have time to try to fix it
given that Martin believes it to be nontrivial.  Your example
also shows that the compiler is not doing a good job with AND and
OR used for value.  All but the last subform of AND should be
compiled for test, not value.  Again I must pass on fixing this
one for now.
-------
24-Jan-83 15:50:16-PST,197;000000000000
Date: 24 Jan 1983 1546-PST
From: PERDUE at HP-HULK
Subject: *PWRDS switch
To: PSL

This compiler switch (flag) is documented as being initially NIL
where in fact it is initially T.
-------
25-Jan-83 01:35:55-PST,626;000000000000
Date: 25 Jan 1983 01:34:21-PST
From: daemon at HP-VENUS
Via: utah-cs!utah-gr
Date: Mon Jan 24 14:07:39 1983
Received: from UTAH-CS by UTAH-20; Mon 24 Jan 83 14:05:45-MST
Date: 24 Jan 1983 13:19-MST
From: Russ Fish <utah-gr!fish@UTAH-CS>
Subject: Exhausting heap space.
To: utah-gr!psl-bugs@UTAH-CS

"gtHeap" should be able to do better than a FatalError if there is still not
sufficient space after garbage collecting.  Like a non-continuable error
breakloop or at least a reset to keep the whole session from going down the
tubes!  I got bit by (an erroneous) huge mkVect which was hard to find.

-Russ



25-Jan-83 16:30:35-PST,397;000000000000
Date: 25 Jan 1983 1628-PST
From: PERDUE at HP-HULK
Subject: Make!-String function
To: PSL

The definition of the function Make-String has been deleted from
the kernel module "sequence".  A conflicting definition exists in
the STRINGS module, and people here depend on that other
definition being in force.  Martin agrees: hope this causes
miminal pain to people at other sites.
-------
26-Jan-83 17:18:09-PST,125;000000000000
Date: 26 Jan 1983 1715-PST
From: PERDUE at HP-HULK
Subject: Testing
To: PSL

Testing the UUCP mail path . . .
-------
26-Jan-83 18:23:04-PST,412;000000000000
Date: 26 Jan 1983 1822-PST
From: PERDUE at HP-HULK
Subject: Load vs Imports
To: PSL

Martin sent a note suggesting that IMPORTS may be obsolete, that
it doesn't work in interpreted code, and that LOAD delays if
doing the LOAD would result in a recursive FASLIN.  All of these
seem to be false based on a mixture of tests including reading of
code and testing of examples.  Keep using IMPORTS.
-------
27-Jan-83 14:13:22-PST,771;000000000000
Date: 27 Jan 1983 1409-PST
From: PERDUE at HP-HULK
Subject: Re: trace, step
To: ROSENBERG at HP-HULK, PSL
In-Reply-To: Your message of 17-Jan-83

At last a response to your mail about trace and step!

1. Contrary to what the documentation says, the function RESTR
takes no arguments and untraces everything, plus removes overhead
and forgets some information.  This is essentially what you asked
for.

2. Untr works OK for me.

3. Step also has worked OK for me, and I have actually used step
some for real.  If you can show me how it fails, I'll certainly
look closer.

4. I agree with you on the idea of having stepping turned on for
a particular function.  Unfortunately we are not really doing
anything in the line of enhancements now.
-------
27-Jan-83 14:43:20-PST,265;000000000000
Date: 27 Jan 1983 1440-PST
From: PERDUE at HP-HULK
Subject: LineLength of 0
To: PSL
cc: Lanam

I've put in Bob Kessler's change to I/O so that in the future if
LineLength of 0 has been done on a channel, printing routines
won't stick in any EOLs.
-------
27-Jan-83 16:18:17-PST,400;000000000000
Date: 27 Jan 1983 1616-PST
From: PERDUE at HP-HULK
Subject: WVectors
To: PSL

The semantics of WVectors are out of control.  In compiled code
with igetv or syslisp code, it's clear enough, but in interpreted
code it's random.  Word-sized quantities can be stored and
retrieved with no checking or conversion.  WVectors also are
initialized to NIL rather than 0.  All pretty weird.
-------
27-Jan-83 17:23:19-PST,401;000000000000
Date: 27 Jan 1983 1721-PST
From: PERDUE at HP-HULK
Subject: Re: psl bug with files.
To: PSL
cc: Lanam
In-Reply-To: Your message of 13-Jan-83

I have made changes to the sources to fix Doug Lanam's problem
that I/O functions didn't check that I/O channel arguments were
legitimate.  ChannelReadChar, ChannelWriteChar, and Close are
affected.  If I/O is slowed down too much, . . . 
-------
28-Jan-83 11:23:48-PST,725;000000000000
Date: 28 Jan 1983 1122-PST
From: PERDUE at HP-HULK
Subject: Intp, etc.
To: PSL

It turns out that the functions intp, posintp, and negintp are
not defined as such.  Only the compiler knows about them.
Posintp and negintp are currently the type tag testing functions,
with intp and posintp synonymous.  Historically, intp was for
testing the old integer tag.

It makes some sense not to document these for general users
because the relationship between the user's notion of
"integer-ness" and low-level typing is somewhat fluid in LISP.

Interpretive definitions will belong in a package of interpretive
definitions of Syslisp functions, and these should certainly be
documented as part of Syslisp.
-------
28-Jan-83 12:38:02-PST,833;000000000000
Date: 28 Jan 1983 12:35:02-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Jan 28 04:31:55 1983
Received: from RAND-RELAY by UTAH-20; Fri 28 Jan 83 04:29:10-MST
Date: Thursday, 27 Jan 1983 09:28-PST
To: PSL-BUGS at UTAH-20
Cc: lseward at RAND-RELAY, hearn at RAND-RELAY, marti at RAND-RELAY
Subject: Difference between new and old RLISP.
From: marti at RAND-RELAY

The new RLISP parser requires a semicolon after the last statement in a
BEGIN...END block and does not require such in a <<...>> block. The old
RLISP parser did not require the semicolon in the BEGIN...END block. The
symptoms of this problem are that RLISP gobbles up the entire program after
the missing semicolon and doesn't warn you about it. The manual I have
(March 1981) does not specifically state that a semicolon is needed.
Jed Marti.

28-Jan-83 12:38:04-PST,702;000000000000
Date: 28 Jan 1983 12:35:07-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Jan 28 04:32:26 1983
Received: from RAND-RELAY by UTAH-20; Fri 28 Jan 83 04:29:50-MST
Date: Thursday, 27 Jan 1983 13:00-PST
To: PSL-BUGS at UTAH-20
Cc: lseward at RAND-RELAY, hearn at RAND-RELAY, marti at RAND-RELAY
Subject: New "bug" is more subtle than that.
From: marti at RAND-RELAY

The previously reported semicolon bug is the result of an odd interaction
with RLISTAT functions that the old parser did not have. The basic rule
to remember is encapsulated in Marti's thirthfourth law:

  "A statement label in a BEGIN...END block shall not be the name of a
   previously declared RLISTAT function"

28-Jan-83 12:38:06-PST,725;000000000000
Date: 28 Jan 1983 12:35:12-PST
From: daemon at HP-VENUS
Via: utah-cs
Date: Fri Jan 28 10:31:34 1983
Received: from RAND-RELAY by UTAH-20; Fri 28 Jan 83 10:29:44-MST
Date: Friday, 28 Jan 1983 09:17-PST
To: marti at RAND-RELAY
Cc: PSL-BUGS at UTAH-20, lseward at RAND-RELAY, hearn at RAND-RELAY,
    griss.hplabs at UDEL-RELAY, griss at UTAH-20
Subject: Re: Difference between new and old RLISP.
In-reply-to: Your message of Thursday, 27 Jan 1983 09:28-PST.
From: hearn at RAND-RELAY

Jed, the RLISP definition does NOT require that final (pre-END) semicolon.
If the "new" RLISP parser (I assume you mean the one on the PSL tape)
requires it, then it can't parse most of REDUCE!

Martin, what do you think?

28-Jan-83 15:55:25-PST,701;000000000000
Date: 28 Jan 1983 1553-PST
From: PERDUE at HP-HULK
Subject: LoadExtensions*
To: PSL-Project, PSL

Achtung!  The new value for LoadExtensions* combines with the
current procedures for building the compiler
and cross compiler to cause incorrect generation of those
systems.  The problem is that one is expected to connect to the
directory containing the source, while one wants to LOAD the file
on pl:.  Nancy K. will fix the DEC20 .CTL files; when building on
other machines, also be sure not to connect to "pc" or "p20c",
"pvc", etc. when generating compilers.  LOAD will probably be
enhanced yet again so its behavior in searching for a file to
load can be better fine-tuned.
-------
28-Jan-83 20:39:42-PST,205;000000000000
Date: 28 Jan 1983 2034-PST
From: PERDUE at HP-HULK
Subject: Dipthong -> Diphthong
To: PSL

I have changed source code to make dipthong become diphthong in
response to Will Galway's report.
-------
31-Jan-83 08:04:48-PST,366;000000000000
Mail-From: GRISS created at 31-Jan-83 08:01:04
Date: 31 Jan 1983 0801-PST
From: GRISS at HP-HULK
Subject: Mini BUG
To: psl at HP-HULK

A small bug seems to have crept into mini. Seems to relate to an
OLD version of mini. Please rebuild MINI on VAX and 20, and problem will
disappear.

(problem was related to &variables being incorrectly bound).
-------
31-Jan-83 16:17:38-PST,224;000000000000
Date: 31 Jan 1983 1616-PST
From: PERDUE at HP-HULK
Subject: Automatic EOLs in PRINT, etc.
To: PSL

Note that all integers are assumed to take up 10 print positions,
regardless of their actual length (crock).
-------
 2-Feb-83 08:39:43-PST,318;000000000000
Date:  2 Feb 1983 0835-PST
From: AS at HP-HULK
Subject: testing for open channels
To: PSL
cc: AS

I have looked through the I/O chapter of the PSL manual and have not
been able to find any function that I could use to test to see if
a channel is open or not.  Is there one?  If not, there should be.
-------
 2-Feb-83 20:00:43-PST,199;000000000000
Mail-From: GRISS created at  2-Feb-83 19:59:31
Date:  2 Feb 1983 1959-PST
From: GRISS at HP-HULK
Subject: 16#0 missprints 
To: psl at HP-HULK

try 0 in outputbase!* 16, prints as 16#
-------
 3-Feb-83 10:09:19-PST,461;000000000000
Date:  3 Feb 1983 1008-PST
From: AS at HP-HULK
Subject: bad error message
To: PSL
cc: AS

When the catch stack overflows, the error message says that
the binding stack overflowed.  This is because the catchpush
macro in catch-throw.red calls the function bstackoverflow
to report overflow.  This situation needs to be fixed promptly.
People are occasionally getting binding stack overflow errors
and we need to know which stack overflowed.
-------
 3-Feb-83 10:54:22-PST,587;000000000000
Date: 3 Feb 1983 10:59:25-PST
From: douglas at HP-MARS
To: psl@hulk
Subject: xcons

According to the manual, "XCONS" is open compiled:

According to the running psl on the vax, it is not.

9 lisp> (defun a2 (x y) (xcons x y))
                (fullword 2)
                (*entry a2 expr 2)
                (jmp (entry xcons))
a2
Cpu time: 51 ms
10 lisp> ^Z

Same remarks apply to ncons:
10 lisp> (defun a3 (x) (ncons x))
                (fullword 1)
                (*entry a3 expr 1)
                (jmp (entry ncons))
a3
Cpu time: 17 ms
11 lisp> ^Z
	Douglas
 3-Feb-83 10:59:21-PST,434;000000000000
Date: 3 Feb 1983 11:02:41-PST
From: douglas at HP-MARS
To: psl@hulk
Subject: missing set functions: Setminus and Setminus2


If a, b and c are sets.  
The following function is missing from the set of psl set functions:

(Setminus a b c)  { Delete all elements of b and c from a }

which is equivalent to 
(setminus2 (setminus2 a b) c)

Now one must write a loop which deletes each element of b and c from a.
	Douglas
 5-Feb-83 07:49:13-PST,485;000000000000
Date: 5 Feb 1983 07:45:20-PST
From: Galway@UTAH-20 at HP-VENUS
Via: utah-cs
Date:  5 Feb 1983 0400-MST
From: William Galway <Galway@UTAH-20>
Subject: non-decimal output base
To: PSL-BUGS@UTAH-20

When printing a number with OUTPUTBASE!* equal to some number other
than ten, leading zeros are omitted to the extent that zero itself
is not printed properly.  For example, when trying to print
  '(0 1 2 3)
in octal, what's actually printed is
  (8# 8#1 8#2 8#3)
-------

 7-Feb-83 10:39:50-PST,258;000000000000
Mail-From: LANAM created at  7-Feb-83 10:37:55
Date:  7 Feb 1983 1037-PST
From: douglas <LANAM at HP-HULK>
Subject: spelling correction to page 10-6 of manual
To: psl at HP-HULK

on the third line uner Flambdalinkp, "cals" should be "calls".
-------
 7-Feb-83 11:04:52-PST,318;000000000000
Mail-From: LANAM created at  7-Feb-83 11:02:04
Date:  7 Feb 1983 1102-PST
From: douglas <LANAM at HP-HULK>
Subject: set and setq in manual
To: psl at HP-HULK

The comment about the compiler declaring variables in setq fluid, should
be in the section about the compiler, not in the section about setq.
-------
 7-Feb-83 18:31:54-PST,712;000000000000
Date: 7 Feb 1983 18:33:02-PST
From: douglas at HP-MARS
To: psl@hulk
Subject: how does one change a prompt before doing a dumplisp 

which is picked up in the dumplisped version.

I have tried redefine the variable toploopname*.
I have tried redefining the function standardlisp.
I have tried setting init code which sets the variable toploopname*.
None of these work to change the prompt in the dumped file:

(setq toploopname* "dumped frl")
(dumplisp "a.out")

(quit)

% a.out
PSL 
1 lisp>

But I wanted it to say:

% a.out
PSL
1 dumped frl>

I can not seem to get this at all.  How do I do this.  I looked at
the code for main and it seems to keep redefining everything.
	Douglas
 8-Feb-83 10:20:31-PST,507;000000000000
Date: 8 Feb 1983 10:24:08-PST
From: douglas at HP-MARS
To: psl@hulk
Subject: init forms evaluated at start up time.

It would be nice if the evaluation of init-forms when a dumplisp'd file is
started up was after all the internal variables (such as toploopname*, and
the variable which determines what is the main top loop function or something
like that) are set.  Currently it is done before any of this, and thus you
can not customise the dump lisp system easily by using init forms.
	Douglas
 8-Feb-83 14:47:52-PST,598;000000000000
Date: 8 Feb 1983 14:41:58-PST
From: neil at HP-VENUS
Via: utah-cs
Date: Tue Feb  8 11:54:23 1983
Received: from RAND-UNIX by UTAH-20; Tue 8 Feb 83 11:48:50-MST
Date: Tuesday,  8 Feb 1983 10:35-PST
To: psl-bugs at UTAH-20
Cc: lseward at RAND-RELAY
Subject: CopyScanTable function.
From: marti at RAND-UNIX

I am unable to get the CopyScanTable function to work.  When  you  give  it
NIL  as  an  argument  it  dies with an "CopyScanTable expects a valid read
table as an argument".  The same is true when  entering  CURRENTSCANTABLE!*
or LISPSCANTABLE!* (both quoted and unquoted).

 8-Feb-83 14:47:54-PST,464;000000000000
Date: 8 Feb 1983 14:50:38-PST
From: douglas at HP-MARS
To: psl@hulk
Subject: missing read characater token type.

PSL is missing a read character token type.
It appears that if you wish to make a character be a single, delimiting token,
say make "," always be the atom ', as in `(a,b) = '(a , b) ,
not only do you need to make the char type 11 in the current scan table,
you need to remove all read macro definitions off the property list.

	Douglas

16-Feb-83 09:50:35-PST,1278;000000000000
Date: 16 Feb 1983 0950-PST
From: AS at HP-HULK
Subject: load
To: PSL
cc: AS

You might be interested to know that the recent change to Load to make it work
like Imports caused the Objects package to break.  It turns out that Objects
and Common both define a Declare macro.  Common is loaded by Objects, so that
if you loaded Objects, its definition of Declare would take precedence.  Now
that any requested loads are done last, Common's definition takes precedence.

Since Declare is functionally a comment, this problem was not noticed
immediately.  I discovered this problem only by running a timing test on
NMODE, which showed a significant and unexpected increase in refresh time.  I
have fixed the problem by renaming my declare macro to declare-flavor, which
should have been done anyway.

Although the name conflict in this case was not intentional, it seems to me
that it is a valid programming technique to write a module FOO that loads
another module BAR and then redefines some of its functions.  The way Load
currently works, this can be done only by using distinct function names and
invoking some setup function after loadtime to do the redefinitions.  I would
therefore recommend that Load be restored to its previous definition.
-------
16-Feb-83 11:00:33-PST,298;000000000000
Date: 16 Feb 1983 1057-PST
From: AS at HP-HULK
Subject: load
To: PSL
cc: AS

My previous message was in error.  OBJECTS was actually using IMPORTS,
rather than LOAD.  As Martin has informed me, the change to LOAD was not
made, for the reason I pointed out in my previous message.
-------
16-Feb-83 13:55:33-PST,263;000000000000
From: rosenber at HP-MARS
Via: HP-MARS; 16 Feb 1983 13:57:52-PST
To: psl@hulk
Subject: binding stack overflow.

Can psl please break on binding stack overflow and allow some checking of
the stack, and variables.  Currently it just does an automatic reset.
16-Feb-83 13:57:11-PST,181;000000000000
From: rosenber at HP-MARS
Via: HP-MARS; 16 Feb 1983 13:58:48-PST
To: psl@hulk
Subject: last letter

That letter was from douglas@mars.  Please respond there.  Thanks, douglas
17-Feb-83 06:53:56-PST,870;000000000000
From: KESSLER@UTAH-20 at HP-VENUS
Via: HP-VENUS; 17 Feb 1983 06:50:06-PST
Via: utah-cs
Date: 17 Feb 1983 0716-MST
From: Robert R. Kessler <KESSLER@UTAH-20>
Subject: Close()
To: psl-bugs@UTAH-20
cc: Keller@UTAH-20

Calling Close with no arguments causes an:
 ***** undefined function NOCHANGE called from compiled code.

After some investigation, it turns out that the problem is that calling a
function with zero arguments (as opposed to with nil as the argument, 
therefore foo(); is not equivalent to foo nil; although () and nil are
usually equivalent), access to the argument from within the body gets
the code pointer of the function (only happens with compiled code, 
interpreted code checks argument match).  

Is there any fix to this? (other than argument number checking?)  Should
we make foo() equivalent to foo nil???

Bob.
-------

17-Feb-83 09:29:45-PST,329;000000000000
Date: 17 Feb 1983 0925-PST
From: AS at HP-HULK
Subject: fluid
To: PSL
cc: AS

The manual describes the FLUID function as being a pure declaration.
However, in reality, it sometimes SETs the variable to NIL.
I recommend that FLUID be changed not to SET the variable.
(Global, of course, has the same property.)
-------
17-Feb-83 09:29:55-PST,626;000000000000
Date: 17 Feb 1983 0927-PST
From: PERDUE at HP-HULK
Subject: Re: Close()
To: PSL
In-Reply-To: Your message of 17-Feb-83

In my opinion argument number checking is one of the most
attractive alternatives for dealing with the problem of garbage
values for unsupplied arguments.  Individual functions checking
their arguments for validity is also attractive and solves a
somewhat different set of problems.

"Close" for example can check that its argument is an integer in
the appropriate range.  Trying to make arguments default to NIL
looks less desirable to me than providing argument number
checking.
-------
17-Feb-83 11:19:45-PST,177;000000000000
Date: 17 Feb 1983 1116-PST
From: AS at HP-HULK
Subject: backtrace
To: PSL
cc: AS

The function STACKCHECK (used on the 9836) should be omitted from
backtraces.
-------
18-Feb-83 08:30:15-PST,648;000000000000
Mail-From: GRISS created at 18-Feb-83 08:25:52
Date: 18 Feb 1983 0825-PST
From: GRISS at HP-HULK
Subject: Lap-68000 bug
To: psl at HP-HULK

Apparently, LAP on teh 68000's doesnt check the validity of
Operator/operand cobinations as well as it should:

(MOVEA!.L (fluid NIL) (REG d0)) is actually
illegal, but went through fine..

I belive LAP can check, just is sloppy. If LAP is to be used much
as a tool for efficient code until the compiler/code-gens improve,
some effort should go into improving this. 

The symptom was that we got random Bind stack overflows after calling
Wquotient, since NIL was not being reset..
-------
20-Feb-83 01:36:42-PST,624;000000000000
From: daemon at HP-VENUS
Via: HP-VENUS; 20 Feb 1983 01:34:23-PST
Via: utah-cs
Date: 19 Feb 1983 2152-MST
From: Keller@UTAH-20 (Robert M. Keller)
Subject: pattern matching in mini
To: psl-bugs@UTAH-20

The pattern matching feature of mini seems really nice, but it is described
rather tersely in the psl manual.  On looking at the rule for patterns in
mini.min, I get the feeling there are more goodies there, but can't quite
make out what they are on casual reading.

	1.  Is this feature documented elsewhere?

	2.  How about &identifier as well as &number for match variables.

Thanks.

Bob
-------

21-Feb-83 10:48:30-PST,691;000000000000
From: douglas at HP-MARS
Via: HP-MARS; 21 Feb 1983 10:54:14-PST
To: psl@hulk
Subject: *echo

If i do
(setq *echo t) and then dskin a file.
I have found that a line is echod after it has been evaluated.
First you get all output generated by the command, then you see
the command echoed, then you see the return value, followed by an
extra carriage return (I don't know where this came from either).

Thus if we have a.sl:

(print "hello")

And did
(setq *echo t)
(dskin "a.sl")

We will see

"hello"
(print "hello")
"hello"

2 lisp>

I think it would make more sense to see the input first than the
printed side effects and then the resulting value.

	Douglas
21-Feb-83 10:53:30-PST,595;000000000000
From: douglas at HP-MARS
Via: HP-MARS; 21 Feb 1983 10:57:59-PST
To: psl@Hulk
Subject: correction to last letter

I must say I made a mistake.  I tried it out with print and
the system did things in the right order.   The error comes
when I have (faslin ..") in a file.  The redefining messages
come first, then the input line, and lastly the resulting value.
The real problem must be that output to stdout* is not flushed
before output is flushed from errout* (where the redefining 
messages are sent).  Thus the appearance that things are echoed
after they are executed.
	Douglas
21-Feb-83 11:03:37-PST,401;000000000000
Mail-From: GRISS created at 21-Feb-83 11:02:38
Date: 21 Feb 1983 1102-PST
From: GRISS at HP-HULK
Subject: Re: correction to last letter
To: douglas at HP-MARS
cc: GRISS at HP-HULK, psl at HP-HULK
In-Reply-To: Your message of 21-Feb-83 1053-PST

Yes, I think problem is that we are useing 2 different channels, STDOUT and ERROUT
ala unix... I think ERROUT!!* should be set to STDOUT
-------
23-Feb-83 20:21:56-PST,734;000000000000
Date: 23 Feb 1983 20:23:30-PST
From: douglas@HP-MARS
To: psl@hulk
Subject: flush or drain
Cc: rosenber@HP-MARS


I need a function that will flush, drain, or clear an input buffer (stdin*).
What I want is to able to say (flush x) where 

if x is an input (terminal port), then all input waiting is flushed and ignored.
If there is no waiting input, nothing is done.

if x is an output port, than all output is sent (the information is known to
be written to the file or port, but the port is not closed).  At present, I
only know how to do this by closing the port.

Do such commands exist in psl?

If not, Can you please add them?   I need them as soon as possible for the
frl i/o system.

	Thanks,
		Douglas
23-Feb-83 20:31:57-PST,631;000000000000
Date: 23 Feb 1983 20:33:16-PST
From: douglas@HP-MARS
To: psl@Hulk
Subject: tyipeek
Cc: rosenber@HP-MARS


I also need a function that does a (tyipeek)
It will check if there is any character waiting in the input buffer (in*)
If yes, it will return it, (but not advance the input buffer).
If not, it will return nil.  It will not wait for input.

At present, I can not find any function that does anything like this.

Does such a function exist in psl?

If not, can it be added as soon as possible?

This function is needed as soon as possible to make the frl i/o system
work correctly.

	Thanks,

		Douglas
23-Feb-83 21:11:49-PST,460;000000000000
Date: 23 Feb 1983 21:13:19-PST
From: douglas@HP-MARS
To: psl@hulk
Subject: miscount in (posn)


If I output to stdout* some string, then either output a carriage-return 
with no line feed (cntl-M) or output some backspaces (cntrl-H), the printing
is done correctly (backspacing on the screen and rewritting over), but
(posn) reports the position as if the backspace and carriage return were
the same as any other character (example: "a").
	Douglas
23-Feb-83 21:16:50-PST,283;000000000000
Date: 23 Feb 1983 21:21:14-PST
From: douglas@HP-MARS
To: psl@hulk
Subject: correction for (posn)


The correction that will make (posn) correct after backspaces and
carriage returns needs to be made in the file "char-io.red" in the
kernel, somewhere near line 50.
	Douglas
23-Feb-83 21:21:48-PST,347;000000000000
Date: 23 Feb 1983 21:26:15-PST
From: douglas@HP-MARS
To: psl@hulk
Subject: syslisp 


What happened to the section in the manual on syslisp? It used to be right
after the compiler.

I need to know how do I access a variable which is declared in the kernel
with syslisp on, and was declared 

external warray lineposition;

	Douglas
23-Feb-83 22:01:41-PST,416;000000000000
Date: 23 Feb 1983 22:03:38-PST
From: douglas@HP-MARS
To: psl@hulk
Subject: chipmunk psl bug


If you type an id name into psl on the chipmunk that is around
4 line of screen or more long (maybe the limit is less), you will get
thrown out to the operating system (command: compiler ..) with 

error -8: value range error.


Also how can I do relative cursor addressing on the chipmunk in psl?
	Douglas
24-Feb-83 12:41:03-PST,534;000000000000
Date: 24 Feb 1983 1042-MST
From: Keller@UTAH-20 (Robert M. Keller)
Received: by HPLABS via UUCP; 24 Feb 1983 12:36:15-PST (Thu)
Subject: trace package
To: psl-bugs@UTAH-20
Via: uucp host utah-cs; 24 Feb 1983 10:46:58-??? (Thu)


I still want to change the output format from trace.  In particular, I would
like to change the linelength from its current 50-60 chars, and possibly
pretty-print.  Can you tell me where I can access the trace definitions.
I could not find it by searching the directory.

Thanks.
-------

24-Feb-83 12:41:07-PST,1076;000000000000
Date: 24 Feb 1983 1112-MST
From: Keller@UTAH-20 (Robert M. Keller)
Received: by HPLABS via UUCP; 24 Feb 1983 12:36:28-PST (Thu)
Subject: some suggestions for tracing
To: Othmer@UTAH-20
cc: psl-bugs@UTAH-20
Via: uucp host utah-cs; 24 Feb 1983 11:17:10-??? (Thu)


Please change the 50-60 char output lines used by the function trace facility,
or provide info to the user as to how he/she can change it.

I would suggest that a pretty-print of some kind be used for the trace output.
An even more useful (but complicated) trace would be to avoid printing
the same sub-structure time after time, as if printx were used over the entire
tracing session.  Having to visually scan huge s-expressions is difficult.
I realize there are degrees to which individual users would like to have
this happen, but when expressions get really large, the current mode is almost
worthless.  Pretty-printing would alleviate the visualization problem a little.

I will be happy to elaborate (e.g. by means of a demo) if you don't see what
I mean.

Thanks.

Bob
-------

25-Feb-83 10:33:09-PST,300;000000000000
Mail-From: GRISS created at 25-Feb-83 10:29:03
Date: 25 Feb 1983 1029-PST
From: GRISS at HP-HULK
Subject: Writefloat bUG on VAX
To: psl at HP-HULK

.00001 prints incorrectly on the VAX, and can not be read in.
Either need to change the call to C, or replace by a PSL written routine
-------
25-Feb-83 14:03:08-PST,207;000000000000
Date: 25 Feb 1983 14:05:08-PST
From: douglas@HP-MARS
To: nancyk@hulk, psl@HP-MARS
Subject: when will psl return on mars?


The object disappeared.  I need it as soon as possible.
	Thanks,
		Douglas
25-Feb-83 22:28:54-PST,487;000000000000
Date: 25 Feb 1983 1716-MST
From: William Galway <Galway@UTAH-20>
Received: by HPLABS via UUCP; 25 Feb 1983 22:22:48-PST (Fri)
Subject: Possible "bug"
To: PSL-BUGS@UTAH-20
Via: uucp host utah-cs; 25 Feb 1983 17:21:33-??? (Fri)


(LOAD foo)  gives a warning message "foo already loaded" in the Vax
version of PSL,  doesn't complain on the 20.  (If, of course, foo is already
loaded.)

Looks like the Vax version is the older version of LOAD and should be
updated?
-------

 2-Mar-83 11:54:23-PST,356;000000000000
Date:  2 Mar 1983 1153-PST
From: PERDUE at HP-HULK
Subject: LShift
To: PSL

This is documented in the manual as an arithmetic shift and
implemented on the DEC-20 as a fullword logical shift.  In
SYSLISP it maps to WSHIFT which is implemented via the LSH
instruction.

Is the implementation "fully correct" and the documentation
wrong?
-------
 3-Mar-83 06:28:19-PST,716;000000000000
Date:  2 Mar 1983 1746-MST
From: William Galway <Galway@UTAH-20>
Received: by HPLABS via UUCP; 3 Mar 1983 06:22:16-PST (Thu)
Subject: Can someone tell me ...
To: PSL-BUGS@UTAH-20
Via: uucp host utah-cs; 2 Mar 1983 17:51:23-??? (Wed)


... about the SelectQ macro in our Common Lisp compatibility package?
It seems to correspond to the CASE macro described in the latest Common
Lisp manual.  Is the name "SelectQ" inherited from an earlier version of
the Common Lisp manual, or was the name chosen to avoid conflict with some
other CASE function in PSL?  I'm sure Eric Benson knows, but would anyone
else care to guess?  Should we make some effort to convert "SelectQ" to
"case"?

Thanks.
-------

 4-Mar-83 01:01:20-PST,568;000000000000
Date: 4 Mar 1983 01:05:07-PST
From: douglas@HP-MARS
To: psl@hulk
Subject: long name problem in psl.


If I am in the directory ~psl/dist/util, and run psl and say
(load fast-int).  This will fail because numeric-opeators.b is
not in fasl format.  This is because the system tries to
load numeric-operators.b and finds a file numeric-operators in .
(. = current directory) , but this file is actually numeric-operators.sl.
It appears unix can only have 14 letters in a file name, and thus the
binary and source have the same name in this case.  
	Douglas
 4-Mar-83 01:51:11-PST,303;000000000000
Date: 4 Mar 1983 01:55:10-PST
From: douglas@HP-MARS
To: psl@hulk
Subject: *pgwd flag


In what psl source files is this flag declared and used?
I have grepped all files in the kernel, non-kernel, comp, and util and
can find no reference to this flag (upper or lower case).
	Thanks,
		Douglas
 4-Mar-83 09:31:17-PST,233;000000000000
Date:  4 Mar 1983 0927-PST
From: PERDUE at HP-HULK
Subject: SELECTQ documentation
To: PSL

There is now reference manual documentation for SELECTQ, but it
doesn't mention that SELECTQ is in the COMMON library module.
-------
 4-Mar-83 10:11:22-PST,778;000000000000
Date:  4 Mar 1983 1010-PST
From: PERDUE at HP-HULK
Subject: Compiler bug
To: PSL

I have fixed a compiler bug known to cause incorrect code
generation on the DEC-20 and the HP9836.  The SUBPAT pattern (for
WDIFFERENCE code generation) was missing a case.  The contents of
a .sl format patch file I created follows.  The missing case was
the one with the "USESDEST".

(PUT 'SUBPAT 'PATTERN
     '(NIL
       ('*SET DEST (FN A1 A2))
       ((DEST ANY) (MAC A1 A2))
       ((ANY DEST) ('*WMINUS DEST DEST) ('*WPLUS2 A2 A1))
       ((ANY USESDEST) ('*LOAD T1 A2) ('*LOAD DEST A1) (MAC DEST T1))
       (ANY ('*LOAD DEST A1) (MAC DEST A2))))

The following example fails with the current SUBPAT patterns:

(de test (x) (wdifference 2048  (igetv x 4)))
-------
 4-Mar-83 10:46:20-PST,791;000000000000
Date:  4 Mar 1983 0149-MST
From: William Galway <Galway@UTAH-20>
Received: by HPLABS via UUCP; 4 Mar 1983 10:41:43-PST (Fri)
Subject: request for compiler
To: PSL-BUGS@UTAH-20
Via: uucp host utah-cs; 4 Mar 1983 01:49:48-??? (Fri)


The compiler needs to be more careful when expanding CMACROs.  I've
just spent several hours discovering that I was calling SUBSTRING with
two arguments instead three.  When the compiler tries to expand the
CMACRO, it calls the PAIR function with some bad arguments, thus
producing the informative message "Different length lists in PAIR".

Anyone care to attack the problem?  It should be fairly easy, since
all the necessary information (the number of arguments needed, and the
number passed) are both available at compile time.
-------

 5-Mar-83 07:51:13-PST,441;000000000000
Mail-From: GRISS created at  5-Mar-83 07:48:23
Date:  5 Mar 1983 0746-PST
From: GRISS at HP-HULK
Subject: Re: *pgwd flag
To: douglas at HP-MARS
cc: GRISS
In-Reply-To: Your message of 4-Mar-83 0151-PST
Remailed-date:  5 Mar 1983 0748-PST
Remailed-from: GRISS at HP-HULK
Remailed-to: psl at HP-HULK

In principle, should be in LAP; my guess is now obselete; use PCMAC, or PLAP,
instead.

Also, call it SWITCH, not FLAG
-------
 7-Mar-83 09:46:38-PST,344;000000000000
Date: 7 Mar 1983 09:52:04-PST
From: douglas@HP-MARS
To: psl@hulk
Subject: left-expand undefined function


% psl
PSL 3.1, 25-Feb-83
1 lisp> (- 3 4 5)
-6
2 lisp> (load fast-int)
NIL
3 lisp> (- 3 4 5)
***** Undefined function `LEFT-EXPAND' called from compiled code
***** Continuable error.
Break loop
4 lisp break>> ^Z
Stopped
 7-Mar-83 11:23:52-PST,467;000000000000
Date: 7 Mar 1983 11:28:34-PST
From: douglas@HP-MARS
To: psl@hulk
Subject: locking chipmunk keyboard during garbage collection.


How can I prevent having to reboot if the system goes into endless
gc because of lack of space or gets an error during gc.  Currently
shift-reset, shift-stop gets me out but does not unlock the keyboard(I seem
to only be able to get the next program started - like the filer, but can
not type input to this program).
	Douglas
 7-Mar-83 13:53:52-PST,397;000000000000
Date: 7 Mar 1983 13:57:02-PST
From: douglas@HP-MARS
To: psl@hulk
Subject: flag


If you say (flag 'x 'y), nothing happens.
I mean you get no error message.  The function acts like it worked.
But the function did nothing.  Either it should produce an error
message that 'x is not a list, or it should accept the 'x and act like
it was give '(x).  Personally, i prefer the second action.
 7-Mar-83 14:44:05-PST,544;000000000000
Date: 7 Mar 1983 14:48:38-PST
From: douglas@HP-MARS
To: psl@hulk
Subject: locked keyboard problem in chipmunk


I get a lot of locked keyboards with psl where I have to reboot.
This is very, very, very inconvienient.
The troubles come from when a stream file is executing psl and
does something wrong and I want to interrupt it and start over.
I interrupt and stop it and then find I can't get much to work for me.
(I can get the compiler, editor or filer started sometimes, but I can't
  get any input typed into them).
	Douglas
 7-Mar-83 14:53:56-PST,430;000000000000
Date: 7 Mar 1983 14:59:20-PST
From: douglas@HP-MARS
To: psl@hulk
Subject: chipmunk load bug


If you reset out* , stdout* and errout* to say (open "printer" 'output).
then if you do (faslin "xx.b") but xx.b does not exist.
Instead of getting a message on the "printer:" that xx.b can not be found
along with a break point, you get:

Error -10: (No I/o error reported)
Pc = #######

And thrown out of psl.
	Douglas
 8-Mar-83 11:15:28-PST,227;000000000000
Date:  8 Mar 1983 1111-PST
From: SLUTZ at HP-THOR
Received: by HP-MARS via CHAOSNET; 8 Mar 1983 11:22:06-PST
Subject: Re: Tape drive
To: psl@HP-MARS
In-Reply-To: Your message of 8-Mar-83 1105-PST


finished
-------

 8-Mar-83 14:57:45-PST,352;000000000000
Date: 8 Mar 1983 15:00:17-PST
From: douglas@HP-MARS
To: psl@hulk
Subject: why do I need so many psl defined volumes?


Why can't I just work with say one for libraries and one for where the
objects are stored? (say SYS: and PU: on 9836)?
I don't use the others to my knowledge.  There seems to be an overflowing
abundance of psl directories.
 8-Mar-83 17:37:12-PST,274;000000000000
Mail-From: GRISS created at  8-Mar-83 17:32:46
Date:  8 Mar 1983 1732-PST
From: GRISS at HP-HULK
Subject: negative Floats
To: psl at HP-HULK

-1.00 etc doesnt parse correctly in PSL, but OK in RLISP

Also, -5#3 and 5#-3 behave differently in PSL and RLISP
-------
 9-Mar-83 01:42:19-PST,561;000000000000
Date:  6 Mar 1983 1550-MST
From: JW-Peterson@UTAH-20 (John W. Peterson)
Received: by HPLABS via UUCP; 9 Mar 1983 01:38:47-PST (Wed)
Subject: vax psl bug.
To: griss@HP-VENUS, kesSLER@HP-VENUS
cc: galWAY@HP-VENUS
Remailed-date:  7 Mar 1983 0719-MST
Remailed-from: Martin.Griss <Griss@UTAH-20>
Remailed-to: psl-bugs@UTAH-20
Via: uucp host utah-cs; 7 Mar 1983 07:23:38-??? (Mon)


works o.k. on the 20...


1 cs> rlisp
PSL 3.1 Rlisp,  3-Mar-83
[1] outputbase!*:=2;
2#10
[2#10] 27;
2#11011
[2#11] -27;
Illegal instruction
2 cs> 

-------

 9-Mar-83 01:42:20-PST,745;000000000000
Date:  6 Mar 1983 1721-MST
From: JW-Peterson@UTAH-20 (John W. Peterson)
Received: by HPLABS via UUCP; 9 Mar 1983 01:38:52-PST (Wed)
Subject: inconsistancy in base 2 output.
To: griss@HP-VENUS, kesSLER@HP-VENUS
cc: galWAY@HP-VENUS
Remailed-date:  7 Mar 1983 0720-MST
Remailed-from: Martin.Griss <Griss@UTAH-20>
Remailed-to: psl-bugs@UTAH-20
Via: uucp host utah-cs; 7 Mar 1983 07:24:25-??? (Mon)


hmm.  this seems to be inconsistant across versions.

-27 ==>
Dec20:
  2#111111111111111111111111111111100101

Vax:
  (dies w/illegal inst)

Apollo:
  2#-11011
  (which, when parsed again by the reader, results in:
   2#-10101100000011)

not a drasticly important problem, but perhaps worth adding to the list.
-------

 9-Mar-83 03:37:09-PST,292;000000000000
Date:  8 Mar 1983 2009-MST
From: Martin.Griss <Griss@UTAH-20>
Received: by HPLABS via UUCP; 9 Mar 1983 03:31:20-PST (Wed)
Subject: TEST OF MAILING LIST FROM GRISS AT UTAH
To: PSL-BUGS@UTAH-20
cc: griss@UTAH-20
Via: uucp host utah-cs; 8 Mar 1983 20:14:32-??? (Tue)


RSVP
-------

 9-Mar-83 03:37:11-PST,292;000000000000
Date:  8 Mar 1983 2009-MST
From: Martin.Griss <Griss@UTAH-20>
Received: by HPLABS via UUCP; 9 Mar 1983 03:31:23-PST (Wed)
Subject: TEST OF MAILING LIST FROM GRISS AT UTAH
To: PSL-BUGS@UTAH-20
cc: griss@UTAH-20
Via: uucp host utah-cs; 8 Mar 1983 20:14:32-??? (Tue)


RSVP
-------

 9-Mar-83 05:36:41-PST,200;000000000000
Mail-From: GRISS created at  9-Mar-83 05:36:19
Date:  9 Mar 1983 0536-PST
From: GRISS at HP-HULK
Subject: Test of mailing| list
To: psl at HP-HULK

Sent from HP;RSVP, Utah especially.
-------
 9-Mar-83 10:06:07-PST,131;000000000000
Date:  9 Mar 1983 1001-PST
From: PERDUE at HP-HULK
Subject: Test
To: PSL

Testing.  Bob Kessler please acknowledge.
-------
 9-Mar-83 10:31:02-PST,218;000000000000
Date:  9 Mar 1983 1029-PST
From: PERDUE at HP-HULK
Subject: Input of floating point numbers
To: PSL

Negative floating point numbers are read as positive numbers on
PSL on HULK.  E.g. -3.5 becomes 3.5.
-------
 9-Mar-83 10:46:01-PST,753;000000000000
Date: 9 Mar 1983 10:47:22-PST
From: douglas@HP-MARS
To: psl@hulk
Subject: bugs in chipmunk psl dumplisp.


If the file that you are trying to dump into already exists,
you get an operating system error:

Error: -3 .

Also, how do I unset the keyboard if I get stuck in psl where shift-reset is
the only way out.  I have found times when shift-stop is ignored and I
need to reset (especially if the gc breaks for some reason), or when I
get thrown out by operating system errors that are not continuable.
Then I have to turn my machine off (I don't trust "sb" anymore after
one day of strange things happening - files not being unlocked on the SRM,
and my losing memory that didn't come back until I turned my machine off).

	Douglas
 9-Mar-83 13:12:50-PST,991;000000000000
Date:  7 Mar 1983 1616-MST
From: William Galway <Galway@UTAH-20>
Received: by HPLABS via UUCP; 9 Mar 1983 13:05:48-PST (Wed)
Subject: Re: inconsistancy in base 2 output.
To: JW-Peterson@HP-VENUS, griss@HP-VENUS, kesSLER@HP-VENUS
In-Reply-To: Your message of 6-Mar-83 1721-MST
Remailed-date:  9 Mar 1983 0707-MST
Remailed-from: Martin.Griss <Griss@UTAH-20>
Remailed-to: psl-bugs@UTAH-20
Via: uucp host utah-cs; 9 Mar 1983 07:10:14-??? (Wed)


To my mind, this word-sized dependent printing is WRONG.  Negative numbers
should print as negative numbers.  (I'd say that the correct model is the
BIGNUM stuff--except that's wrong too, at the moment.  E.g. even with BIG
loaded, -10 prints as 8#777777777766 in radix 8, should print as -8#10.)

In fact, PSL really needs better utilities for radix conversion (both
printing and reading) and dealing with various sized words/bytes.  Probably
a lot could be done by just making the current code a bit more accessible.
-------

10-Mar-83 03:17:11-PST,1230;000000000000
Date:  9 Mar 1983 1512-MST
From: Harold Carr <CARR@UTAH-20>
Received: by HPLABS via UUCP; 10 Mar 1983 03:13:15-PST (Thu)
Subject: vax psl version 3.1 installation
To: psl-bugs@UTAH-20
cc: psi.krohnfeldt@UTAH-20
Via: uucp host utah-cs; 9 Mar 1983 15:16:02-??? (Wed)


We only ran into one bug in the installation procedure (other than some
others we caused ourselves by trying to be clever). In config there is the
line:

  if !(-e $psys) mkdir $psys

further down the config file these are run:

  $pvsup/make-bare-psl
  $pvsup/make-psl
  $pvsup/make-pslcomp
  $pvsup/make-rlisp

In each of the above files there is a line similar to:

  mv $psys/bare-psl $psys/old-bare-psl

but bare-psl, psl, etc all still live from the tape as ./psl, etc.

So, when you find that $psys does not exist, besides making the directory
you also need to move bare-psl, psl, rlisp, etc to the newly made $psys.


*****

Another small problem: you go to the trouble to make the psl-names file
which is used by config, but many of the other scripts and makefiles still
use relative path names. The should all source psl-names and use the 
$ variables.

                                 Harold and Jed
-------

10-Mar-83 15:23:44-PST,282;000000000000
Date: 10 Mar 1983 15:27:39-PST
From: douglas@HP-MARS
To: psl@hulk
Subject: missing cmacro's.  There seem to be cmacros missing for functions


like cadadr.  Thus these functions are not open coded.  (It seems
that functions with 3-4 letters are not all completely cmacrod).
10-Mar-83 22:42:49-PST,289;000000000000
Date: 10 Mar 1983 22:47:12-PST
From: douglas@HP-MARS
To: psl@hulk
Subject: correction about cmacros and c..r functions


It seems that all functions c[ad][ad][ad][ad]r (4 a's or d's between
the c and r), do not have any information about for to be open
compiled in psl.
	Douglas
14-Mar-83 14:40:34-PST,509;000000000000
Date: 12 Mar 1983 10:49:44-??? (Sat)
From: utah-cs!hearn@RAND-RELAY
Received: by HP-VENUS via UUCP; 14 Mar 1983 14:40:40-PST (Mon)
Received: from RAND-RELAY by UTAH-20; Sat 12 Mar 83 10:48:38-MST
Date: Saturday, 12 Mar 1983 09:36-PST
To: Martin.Griss@HP-VENUS, <Griss@UTAH-20>
Cc: PSL-BUGS@UTAH-20
Subject: Re: TEST OF MAILING LIST FROM GRISS AT UTAH
In-reply-to: Your message of  8 Mar 1983 2009-MST.
From: hearn at RAND-RELAY
Via: uucp host utah-cs; 12 Mar 1983 10:49:44-??? (Sat)


Got it!

14-Mar-83 14:45:43-PST,806;000000000000
Date: 14 Mar 1983 1428-MST
From: Gary Barbour <Barbour@UTAH-20>
Subject: Nmode and illegal item in Heap
To: PSL-Bugs@UTAH-20
Received: by HP-VENUS via UUCP; 14 Mar 1983 14:44:06-PST (Mon)
Via: uucp host utah-cs; 14 Mar 1983 14:30:11-??? (Mon)

  While in Nmode, editing a Lisp file,  the first Garbage Collecting 

started, these errors  appeared...... (whatever help it is)

***** Fatal Error during garbage collecting, Illegal item in heap at 751255
***** Flavor Teleray has no Method Raw-Mode.
***** Flavor Teleray has no Method Ring-Bell.

  And then the prompt below appeared and went across the screen, when
returns where entered, until no response at the end of the line. 

8 Rlisp>>  8 Rlisp>>  8 Rlisp>>  8 Rlisp>>  8 Rlisp>>  8 Rlisp>>  8 Rlisp >>  

					Gary...
-------

15-Mar-83 08:29:38-PST,987;000000000000
Date: 14 Mar 1983 1502-MST
From: Jed Krohnfeldt <PSI.KROHNFELDT@UTAH-20>
Subject: reader problem(s)
To: psl-bugs@UTAH-20
cc: carr@UTAH-20
Received: by HP-VENUS via UUCP; 15 Mar 1983 08:28:28-PST (Tue)
Via: uucp host utah-cs; 14 Mar 1983 17:06:22-??? (Mon)


I changed the syntax of dot as follows:

    (setindx currentscantable!* (char dot) 10)

This should have changed the interpretation of dot to "letter".
Indeed it did in most cases, as in (setq a.b 3).  However, there
seem to be a few portions of the reader which insist on keeping
the old interpretation of dot.  For example, I can still type

    34.5

and have it interpreted as a floating point number.  Also, 

    (car '(a . b)) 

returns a.  This does not seem right.  Given my syntax change,
the two above cases should have been errors.  There should not be
context-sensitive portions of the reader, such that a syntax
change takes effect in unpredictable ways.  Is this correct?  
-------

15-Mar-83 10:00:58-PST,155;000000000000
Date: 15 Mar 1983 1000-PST
From: PERDUE at HP-HULK
Subject: Test
To: PSL

Again, Bob Kessler please forward this back if received.  Thanks.
-------
15-Mar-83 10:06:00-PST,243;000000000000
Date: 15 Mar 1983 1003-PST
From: PERDUE at HP-HULK
Subject: Testing, . . .
To: PSL

Testing the effect of lowercase "utah-cs" in the doublequoted
form of the mailing address.  Bob Kessler please forward this
back if received.
-------
16-Mar-83 03:37:00-PST,1451;000000000000
Date: 15 Mar 1983 1607-MST
From: Jed Krohnfeldt <PSI.KROHNFELDT@UTAH-20>
Subject: problem with loop macro
To: psl-bugs@UTAH-20
cc: carr@UTAH-20
Received: by HP-VENUS via UUCP; 16 Mar 1983 03:33:18-PST (Wed)
Via: uucp host utah-cs; 15 Mar 1983 16:10:12-??? (Tue)


In the loop macro package, there is a problem in the routine
loop-get-form.  The code for this routine appears below - it is
identical to the code used in franz:

(defun loop-get-form ()
  (do ((forms (list (pop loop-source-code)) (cons (pop loop-source-code) forms))
       (nextform (car loop-source-code) (car loop-source-code)))
      ((atom nextform)
       (if (null (cdr forms)) (car forms)
	   (cons 'progn (nreverse forms))))))

It's purpose is to grab sexpressions from a global list
loop-source-code until an atom is encountered, and then to return
the constructed list of sexpressions grabbed, leaving the atom on
loop-source-code.  This is part of the basic keyword recognition
code for loop.  

There is a problem with the above code, however.  It is written
such that it depends on the pop in the update of "forms" occuring
before the update of "nextform".  This is not a safe assumption
when using do, since do is a parallel construct, both in franz
and in psl.  It just happens to work correctly in franz by luck,
and not in psl.  The do in the code above should be replaced with
do* which will make it work correctly in psl.
-------

16-Mar-83 06:16:43-PST,832;000000000000
Date: 15 Mar 1983 2254-MST
From: Jed Krohnfeldt <PSI.KROHNFELDT@UTAH-20>
Subject: common lisp compatibility
To: psl-bugs@UTAH-20
Received: by HP-VENUS via UUCP; 16 Mar 1983 06:14:15-PST (Wed)
Via: uucp host utah-cs; 15 Mar 1983 22:57:35-??? (Tue)


In the file pu:clcomp1.sl there is a bug.  A number of syntax changes
are done in this file.  One of them makes ! (bang) a letter.  Later
in the file, ! is used to escape the # character.  This causes problems
with the load of clcomp1.  The code that changes the syntax of ! should
be moved to the end of the file.

Also, since there is no clcomp.sl or clcomp.build I assume clcomp1.* has
replaced it.  There are still several files on pu: that depend on 
clcomp.  They should be changed to depend on clcomp1 or clcomp1 should
be renamed back to clcomp.
-------

16-Mar-83 17:37:17-PST,1415;000000000000
Date: 16 Mar 1983 1512-MST
From: Harold Carr <CARR@UTAH-20>
Subject: .pslrc
To: psl-bugs@UTAH-20
cc: psi.kroHNFELDT@UTAH-20
Received: by HP-VENUS via UUCP; 16 Mar 1983 17:35:45-PST (Wed)
Via: uucp host utah-cs; 16 Mar 1983 15:15:44-??? (Wed)


If there are errors in the .pslrc file this is what happens:

*****Couldn't open binary file for input
*****Segmentation violation
*****Illegal Instruction
*****Fatal error: Error not within ErrorSet

Stopped

This particular error is that I was trying to load a file it couldn't find.
You should probably catch this error and continue on to the top loop. At least
don't stop the job, kill it, if you don't go to the top loop.

Also, I have the form: (setq toploopname!* "") in my .pslrc but it does not
take effect. Once the system has started up if I enter the above it does.
Clearly, toploopname!* is being set after loading the init file. Too bad.

Also, I am still not too happy about the interaction between promptstring!*
and READ. If I want a prompt, I would rather PRINT it.

Also, when I did (help switches) I got:

***Couldn't find help file '"$ph/switches.hlp"'

and when I looked on $ph, it indeed was not there. Should it be?

One question: is there some sort of global like: *no-exit-on-eof* that
when non-nil does not allow ^D to exit the system: getting out instead
with a function like (exit)?

Harold
-------

16-Mar-83 17:37:25-PST,711;000000000000
Date: 16 Mar 1983 1631-MST
From: Harold Carr <CARR@UTAH-20>
Subject: .pslrc
To: psl-bugs@UTAH-20
cc: psi.krohNFELDT@UTAH-20
Received: by HP-VENUS via UUCP; 16 Mar 1983 17:36:37-PST (Wed)
Via: uucp host utah-cs; 16 Mar 1983 16:34:15-??? (Wed)


Could someone explain when and in what environment the init file gets loaded?
If I do a (setindx currentscantable* 59 12) in my .pslrc it crashes with a
bus error. However, removing the above form from the rc file and then entering
it to the top loop works just fine. The .pslrc file should be loaded in
an environment similar to what the top loop is executing in (of course, the
.pslrc file should be able to change the top loop).   Harold
-------

16-Mar-83 17:37:34-PST,596;000000000000
Date: 16 Mar 1983 1524-MST
From: William Galway <Galway@UTAH-20>
Subject: HELP function
To: PSL-BUGS@UTAH-20
Received: by HP-VENUS via UUCP; 16 Mar 1983 17:35:54-PST (Wed)
Via: uucp host utah-cs; 16 Mar 1983 15:25:33-??? (Wed)


Harold's message prompted me to try out the HELP function on the 20.  It's
definitely broken.  In response to 
  (help)
I get the response
  ***** `DEFINEFLAG' is an undefined function

I wonder if part of the problem is a failure to complete the changeover
to our new terminology--where we use "switches" instead of calling them
"flags".
-------

16-Mar-83 17:52:17-PST,383;000000000000
Date: 16 Mar 1983 1749-PST
From: PERDUE at HP-HULK
Subject: Re: HELP function
To: PSL
In-Reply-To: Your message of 16-Mar-83

The HELP function WORKS on the DEC-20 at HP.  I am completely
unable to locate any use or definition of a function
`DEFINEFLAG'.  It is not defined in PSL.  It does not seem to
appear in any of our source files?  Can anyone help on this?
-------
21-Mar-83 10:49:55-PST,915;000000000000
Date: 21 Mar 1983 0739-MST
From: Robert R. Kessler <utah-cs!KESSLER@UTAH-20>
Subject: [John JW-Peterson <jwp@Utah-CS>: Fatel GC error]
Message-Id: <8303211445.AA13214@UTAH-CS.ARPA>
Received: by HP-VENUS via UUCP; 21 Mar 1983 10:45:11-PST (Mon)
Received: from UTAH-20 by UTAH-CS.ARPA (3.320/3.7)
	id AA13214; 21 Mar 83 07:45:07 MST (Mon)
To: psl-bugs@UTAH-20
Via: uucp host utah-cs; 21 Mar 1983 07:45:07-??? (Mon)


I have seen this before.  Anyone have any ideas?
                ---------------

Return-path: <jwp@Utah-CS>
Received: from UTAH-CS by UTAH-20; Mon 21 Mar 83 02:49:32-MST
Date: 21 Mar 1983 02:46:17-MST
From: John JW-Peterson <jwp@Utah-CS>
To: kessler@Utah-CS
Subject: Fatel GC error

i just got a **** Fatal error: Unexpected tag found during garbage collection
on the vax.  is there any known 'likely cause' for this (or any simple way
to track it down)?
thanks.
-------

21-Mar-83 11:54:56-PST,445;000000000000
Date: 21 Mar 1983 1154-PST
From: PERDUE at HP-HULK
Subject: Re: [John JW-Peterson <jwp@Utah-CS>: Fatel GC error]
To: PSL, utah-cs!jwp at hp-venus
In-Reply-To: Your message of 21-Mar-83

A likely cause of your problem with "unexpected tag found" is use
of fast arithmetic, SYSLISP, etc. to create things, perhaps just
on the stack, that are out of "INUM" range, so they look like
pointers.  Could be other things too.
-------
-------
21-Mar-83 12:09:51-PST,600;000000000000
Date: 21 Mar 1983 1206-PST
From: PERDUE at HP-HULK
Subject: [Forwarded:] Re: [John JW-Peterson <jwp@Utah-CS>: Fatel GC error]
To: PSL

Date: 21 Mar 1983 1153-PST
From: PERDUE at HP-HULK
Subject: Re: [John JW-Peterson <jwp@Utah-CS>: Fatel GC error]
To: utah-cs!KESSLER at UTAH-20 at RAND-RELAY at HP-VENUS
In-Reply-To: Your message of 21-Mar-83

A likely cause of your problem with "unexpected tag found" is use
of fast arithmetic, SYSLISP, etc. to create things, perhaps just
on the stack, that are out of "INUM" range, so they look like
pointers.  Could be other things too.
-------
22-Mar-83 09:16:01-PST,318;000000000000
Date: 22 Mar 1983 0913-PST
From: PERDUE at HP-HULK
Subject: Floating point constants
To: PSL

There is an apparent bug in SysLISP where one must explicitly
quote floating point constants to cause correct LAP to be
generated.

I have apparently fixed the negative floating point number
reading bug.
-------
23-Mar-83 07:45:09-PST,1449;000000000000
Date: Monday, 21 Mar 1983 10:08-PST
From: utah-cs!marti@rand-unix
Subject: GO TO problem in RLISP.
Return-Path: <marti@rand-unix>
Message-Id: <8303231442.AA12561@UTAH-CS.ARPA>
Received: by HP-VENUS via UUCP; 23 Mar 1983 07:44:54-PST (Wed)
Received: from RAND-UNIX by UTAH-20; Mon 21 Mar 83 11:28:38-MST
Received: from UTAH-20 by UTAH-CS.ARPA (3.320/3.7.2)
	id AA12561; 23 Mar 83 07:42:07 MST (Wed)
To: griss@UTAH-20
Cc: lseward@RAND-RELAY, hearn@RAND-RELAY
Remailed-Date: 21 Mar 1983 1135-MST
Remailed-From: Martin.Griss <utah-cs!Griss@UTAH-20>
Remailed-To: kessLER
Remailed-Date: 23 Mar 1983 0738-MST
Remailed-From: Robert R. Kessler <utah-cs!KESSLER@UTAH-20>
Remailed-To: psl-bugs@UTAH-20
Via: uucp host utah-cs; 23 Mar 1983 07:42:07-??? (Wed)


The PSL RLISP parser has trouble with statement labels that are the
names of functions. This causes some very confusing symptoms:

    GO TO OUT;

translates into (GO (OUT)). However:

    GO TO OUT >> ...

translates into (GO (OUT !*RSQB!*)) and gobbles up the >> which causes
a missing >> error to occur much later. 

  This problem occurred during parsing or the Hearn-Norman prettyprinter.
I have fixed this code so it parses correctly under the new parser. There
is also an incompatibility in:
  
  FOR I=... 

which is evidently allowed under the old parser, but not the new. This I
also fixed and the file is rand-relay /r/marti/pretty.nrlisp.

Jed.

23-Mar-83 17:33:38-PST,1047;000000000000
Date: 23 Mar 1983 17:34:32-PST
From: douglas@HP-MARS
To: psl@hulk
Subject: Unintern
Cc: rosenber@HP-MARS, ruspini@HP-MARS
Message-Id: <417317671.2685.hplabsc@HP-MARS>


How do I unintern an id?
Enrique has this problem that when frl runs and runs and runs for hours
(ekg program), we produce (event-1, event-2, event-3, event-4, etc.)
These are destroyed as they grow old.  The id's are no longer used,
but they are still around.  Eventually he runs out of id space.
FRL could try to reuse any id that is not a frame, say redo "event-1"
after it has been erased, but this will create a very strange order of
frame names created(An order that will be impossible to follow by the
user).  The idea is event-n came after event-m when m < n.  What could
solve this problem nicer is to be able to say (remove-id 'event-1) or
(unintern 'event-1) {Meaning take out of the id table}.  Enrique
could call this function when he cleans up his frames knowing that
the id will no longer be used.
Is there such a function in frl?
	Douglas
24-Mar-83 12:08:59-PST,1147;000000000000
Date: 23 Mar 1983 1613-MST
From: Gary Barbour <utah-cs!Barbour@UTAH-20>
Subject: Illegal HEAP ITEM  again.... In Nmode
Message-Id: <8303240002.AA00597@UTAH-CS.ARPA>
Received: by HP-VENUS via UUCP; 24 Mar 1983 12:05:28-PST (Thu)
Received: from UTAH-20 by UTAH-CS.ARPA (3.320/3.7.2)
	id AA00597; 23 Mar 83 17:02:19 MST (Wed)
To: psl-bugs@UTAH-20
Cc: kessler@UTAH-20, barbour@UTAH-20
Via: uucp host utah-cs; 23 Mar 1983 17:02:19-??? (Wed)

  To whoever:      ( this was not sent to the other address, I forgot it.)

   I was in nmode changing to the other window When GARBAGE 

COLLECTING started and then
       BOOMMMMMMM again ( see last message a week ago, similar error  
                          message)
   THEN something about teleray flavor and then below

      ***** Fatal error during garbage collection
      Illegal item in heap at 756323
      ***** Fatal error during garbage collection
      Illegal item in heap at 756323
      ***** Fatal error during garbage collection
	    etc.... INFINITE LOOP ....

   I missed the first part since it scrolled off the screen. I ctl C out of 
nmode.

-------

24-Mar-83 12:09:02-PST,1982;000000000000
Date: 23 Mar 1983 1718-MST
From: Gary Barbour <utah-cs!Barbour@UTAH-20>
Subject: Illegal ITEM in HEAP ... 4 more times
Message-Id: <8303240019.AA00756@UTAH-CS.ARPA>
Received: by HP-VENUS via UUCP; 24 Mar 1983 12:05:35-PST (Thu)
Received: from UTAH-20 by UTAH-CS.ARPA (3.320/3.7.2)
	id AA00756; 23 Mar 83 17:19:18 MST (Wed)
To: psl-bugs@UTAH-20
Cc: kessler@UTAH-20, barbour@UTAH-20
Via: uucp host utah-cs; 23 Mar 1983 17:19:18-??? (Wed)

    I though it was just chance, but noooooooo !
          
   I was using nmode 4 more times and these are the conditions, i hope it

helps. I can not use debug features ie-- reclaim, since i lose terminal 
input ( No method Raw-Mode)

 These below statistics including the previous message of today.

 -  The garbage collection (GC) error does NOT happen on the same Nth GC   
        2 times ...1st garbage collection
        2 times ...4rd garbage collection
	1 times ...7th or 8th garbage collection

 -  Two classes of Garbage collector errors
    -----------------------------------------
  TYPE 1 .... Infinite loop Illegal item in HEAP, as in previous 
  ------            message & of course the address is different. 
           1 time ... 1st garbage collection 
           1 time ... 3rd garbage collection

            First loses Teleray flavor & then infinite loop on illegal
          item in heap.

  TYPE 2 ....  No infinite loop & lose method Raw-Mode ( 3 times)
 -------          
           ie.. **** Fatal Error during Garbage collection
                **** Illegal item in heap at 624651       (& 743550 & 734631)
		**** Flavor Teleray has no Raw-Mode
		**** Flavor Teleray has no Ring-Bell

               Then only Prompt across screen and to next lines, 
                      when only returns key is hit.

------------------------------------
  Is their anything i can do to locate or search for this.

                                            gary...
-------

25-Mar-83 01:34:18-PST,604;000000000000
Date: 24 Mar 1983 2324-MST
From: utah-cs!Keller@UTAH-20 (Robert M. Keller)
Subject: Savesystem
Message-Id: <8303250630.AA11700@UTAH-CS.ARPA>
Received: by HP-VENUS via UUCP; 25 Mar 1983 01:34:13-PST (Fri)
Received: from UTAH-20 by UTAH-CS.ARPA (3.320.3/3.7.4)
	id AA11700; 24 Mar 83 23:30:58 MST (Thu)
To: psl-bugs@UTAH-20
Via: uucp host utah-cs; 24 Mar 1983 23:30:58-??? (Thu)


Has it been changed?  I get a message about DumpLisp requiring and
argument, yet funny things happen to the saved system when such is
provided.  Please point me to the recent documentation.

Thanks
-------

29-Mar-83 11:32:42-PST,453;000000000000
Date: 29 Mar 1983 11:36:04-PST
From: paulson@HP-MARS
To: psl@HP-MARS
Subject: bug report
Message-Id: <417814562.2585.hplabsc@HP-MARS>


Channelreadtokenwithhooks can't handle extremely long lines.  The file
/users/gpsg/longline.sl (on SRM2) contains a long line that
channelreadtokenwithhooks chokes on.  If you execute the code in
/users/gpsg/longread.sl (or dsk it in, I suppose), the bug shows up.
                                   Anne
29-Mar-83 11:33:07-PST,635;000000000000
Date: 29 Mar 1983 11:39:22-PST
From: paulson@HP-MARS
To: psl@HP-MARS
Subject: bug report
Message-Id: <417814761.2607.hplabsc@HP-MARS>


I've encountered a few things that the PSL compiler either can't compile
at all, or won't compile correctly.  The file /users/gpsg/nocompile.sl
contains some.  The function FOL-FORM in that file can't be compiled at
all; the compiler blows up.  The two hash methods compile, but when
you try to run them, PSL finds an 32 bit multiply overflow.  (The
rest of the stuff on hash objects, which does compile, is in 
/users/gpsg/hash.sl & hash.b).
                                    Anne
29-Mar-83 13:18:34-PST,635;000000000000
Date: 29 Mar 1983 13:22:06-PST
From: douglas@HP-MARS
To: psl@hulk
Subject: psl suggestions.
Message-Id: <417820924.3068.hplabsc@HP-MARS>


It would be very nice if *time could have the time reported in
minutes and seconds when the time is over 60 sec. (60000 ms.)  This
large number is very common in mine and anne's system on the chipmunk.

PSL manual suggestion:
If would be helpful if the three different index sections in the back
were either in different colors or were seperated by some kind of
divider (I can add this in for mine, this is just a suggestion when
manuals are given out to other places).
	Douglas
29-Mar-83 16:48:39-PST,209;000000000000
Date: 29 Mar 1983 1647-PST
From: AS at HP-HULK
Subject: manual bug
To: psl
cc: AS

In the FOR macro, UNION does not do what the manual says it does,
and ADJOIN and ADJOINQ are not documented.
-------
31-Mar-83 08:46:00-PST,376;000000000000
Date: 31 Mar 1983 0843-PST
From: AS at HP-HULK
Subject: manual bug
To: psl
cc: AS

Section 8.4: The description of repeat is STILL totally wrong.
It should be:

(repeat [S:form] E:form): NIL

The S's are evaluated from left to right, and then E is evaluated.
This process is repeated until E evaluates to non-NIL, at which point
the Repeat returns NIL.
-------
 3-Apr-83 00:30:28-PST,942;000000000000
Date: 2 Apr 83 20:15:38 MST (Sat)
From: utah-cs!jwp@UTAH-CS (John JW-Peterson)
Received: by HP-VENUS via UUCP; 3 Apr 1983 00:30:13-PST (Sun)
Received: from UTAH-CS by UTAH-20; Sat 2 Apr 83 20:19:05-MST
Received: by UTAH-CS.ARPA (3.320.4/3.7.5)
	id AA18174; 2 Apr 83 20:15:38 MST (Sat)
Received: from UTAH-20 by UTAH-CS.ARPA (3.320.4/3.7.5)
	id AA18211; 2 Apr 83 20:23:50 MST (Sat)
To: galway@utah-20, psl-bugs@utah-20
Via: uucp host utah-cs;  2 Apr 1983 20:23:50-??? (Sat)
Subject: comp bug?
Message-Id: <8304030315.AA18174@UTAH-CS.ARPA>


the following code:

procedure kloo(x);
case x of
  2: print("hi");
  2: print("low");
end;

causes the error "Ambiguous case" to be generated when it's compiled.
unfortunatly it also causes LAP to croak with Unknown label '(IMMEDIATE NIL)'
on the vax and an access violation on the apollo (undoubtly because the
apollo can't take car/cdr of NIL like all the others can...)

 4-Apr-83 20:49:38-PST,1441;000000000000
Date:  4 Apr 1983 1418-MST
From: Gary Barbour <utah-cs!Barbour@UTAH-20>
Received: by HP-VENUS via UUCP; 4 Apr 1983 20:47:47-PST (Mon)
Received: from UTAH-20 by UTAH-CS.ARPA (3.320.5/3.7.6)
	id AA29372; 4 Apr 83 14:23:49 MST (Mon)
To: psl-bugs@UTAH-20
Via: uucp host utah-cs;  4 Apr 1983 14:23:49-??? (Mon)
Subject: NMODE Using OUT,SHUT or OPEN, WRS
Message-Id: <8304042123.AA29372@UTAH-CS.ARPA>
Cc: barbour@UTAH-20


Please forward to whom-ever:

 TOPIC  
       [ Using OUT,SHUT or OPEN, WRS, CLOSE in Nmode ]
       --------------------------------------------------------
  
  The OUT function does not work in nmode (lisp or rlisp mode).  The 
OUT file is opened although nothing is sent to this external file, except 
NIL when it is SHUT.

     Example below uses Rlisp with Bar.Rl being a rlisp file expanding
it to lisp, which should be sent to file Foo.RL .
		(rlisp)
		on defn;
		out "foo.rl";
		in "bar.rl"   ( ; or $ )
		shut "foo.rl";

     Although the output data does appear in the output window, this 
should be in addition to the data being sent to requested file. 
             (maybe only to the out file). 

     Also if you use OPEN, WRS and CLOSE to send the data to a external file
the same condition arises.

  Is the above a bug or was the OUT function design to behave differently 
from just executing PSL:Rlisp  ( which is then useless in nmode )

						Gary...
-------

 5-Apr-83 17:21:04-PST,241;000000000000
Date:  5 Apr 1983 1719-PST
From: PERDUE at HP-HULK
Subject: comfile
To: PSL

If the function "comfile" wasn't obsolete before, it should be
obsolete now with the upgraded compile-file function defined in
pu:pslcomp-main.sl.
-------
 6-Apr-83 02:06:14-PST,602;000000000000
Date: 6 Apr 1983 02:05:22-PST
From: douglas@HP-MARS
To: letsinger@hulk, psl@hulk, rosenber@HP-MARS
Subject: psl feature needed
Message-Id: <418471518.1252.hplabsc@HP-MARS>


I found I need errset to return whatever error message was generated
(preferably in a string).  At present, all I get back is a number.
Is there anyway I can convert this number into its error message string?
This would be useful in my rewrite of dskin so that it can clean up --
I found there is no need for dskin to break if it can print a 
reasonable error message itself (and the objectionable form).
	Douglas
 6-Apr-83 11:21:11-PST,537;000000000000
Date:  6 Apr 1983 1116-PST
From: PERDUE at HP-HULK
Subject: NMODE-Unix interrupt key interaction
To: PSL, Galway at Utah-20 at RAND-RELAY at HP-VENUS, AS

NMODE uses C-^ as the prefix version of "control" for commands
such as C-> and C-<digit>.  While NMODE is active on the VAX, C-^
is currently generating an interrupt.  Using C-C for the
interrupt would be much better.  Many of us at HP have C-C set up
as the kill signal already on VAXen.  If C-C is unacceptable to
people at Utah, C-_ would be better than C-^.
-------
 6-Apr-83 11:21:29-PST,206;000000000000
Date:  6 Apr 1983 1117-PST
From: PERDUE at HP-HULK
Subject: RESET function
To: PSL

RESET does not work properly under the RLISP top level because
there is no CATCH for the RESET throw tag.
-------
 6-Apr-83 15:46:11-PST,266;000000000000
Date: 6 Apr 1983 15:43:42-PST
From: douglas@HP-MARS
To: psl@hulk
Subject: liter
Message-Id: <418520619.5434.hplabsc@HP-MARS>


is liter really defined as it says in the manual?
(if (memq u '(a b c d e f g h i j k .......)) t nil) ?
Isn't this inefficient?
 6-Apr-83 18:16:30-PST,497;000000000000
Date: 6 Apr 1983 18:17:05-PST
From: douglas@HP-MARS
To: psl@hulk
Subject: error message is wrong.
Message-Id: <418529822.6973.hplabsc@HP-MARS>


I used the flag 'lose to prevent a function from being redefined:
But it said the following when I tried to redefine the function:
7 lisp> (defun a (b) b)
*** `a' has not been defined, because it is flagged LOSE
nil
Cpu time: 34 ms
8 lisp> (pp a)

(de a (b)
  3)

t

This should say "redefined" if the function is already defined.
 8-Apr-83 07:20:25-PST,554;000000000000
Mail-From: GRISS created at  8-Apr-83 07:20:09
Date:  8 Apr 1983 0720-PST
From: GRISS@HP-HULK
Subject: EMSG!*
To: psl@HP-HULK

The variable EMSG!* i supposed to hold the error-message generated by the
last call to ERROR. When Break is OFF, seems to work fine; however,
with BREAK on, the EMSG!* is correct inside the BREAK loop, but gets
set to "exit to Errorset" if a Q is done. This seems wrong, since
user, by typing Q, is "giving up", so EMSG!* should either be as it was,
or have the "exit from Errorset" appended.

Opinions?
-------
 8-Apr-83 13:36:44-PST,269;000000000000
Date:  8 Apr 1983 1336-PST
From: PERDUE at HP-HULK
Subject: Re: EMSG!*
To: PSL
In-Reply-To: Your message of  8-Apr-83

I think that Quitting out of the break loop should cause the
original error to be resignalled, including the same value for
EMSG!*.
-------
 8-Apr-83 19:32:32-PST,847;000000000000
Date:  8 Apr 1983 1930-PST
From: PERDUE at HP-HULK
Subject: Token-scanner bug
To: psl

Apparently the VAX-Unix assembler assumes that the BASE operand
specifier of an EXTZV or related instruction fits into 8 bits if
it is a constant.  Thus it screws up on operand specifiers of the
form $<large constant>+<label>.  This means that in the kernel
one cannot take the info part of ordinary LISP constants, at
least not in the kernel.  Does anyone know how faslout deals with
the issue of how big to make this particular kind of operand
specifier?

Also, in a sense we do not want to take the info part of a tagged
item that is a constant: that is really wasted effort, since the
info part of such a constant is just a related constant.  Are
there any interesting idioms already existing that address this issue?

Thanks.
-------
10-Apr-83 18:31:54-PST,391;000000000000
Date: 10 Apr 1983 18:28:17-PST
From: douglas@HP-MARS
To: psl@hulk
Subject: question about bps use.
Message-Id: <418876096.26991.hplabsc@HP-MARS>



What is bps used for besides binary program space?
I have noticed that when the ic rules are loaded in, that 4K of bps space
is used up.  There is compiled code in the ic rules, and the compiler is
turned off.
	Thanks,
		Douglas
10-Apr-83 21:26:22-PST,399;000000000000
Date: 10 Apr 1983 21:24:19-PST
From: douglas@HP-MARS
To: psl@Hulk
Subject: question about vax psl and dumped files
Message-Id: <418886658.27547.hplabsc@HP-MARS>



I noticed that when the heap size was increased, the size of dumped
files increased by approx. 50%.   Since the increased heap is unused
space, I was wondering why it should affect the size of the dump lisp
file.
	Douglas
11-Apr-83 12:20:21-PST,646;000000000000
Date: 11 Apr 1983 12:17:40-PST
From: douglas@HP-MARS
To: psl@hulk
Subject: manual page 15-3 section 15.5
Message-Id: <418940258.695.hplabsc@HP-MARS>



The functions described on this page have a syntax different from the previous 
page.

(Reset undefined):
should be 
(Reset): undefined

(Time integer):
should be
(Time): integer

And the same with "Date", "Reclaim", and "%Reclaim".

Also is there a difference between "Undefined" and "Not defined".  The
first is used with "Reset" and the second with "%Reclaim".
Does the second mean "any"?  If so, why should %Reclaim return 
something, why not return nil?
	Douglas
11-Apr-83 15:20:35-PST,970;000000000000
Date: 11 Apr 1983 1515-PST
From: Samuel <FELDMAN@HP-HULK>
Subject: PSL problems/requests
To: psl@HP-HULK
cc: feldman@HP-HULK,
    beech@HP-HULK

In order to officialize:

1. It seems that (open "" 'special) gets an index out of bounds on the
   Vax, but not on the 20.

2. It would be nice if a small effort were made to try to document
   the function Compiletime, since it's so tricky.  I don't ask for
   perfection here; just a couple of extra sentences would be great.

3. Applications often need the time as well as the date.  Can such
   a function please be added?

4. How about a way to get at system calls (at least to use the same
   function name for such a capability on the different systems)?

5. Make sure that the Load function is set up with the proper
   directory search path (so I don't have to do it by hand).

6. Get utilities like String-Search and If over to the Vax.

Muchas gracias --    tu amigo,  Samuel
-------
12-Apr-83 13:52:06-PST,825;000000000000
Date: 12 Apr 1983 1351-PST
From: PERDUE at HP-HULK
Subject: Re: PSL problems/requests
To: FELDMAN at HP-HULK
cc: PSL
In-Reply-To: Your message of 11-Apr-83

1. (open "" 'special) is fixed in the soruce code.

2. . . . 

3. On the DEC20 see the function clocktimedate in the module p20u:exec.red.
   The sources for the documentation are updated but not the actual
   documentation.  This will not be compatible with other implementations
   of PSL.

4. I do not see having a facility for doing system calls on different
   machines as you suggest.  We provide general functions on some
   machines now, but with OS-specific names.

5. You'll have to set up your own value of loaddirectories* if
   you don't like what you're getting.

6. Sttring-search and If should now be available on Vax.
-------
