16-Jun-82 10:03:19-PDT,759;000010000001 Date: 16 Jun 1982 1003-PDT From: Alan Snyder 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 Subject: Lanam's PSL bugs To: psl at HP-HULK 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 Subject: Goldstein's PSL bugs To: psl at HP-HULK 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 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 EMACS.EXE. The HP HULK has no directory . * (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 Subject: Char macro To: psl at HP-HULK The char macro is not well documented and the use of 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 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 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 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 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 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 isn't defined in the 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 logical-names @r 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 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 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 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 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 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 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 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 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 q M-E C-M-Z q 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 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 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 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 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 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 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 franz.lisp ------- 13-Jul-82 11:40:37-PDT,307;000010000001 Date: 13 Jul 1982 1140-PDT From: Alan Snyder 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Subject: PSL oddness To: PSL at HP-HULK cc: AS at HP-HULK Why is the function FOO defined in PSL? It appears (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 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 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 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 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 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 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 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 '#)) 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 '#)))) ------------------------------------------------------------ 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 '# (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 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 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 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 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 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 To: LANAM In-Reply-To: Your message of 5-Aug-82 1004-PDT Remailed-date: 5 Aug 1982 1305-PDT Remailed-from: Cris Perdue 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 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 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 Subject: VAX To: Griss@benson@HP-Speech cc: Griss@griss@HP-Speech Remailed-date: 27 Jul 1982 1420-MDT Remailed-from: Eric Benson 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 Subject: ExitTopLoop To: Griss@benson@HP-Speech cc: Griss@griss@HP-Speech Remailed-date: 27 Jul 1982 1340-MDT Remailed-from: Eric Benson 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 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 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 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 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, 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 Remailed-to: bensON Remailed-date: 26 Jul 1982 1656-MDT Remailed-from: Eric Benson 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 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 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.R contains the meaningless sentence: "Some of the directories have no corresponding 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 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 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 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 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 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 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 Remailed-to: psl-bugs at UTAH-20 Remailed-date: 20 Aug 1982 1742-PDT Remailed-from: Cris 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 ; error 'stop here; is not as helpful as I would like. (b) I have tried to use rlisp <) 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 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 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 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 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 ------- 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 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 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 # rather than the result "6". 26-Aug-82 17:49:47-PDT,572;000000000000 Date: 26 Aug 1982 1749-PDT From: Cris 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Subject: TAGS To: PSL at HP-HULK cc: AS at HP-HULK I extended 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 Subject: what does # 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 LOGICAL-NAMES.CMD. The 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:). The old PSL directories (PS:) 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 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 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 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 Subject: Testing To: psl at HP-HULK Is this better? I changed the distribution list to mention ss: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 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 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 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 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 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 Subject: 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 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 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 Subject: testing foo ------- 30-Sep-82 09:01:44-PDT,149;000000000001 Date: 30 Sep 1982 0901-PDT From: Tim Eldredge 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 ) 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 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 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 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 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 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 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 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 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 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 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 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 . ------- 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 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 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 new-compiler.red _Please dont change COMPILER.RED on PC: b) Some new .MSS files for manual. I put on , 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 new-compiler.red _Please dont change COMPILER.RED on PC: b) Some new .MSS files for manual. I put on , 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 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 @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 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 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 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 Subject: Rlisp Parser Bug To: psl-bugs at UTAH-20 The following code will not parse (in file quit.red): % Neither of the following will work. When loading them, you must say yes to % continue. procedure foo; <>; procedure foo; <>; 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 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 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 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: 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: 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: 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: 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: 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: Date: 1 Jan 1983 1121-PST From: douglas 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: 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 @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: Date: 9 Jan 83 1:46:33-EST (Sun) From: G. B. Reilly 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 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 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 where ^D is a cntrl-d and 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. (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 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 ) 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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, 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 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 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 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 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 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 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 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 Subject: [John JW-Peterson : 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: 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 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 : 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 : Fatel GC error] To: PSL Date: 21 Mar 1983 1153-PST From: PERDUE at HP-HULK Subject: Re: [John JW-Peterson : 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: 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 Remailed-To: kessLER Remailed-Date: 23 Mar 1983 0738-MST Remailed-From: Robert R. Kessler 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 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 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 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-. 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 $+