1
0
mirror of synced 2026-04-24 19:40:36 +00:00

Rmk88 split screen updates and color, eliminate reliance on STREAMHINT xpointer (#2119)

* Tedit window splitting is more robust, interface through menu items instead of split-region on the right of the window.  See TEDIT-RELEASENOTES.TEDIT

* Tedit recognizes color as specfied by DSPCOLOR, passes it to hardcopy

* N-way buttons default to unsorted--new items go at the end. Otherwise keyboard shortcut meta-3 for the 3rd font might pick a different one depending on what went before.

* USER.CM can be specified as an opening property for Bravo conversion.

* Adresses/fixes Tedit issues #2173 #2172 #2171 #2142  #2105 #2062 #2059 #1972 (maybe some others).

* Changes to rationalize internal interfaces and simplify code, and particularly to eliminate internal dependencies on the STREAMHINT Xpointer backlink.  STREAMHINT is only accessed if a client has grabbed the TEXTOBJ and passes it back in.  The stream and window are the safe/reliable way of referencing the Tedit state (and the window and stream know about each other, and know about the TEXTOBJ only through the stream).

* Many changes to TEDIT-STRESS, including new defaults CHECKARRAYS NIL, NSYSOUTS 0, ARRAYBLOCKCHECKING T

* lispusers/EQUATIONS: image object no longer saves state on the stream, not the window (which may not be there).

* Rename CHARNAME to be CHARCODE.ENCODE, parallel to CHARCODE.DECODE
This commit is contained in:
rmkaplan
2025-07-03 00:06:10 -07:00
committed by GitHub
parent d6253dbffd
commit 63d5849a15
47 changed files with 5481 additions and 4204 deletions

View File

@@ -1,20 +1,36 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "21-Oct-2024 00:27:47" {WMEDLEY}<library>tedit>TEDIT-STRESS.;71 15583
(FILECREATED "29-Jun-2025 21:59:18" 
{DSK}<Users>kaplan>Local>medley3.5>working-medley>library>TEDIT>TEDIT-STRESS.;125 42815
:EDIT-BY rmk
:CHANGES-TO (FNS STRESSHC STRESSPUT EQTEXTSTREAM)
:CHANGES-TO (FNS STRESSHC STRESSRAND STRESSPUT STRESSOPEN STRESSREAD STRESSFORMAT STRESSSCROLL
STRESSDELETE STRESSDELETEWINDOW STRESSINSERTWINDOW STRESSGREP STRESSPEEK
STRESSINSERT STRESS-SETUP STRESS-SYSOUT SYSOUTRING STRESSDISPLAY)
(VARS TEDIT-STRESSCOMS)
:PREVIOUS-DATE "19-Mar-2024 21:34:32" {WMEDLEY}<library>tedit>TEDIT-STRESS.;70)
:PREVIOUS-DATE "26-Jun-2025 20:58:11" {WMEDLEY}<library>tedit>TEDIT-STRESS.;120)
(PRETTYCOMPRINT TEDIT-STRESSCOMS)
(RPAQQ TEDIT-STRESSCOMS ( (* ; "Preload typical image objects")
(FNS STRESSHC STRESSRAND STRESSPUT STRESSOPEN STRESSREAD STRESSGREP
STRESSPEEK)
(FNS EQTEXTSTREAM SYSOUTRING COPYTOCORE)))
(RPAQQ TEDIT-STRESSCOMS
( (* ; "Preload typical image objects")
(FNS STRESSHC STRESSRAND STRESSPUT STRESSOPEN STRESSREAD STRESSFORMAT STRESSDISPLAY
STRESSSCROLL STRESSDELETE STRESSDELETEWINDOW STRESSINSERT STRESSINSERTWINDOW STRESSGREP
STRESSPEEK)
(FNS STRESS-SETUP STRESS-SYSOUT STRESS-AFTERSYSOUT SYSOUTRING SYSOUTNAME SYSOUTRING
SYSOUTNAME)
(FNS EQTEXTSTREAM COPYTOCORE CHECKARRAYS SAVERANDSTATE)
(INITVARS (CHECKARRAYS NIL)
(USELASTRANDSTATE NIL)
(SYSOUTLEVEL NIL)
(NSYSOUTS 0))
(VARS (ARRAYBLOCKCHECKING T))
(APPENDVARS (AFTERSYSOUTFORMS (STRESS-AFTERSYSOUT)))
(FILES TEDIT-DEBUG)
(MACROS STRESS)))
@@ -23,7 +39,9 @@
(DEFINEQ
(STRESSHC
[LAMBDA (FILES NSYSOUTS REPS ERROR SEPARATEOUT PDF SYSOUTNAME SINGLESTEP)
[LAMBDA (FILES REPS ERROR SEPARATEOUT PDF SYSOUTNAME SINGLESTEP)
(* ; "Edited 29-Jun-2025 21:58 by rmk")
(* ; "Edited 2-Jun-2025 21:27 by rmk")
(* ; "Edited 21-Oct-2024 00:26 by rmk")
(* ; "Edited 19-Mar-2024 21:33 by rmk")
(* ; "Edited 14-Mar-2024 15:15 by rmk")
@@ -32,11 +50,8 @@
(* ;; "If all arguments are defaulted, runs through all TEDIT files in the current directory until it fails, doing SAVEVM before each file. The HC files are made as {CORE}FOO.PS.")
(CL:UNLESS FILES
(SETQ FILES (FILDIR '*.TEDIT;)))
(SETQ FILES (STRESS-SETUP FILES 'STRESSHC))
(CL:UNLESS REPS (SETQ REPS MAX.SMALLP))
(CL:UNLESS NSYSOUTS
(SETQ NSYSOUTS 'SAVEVM))
[SETQ SYSOUTNAME (PACKFILENAME 'VERSION NIL 'BODY (OR SYSOUTNAME (PACKFILENAME 'DIRECTORY
MEDLEYDIR 'NAME
"STRESSHC" 'EXTENSION
@@ -56,189 +71,559 @@
(for R SYSOUTS (ITYPE _ (CL:IF PDF
'pdf
'ps))
(N _ 0) from 1 to REPS
do (PRINTOUT T "Rep " R T)
(if (EQ NSYSOUTS 'SAVEVM)
then (SAVEVM)
else (SETQ SYSOUTS (SYSOUTRING NSYSOUTS SYSOUTNAME SYSOUTS)))
[for F TSTRM HCFILE inside FILES
do (PROMPTPRINT F)
(SETQ HCFILE (CL:IF SEPARATEOUT
(OUTFILEP (PACKFILENAME 'EXTENSION ITYPE 'VERSION 1 'BODY F))
(CL:IF PDF
"{CORE}FOO.PDF;1"
"{CORE}FOO.PS;1")))
(if [if ERROR
then (SETQ TSTRM (OPENTEXTSTREAM F))
(TEDIT.FORMAT.HARDCOPY TSTRM HCFILE T NIL NIL NIL (CL:IF PDF
'PDF
'POSTSCRIPT))
else (NLSETQ (SETQ TSTRM (OPENTEXTSTREAM F))
(TEDIT.FORMAT.HARDCOPY TSTRM HCFILE T NIL NIL NIL
(CL:IF PDF
'PDF
'POSTSCRIPT)]
then (add N 1)
else (PRINTOUT T " Error for " (PACKFILENAME 'HOST NIL 'DIRECTORY NIL 'BODY F)
T))
(CLOSEF? TSTRM)
(CL:WHEN SINGLESTEP
(\TEDIT.THELP (CONCAT "Just hardcopied " F " to " HCFILE)))]
(PRINTOUT T " Hardcopied " N " files without failure" T)
(N _ 0) from 1 to REPS do (PRINTOUT T "Rep " R T)
(if (EQ NSYSOUTS 'SAVEVM)
then (SAVEVM)
else (SETQ SYSOUTS (SYSOUTRING NSYSOUTS SYSOUTNAME SYSOUTS)))
[for F TSTREAM HCFILE in FILES unless (DIRECTORYNAMEP F)
do (PROMPTPRINT F)
(SETQ HCFILE (CL:IF SEPARATEOUT
(OUTFILEP (PACKFILENAME 'EXTENSION ITYPE
'VERSION 1 'BODY F))
(CL:IF PDF
"{CORE}FOO.PDF;1"
"{CORE}FOO.PS;1")))
[STRESS (NOT ERROR)
(SETQ TSTREAM (OPENTEXTSTREAM F))
(CHECKARRAYS 'AFTEROPEN)
(TEDIT.FORMAT.HARDCOPY TSTREAM HCFILE T NIL NIL NIL
(CL:IF PDF
'PDF
'POSTSCRIPT)]
(CL:WHEN SINGLESTEP
(\TEDIT.THELP (CONCAT "Just hardcopied " F " to " HCFILE
)))]
(PRINTOUT T " Hardcopied " N " files without failure" T)
finally (RETURN (LIST R N])
(STRESSRAND
[LAMBDA (FILES REPS ERROR PROBESPERFILE) (* ; "Edited 19-Mar-2024 21:33 by rmk")
[LAMBDA (FILES REPS ERROR PROBESPERFILE) (* ; "Edited 29-Jun-2025 21:58 by rmk")
(* ; "Edited 5-Jun-2025 21:10 by rmk")
(* ; "Edited 2-Jun-2025 21:27 by rmk")
(* ; "Edited 31-May-2025 09:10 by rmk")
(* ; "Edited 19-Mar-2024 21:33 by rmk")
(* ; "Edited 12-Mar-2024 09:47 by rmk")
(* ;; "Opens, fetches random characters")
(CL:UNLESS FILES
(SETQ FILES (FILDIR '*.TEDIT;)))
(SETQ REPS (SELECTQ REPS
(T MAX.SMALLP)
(NIL 1)
REPS))
(SETQ FILES (STRESS-SETUP FILES 'STRESSRAND))
(CL:UNLESS REPS (SETQ REPS MAX.SMALLP))
(CL:UNLESS PROBESPERFILE (SETQ PROBESPERFILE 100))
(BKSYSBUF " ")
(PRINTOUT T REPS " reps of " (LENGTH FILES)
" files with " PROBESPERFILE " probes per file" T)
(SAVERANDSTATE)
(for R (N _ 0) from 1 to REPS
do (PRINTOUT T R " ")
(for F TSTRM inside FILES
do (if (if ERROR
then (SETQ TSTRM (OPENTEXTSTREAM F))
(for I (LEN _ (TEDIT.NCHARS TSTRM)) from 1 to PROBESPERFILE
do (TEDIT.NTHCHARCODE TSTRM (RAND 1 LEN)))
T
else (CAR (NLSETQ (SETQ TSTRM (OPENTEXTSTREAM F))
(for I (LEN _ (TEDIT.NCHARS TSTRM)) from 1 to PROBESPERFILE
do (TEDIT.NTHCHARCODE TSTRM (RAND 1 LEN)))
T)))
then (CLOSEF TSTRM)
(add N 1)
else (PRINTOUT T " Error for " (PACKFILENAME 'HOST NIL 'DIRECTORY NIL 'BODY F)
T)) repeatwhile (PROGN (CLOSEF? TSTRM)
T)) finally (RETURN (LIST R N])
[for F TSTREAM in FILES unless (DIRECTORYNAMEP F)
do (STRESS (NOT ERROR)
(SETQ TSTREAM (OPENTEXTSTREAM F))
(CHECKARRAYS 'AFTEROPEN)
(for I (LEN _ (TEDIT.NCHARS TSTREAM)) from 1 to PROBESPERFILE
do (TEDIT.NTHCHARCODE TSTREAM (RAND 1 LEN]
finally (RETURN (LIST R N])
(STRESSPUT
[LAMBDA (FILES REPS NOERROR CHECKEQUIV STOP) (* ; "Edited 21-Oct-2024 00:26 by rmk")
[LAMBDA (FILES REPS NOERROR CHECKEQUIV STOP) (* ; "Edited 29-Jun-2025 21:58 by rmk")
(* ; "Edited 2-Jun-2025 21:28 by rmk")
(* ; "Edited 31-May-2025 09:10 by rmk")
(* ; "Edited 21-Oct-2024 00:26 by rmk")
(* ; "Edited 19-Mar-2024 21:34 by rmk")
(* ; "Edited 12-Mar-2024 09:48 by rmk")
(* ;; "Opens, puts, reopens and tests for equivalence")
(CL:UNLESS FILES
(SETQ FILES (FILDIR '*.TEDIT;)))
(SETQ REPS (SELECTQ REPS
(T MAX.SMALLP)
(NIL 1)
REPS))
(SETQ FILES (STRESS-SETUP FILES 'STRESSPUT))
(CL:UNLESS REPS (SETQ REPS MAX.SMALLP))
(BKSYSBUF " ")
(PRINTOUT T REPS " reps of " (LENGTH FILES)
" files" T)
(for R (N _ 0) from 1 to REPS
do (PRINTOUT T R " ")
(for F TSTRM TSP inside FILES
do (if (if NOERROR
then (NLSETQ (SETQ TSTRM (OPENTEXTSTREAM F))
(TEDIT.PUT TSTRM "{CORE}FOO.TEDIT;1")
(SETQ TSP (OPENTEXTSTREAM "{CORE}FOO.TEDIT;1"))
(CL:WHEN (AND CHECKEQUIV (NOT (EQTEXTSTREAM TSTRM TSP STOP)))
(\TEDIT.THELP "Get of put not equivalent" F))
(CLOSEF TSP))
else (SETQ TSTRM (OPENTEXTSTREAM F))
(TEDIT.PUT TSTRM "{CORE}FOO.TEDIT;1")
(SETQ TSP (OPENTEXTSTREAM "{CORE}FOO.TEDIT;1"))
(CL:WHEN (AND CHECKEQUIV (NOT (EQTEXTSTREAM TSTRM TSP STOP)))
(\TEDIT.THELP "Get of put not equivalent" F))
(CLOSEF TSP))
then (CLOSEF TSTRM)
(add N 1)
else (PRINTOUT T T "Error for " (PACKFILENAME 'HOST NIL 'DIRECTORY NIL 'BODY F)
T))) finally (RETURN (LIST R N])
(for F TSTREAM TSP in FILES unless (DIRECTORYNAMEP F)
do (STRESS NOERROR (SETQ TSTREAM (OPENTEXTSTREAM F))
(CHECKARRAYS 'AFTEROPEN)
(TEDIT.PUT TSTREAM "{CORE}FOO.TEDIT;1")
(SETQ TSP (OPENTEXTSTREAM "{CORE}FOO.TEDIT;1"))
(CL:WHEN (AND CHECKEQUIV (NOT (EQTEXTSTREAM TSTREAM TSP STOP)))
(\TEDIT.THELP "Get of put not equivalent" F))
(CLOSEF TSP))) finally (RETURN (LIST R N])
(STRESSOPEN
[LAMBDA (FILES REPS NOERROR) (* ; "Edited 19-Mar-2024 21:34 by rmk")
[LAMBDA (FILES REPS NOERROR) (* ; "Edited 29-Jun-2025 21:55 by rmk")
(* ; "Edited 2-Jun-2025 21:28 by rmk")
(* ; "Edited 31-May-2025 09:12 by rmk")
(* ; "Edited 19-Mar-2024 21:34 by rmk")
(* ; "Edited 12-Mar-2024 09:48 by rmk")
(* ; "Edited 11-Mar-2024 09:15 by rmk")
(CL:UNLESS FILES
(SETQ FILES (FILDIR '*.TEDIT;)))
(SETQ REPS (SELECTQ REPS
(T MAX.SMALLP)
(NIL 1)
REPS))
(SETQ FILES (STRESS-SETUP FILES 'STRESSOPEN))
(CL:UNLESS REPS (SETQ REPS MAX.SMALLP))
(BKSYSBUF " ")
(PRINTOUT T REPS " reps of " (LENGTH FILES)
" files" T)
(for R (N _ 0) from 1 to REPS
do (PRINTOUT T R " ")
(for F TSTRM inside FILES do (if (if NOERROR
then (NLSETQ (SETQ TSTRM (OPENTEXTSTREAM F)))
else (SETQ TSTRM (OPENTEXTSTREAM F)))
then (CLOSEF TSTRM)
(add N 1)
else (PRINTOUT T T "Error for " (PACKFILENAME 'HOST NIL
'DIRECTORY NIL
'BODY F)
T))) finally (RETURN (LIST R N])
(for R (N _ 0) from 1 to REPS do (PRINTOUT T R " ")
[for F TSTREAM in FILES unless (DIRECTORYNAMEP F)
do (STRESS NOERROR (SETQ TSTREAM (OPENTEXTSTREAM F]
finally (RETURN (LIST R N])
(STRESSREAD
[LAMBDA (FILES REPS NOERROR) (* ; "Edited 19-Mar-2024 21:34 by rmk")
[LAMBDA (FILES REPS NOERROR) (* ; "Edited 29-Jun-2025 21:56 by rmk")
(* ; "Edited 2-Jun-2025 21:28 by rmk")
(* ; "Edited 31-May-2025 09:13 by rmk")
(* ; "Edited 19-Mar-2024 21:34 by rmk")
(* ; "Edited 15-Mar-2024 15:19 by rmk")
(* ; "Edited 12-Mar-2024 09:48 by rmk")
(* ; "Edited 11-Mar-2024 09:13 by rmk")
(CL:UNLESS FILES
(SETQ FILES (FILDIR '*.TEDIT;)))
(SETQ REPS (SELECTQ REPS
(T MAX.SMALLP)
(NIL 1)
REPS))
(SETQ FILES (STRESS-SETUP FILES 'STRESSREAD))
(CL:UNLESS REPS (SETQ REPS MAX.SMALLP))
(BKSYSBUF " ")
(PRINTOUT T REPS " reps of " (LENGTH FILES)
" files" T)
(for R (N _ 0) from 1 to REPS do (PRINTOUT T R " ")
[for F TSTREAM in FILES unless (DIRECTORYNAMEP F)
do (STRESS NOERROR (SETQ TSTREAM (OPENTEXTSTREAM F))
(CHECKARRAYS 'AFTEROPEN)
(for I from 1 while (TEDIT.NTHCHARCODE TSTREAM I]
finally (RETURN (LIST (SUB1 R)
N])
(STRESSFORMAT
[LAMBDA (FILES REPS NOERROR) (* ; "Edited 29-Jun-2025 21:56 by rmk")
(* ; "Edited 23-Jun-2025 12:34 by rmk")
(* ; "Edited 2-Jun-2025 21:28 by rmk")
(* ; "Edited 31-May-2025 09:19 by rmk")
(* ; "Edited 19-Mar-2024 21:34 by rmk")
(* ; "Edited 15-Mar-2024 15:19 by rmk")
(* ; "Edited 12-Mar-2024 09:48 by rmk")
(* ; "Edited 11-Mar-2024 09:13 by rmk")
(* ;; "Calls FORMATLINE from beginning to end of each file")
(SETQ FILES (STRESS-SETUP FILES 'STRESSFORMAT))
(CL:UNLESS REPS (SETQ REPS MAX.SMALLP))
(BKSYSBUF " ")
(PRINTOUT T REPS " reps of " (LENGTH FILES)
" files" T)
(for R (N _ 0) from 1 to REPS do (PRINTOUT T R " ")
[for F TSTREAM TEXTOBJ in FILES unless (DIRECTORYNAMEP F)
do (SETQ TSTREAM (OPENTEXTSTREAM F))
(CHECKARRAYS 'AFTEROPEN)
(SETQ TEXTOBJ (TEXTOBJ TSTREAM))
(STRESS NOERROR (bind LINE (NCHARS _ (TEDIT.NCHARS TSTREAM
))
(CHNO _ 1)
while (ILESSP CHNO NCHARS)
do (CHECKARRAYS 'BEFORE)
(SETQ LINE (\TEDIT.FORMATLINE
TSTREAM CHNO))
(CHECKARRAYS 'AFTER)
(SETQ CHNO (GETLD LINE LCHARLIM]
finally (RETURN (LIST (SUB1 R)
N])
(STRESSDISPLAY
[LAMBDA (FILES REPS NOERROR) (* ; "Edited 29-Jun-2025 21:14 by rmk")
(* ; "Edited 23-Jun-2025 12:34 by rmk")
(* ; "Edited 2-Jun-2025 21:29 by rmk")
(* ; "Edited 19-Mar-2024 21:34 by rmk")
(* ; "Edited 15-Mar-2024 15:19 by rmk")
(* ; "Edited 12-Mar-2024 09:48 by rmk")
(* ; "Edited 11-Mar-2024 09:13 by rmk")
(* ;; "Creates a single empty window, gets each file into that window without a process, and then displays every line there")
[SETQ FILES (OR (MKLIST FILES)
(FILDIR '*.TEDIT;]
(CL:UNLESS REPS (SETQ REPS MAX.SMALLP))
(BKSYSBUF " ")
(PRINTOUT T REPS " reps of " (LENGTH FILES)
" files" T)
(for R [WINDOW _ (CREATEW '(600 800 800 150]
(N _ 0) from 1 to REPS
do (PRINTOUT T R " ")
(for F TSTREAM TEXTOBJ in FILES unless (DIRECTORYNAMEP F)
do (* ; "No process")
(STRESS NOERROR (WINDOWPROP WINDOW 'TITLE (CONCAT "Fetching " F))
[SETQ TSTREAM (OPENTEXTSTREAM F WINDOW '(READONLY T LEAVETTY T]
(CHECKARRAYS 'AFTEROPEN)
(SETQ TEXTOBJ (TEXTOBJ TSTREAM))
(bind LINE (NCHARS _ (TEDIT.NCHARS TSTREAM))
(CHNO _ 1) while (ILESSP CHNO NCHARS) do (CHECKARRAYS 'BEFOREFORMAT)
(SETQ LINE (\TEDIT.FORMATLINE
TSTREAM CHNO))
(CHECKARRAYS 'BEFOREDISPLAY)
(\TEDIT.DISPLAYLINE TSTREAM
LINE WINDOW)
(CHECKARRAYS 'AFTERDISPLAY)
(SETQ CHNO (GETLD LINE LCHARLIM
)))
(CHECKARRAYS 'BEFOREDEACTIVATE)
(TEDIT.DEACTIVATE.WINDOW WINDOW)
(CHECKARRAYS 'AFTERDEACTIVATE)
(CLEARW WINDOW))) finally (RETURN (LIST (SUB1 R)
N])
(STRESSSCROLL
[LAMBDA (FILES NSCROLLS REPS NOERROR) (* ; "Edited 29-Jun-2025 21:56 by rmk")
(* ; "Edited 5-Jun-2025 21:11 by rmk")
(* ; "Edited 2-Jun-2025 21:29 by rmk")
(* ; "Edited 19-Mar-2024 21:34 by rmk")
(* ; "Edited 15-Mar-2024 15:19 by rmk")
(* ; "Edited 12-Mar-2024 09:48 by rmk")
(* ; "Edited 11-Mar-2024 09:13 by rmk")
(* ;; "Creates a single empty window, gets each file into that window without a process, and then does NSCROLLS random scrolls before moving on to the next file.")
(SETQ FILES (STRESS-SETUP FILES 'STRESSSCROLL))
(CL:UNLESS NSCROLLS (SETQ NSCROLLS 10))
(CL:UNLESS REPS (SETQ REPS MAX.SMALLP))
(BKSYSBUF " ")
(PRINTOUT T "STRESS SCROLL: " REPS " reps randomly scrolling " NSCROLLS " times in " (LENGTH
FILES)
" files" T)
(SAVERANDSTATE)
(for R [WINDOW _ (CREATEW '(600 500 750 400]
(N _ 0) from 1 to REPS
do (PRINTOUT T R " ")
(for F TSTREAM TEXTOBJ LEN in FILES unless (DIRECTORYNAMEP F)
do (* ; "No process")
(WINDOWPROP WINDOW 'TITLE (CONCAT "Fetching " F))
[STRESS NOERROR [SETQ TSTREAM (OPENTEXTSTREAM F WINDOW '(READONLY T LEAVETTY T]
(CHECKARRAYS 'AFTEROPEN)
(SETQ TEXTOBJ (TEXTOBJ TSTREAM))
(SETQ LEN (TEDIT.NCHARS TSTREAM))
(for I from 1 to NSCROLLS do (CHECKARRAYS 'BEFORE)
(TEDIT.SETSEL TSTREAM (RAND 1 LEN)
1)
(TEDIT.NORMALIZECARET TSTREAM NIL T)
(CHECKARRAYS 'AFTER]
(TEDIT.DEACTIVATE.WINDOW WINDOW)
(CLEARW WINDOW)) finally (RETURN (LIST (SUB1 R)
N])
(STRESSDELETE
[LAMBDA (FILES NTIMES REPS NOERROR) (* ; "Edited 29-Jun-2025 21:56 by rmk")
(* ; "Edited 5-Jun-2025 21:11 by rmk")
(* ; "Edited 4-Jun-2025 09:20 by rmk")
(* ; "Edited 2-Jun-2025 21:29 by rmk")
(* ; "Edited 19-Mar-2024 21:34 by rmk")
(* ; "Edited 15-Mar-2024 15:19 by rmk")
(* ; "Edited 12-Mar-2024 09:48 by rmk")
(* ; "Edited 11-Mar-2024 09:13 by rmk")
(* ;;
 "For each file does NDELETES random single-character deletes before moving on to the next file.")
(SETQ FILES (STRESS-SETUP FILES 'STRESSDELETE))
(CL:UNLESS NTIMES (SETQ NTIMES 10))
(CL:UNLESS REPS (SETQ REPS MAX.SMALLP))
(BKSYSBUF " ")
(PRINTOUT T "STRESS DELETE: " REPS " reps randomly deleting 1 character " NTIMES " times in "
(LENGTH FILES)
" files" T)
(SAVERANDSTATE)
(for R (N _ 0) from 1 to REPS
do (PRINTOUT T R " ")
(for F TSTRM inside FILES
do (if (if NOERROR
then (NLSETQ (SETQ TSTRM (OPENTEXTSTREAM F))
(for I from 1 while (TEDIT.NTHCHARCODE TSTRM I)))
else (SETQ TSTRM (OPENTEXTSTREAM F))
(for I from 1 while (TEDIT.NTHCHARCODE TSTRM I))
(for F TSTREAM TEXTOBJ LEN in FILES unless (DIRECTORYNAMEP F)
do (* ; "No process")
(STRESS NOERROR [SETQ TSTREAM (OPENTEXTSTREAM F NIL '(LEAVETTY T HISTORY OFF]
(CHECKARRAYS 'AFTEROPEN)
(SETQ TEXTOBJ (TEXTOBJ TSTREAM))
(SETQ LEN (TEDIT.NCHARS TSTREAM))
(for I from 1 to NTIMES do (CHECKARRAYS 'BEFORE)
(TEDIT.DELETE TSTREAM (RAND 1 LEN)
1)
(CHECKARRAYS 'AFTER)
(add LEN -1))
(CLOSEF? TSTREAM))) finally (RETURN (LIST (SUB1 R)
N])
(STRESSDELETEWINDOW
[LAMBDA (FILES NTIMES REPS NOERROR) (* ; "Edited 29-Jun-2025 21:56 by rmk")
(* ; "Edited 5-Jun-2025 21:11 by rmk")
(* ; "Edited 4-Jun-2025 09:19 by rmk")
(* ; "Edited 2-Jun-2025 22:35 by rmk")
(* ; "Edited 19-Mar-2024 21:34 by rmk")
(* ; "Edited 15-Mar-2024 15:19 by rmk")
(* ; "Edited 12-Mar-2024 09:48 by rmk")
(* ; "Edited 11-Mar-2024 09:13 by rmk")
(* ;; "Creates a single empty window, gets each file into that window without a process, and then does NTIMES random 1-character deletions before moving on to the next file.")
(SETQ FILES (STRESS-SETUP FILES 'STRESSDELETEWINDOW))
(CL:UNLESS NTIMES (SETQ NTIMES 10))
(CL:UNLESS REPS (SETQ REPS MAX.SMALLP))
(BKSYSBUF " ")
(PRINTOUT T "STRESS INSERT: " REPS " reps randomly inserting 3 characters " NTIMES " times in "
(LENGTH FILES)
" files" T)
(SAVERANDSTATE)
(for R [WINDOW _ (CREATEW '(550 800 750 150]
(N _ 0) from 1 to REPS
do (PRINTOUT T R " ")
(for F TSTREAM TEXTOBJ LEN in FILES unless (DIRECTORYNAMEP F)
do (* ; "No process")
(WINDOWPROP WINDOW 'TITLE (CONCAT "Fetching " F))
(STRESS NOERROR [SETQ TSTREAM (OPENTEXTSTREAM F WINDOW '(LEAVETTY T HISTORY OFF]
(CHECKARRAYS 'AFTEROPEN)
(SETQ TEXTOBJ (TEXTOBJ TSTREAM))
(SETQ LEN (TEDIT.NCHARS TSTREAM))
(for I from 1 to NTIMES do (CHECKARRAYS 'BEFORE)
(TEDIT.DELETE TSTREAM (RAND 1 LEN))
(CHECKARRAYS 'AFTER)
(add LEN -1)))
(PUTTEXTPROP TSTREAM 'DIRTY NIL)
(TEDIT.DEACTIVATE.WINDOW WINDOW)
(CLEARW WINDOW)) finally (RETURN (LIST (SUB1 R)
N])
(STRESSINSERT
[LAMBDA (FILES NTIMES REPS NOERROR SYSOUTNAME) (* ; "Edited 29-Jun-2025 21:18 by rmk")
(* ; "Edited 26-Jun-2025 20:19 by rmk")
(* ; "Edited 5-Jun-2025 21:11 by rmk")
(* ; "Edited 4-Jun-2025 09:18 by rmk")
(* ; "Edited 2-Jun-2025 22:34 by rmk")
(* ; "Edited 19-Mar-2024 21:34 by rmk")
(* ; "Edited 15-Mar-2024 15:19 by rmk")
(* ; "Edited 12-Mar-2024 09:48 by rmk")
(* ; "Edited 11-Mar-2024 09:13 by rmk")
(* ;; "Does random inserts in the tstreams without a window or process")
(DECLARE (SPECVARS SYSOUTNAME))
(SETQ FILES (STRESS-SETUP FILES 'STRESSINSERT))
(CL:UNLESS NTIMES (SETQ NTIMES 10))
(CL:UNLESS REPS (SETQ REPS MAX.SMALLP))
(PRINTOUT T T "STRESSINSERT: " T 2 REPS " reps randomly inserting 3 characters " NTIMES
" times in " (LENGTH FILES)
" files" T)
(PRINTOUT T 2 "Saving " (if (EQ NSYSOUTS 0)
then "no sysouts"
elseif (EQ NSYSOUTS 'SAVEVM)
then " the virtual memory"
else (PRINTOUT NIL NSYSOUTS " sysouts on ")
(PSEUDOFILENAME SYSOUTNAME))
T)
(SAVERANDSTATE)
(for REP SYSOUTS AFTERCRASH (N _ 0) from 1 to REPS declare (SPECVARS SYSOUTS AFTERCRASH)
do (CL:WHEN AFTERCRASH (TERPRI T))
(PRINTOUT T REP " ")
(for F TSTREAM TEXTOBJ LEN in FILES unless (DIRECTORYNAMEP F)
do (CL:WHEN AFTERCRASH
(PRINTOUT T T [if (EQ 'TEDIT (FILENAMEFIELD F 'EXTENSION))
then (FILENAMEFIELD F 'NAME)
else (PACKFILENAME 'NAME (FILENAMEFIELD F 'NAME)
'EXTENSION
(FILENAMEFIELD F 'EXTENSION]
T)
then (CLOSEF TSTRM)
(add N 1)
else (PRINTOUT T T "Error for " (PACKFILENAME 'HOST NIL 'DIRECTORY NIL 'BODY F)
T))) finally (RETURN (LIST (SUB1 R)
N])
'FILE)
(STRESS NOERROR [SETQ TSTREAM (OPENTEXTSTREAM F NIL '(LEAVETTY T HISTORY OFF]
(CHECKARRAYS 'AFTEROPEN)
(SETQ TEXTOBJ (TEXTOBJ TSTREAM))
(SETQ LEN (TEDIT.NCHARS TSTREAM))
(for I RAND from 1 to NTIMES do (CHECKARRAYS 'BEFORE)
(SETQ RAND (RAND 1 LEN))
(CL:WHEN AFTERCRASH (PRINTOUT T RAND " "))
(SETQ SYSOUTS (STRESS-SYSOUT SYSOUTS
SYSOUTNAME))
(TEDIT.INSERT TSTREAM "aaa" RAND)
(CHECKARRAYS 'AFTER)
(add LEN 3))
(CLOSEF? TSTREAM))) finally (RETURN (LIST (SUB1 REP)
N])
(STRESSINSERTWINDOW
[LAMBDA (FILES NTIMES REPS NOERROR) (* ; "Edited 29-Jun-2025 21:57 by rmk")
(* ; "Edited 5-Jun-2025 21:12 by rmk")
(* ; "Edited 2-Jun-2025 22:35 by rmk")
(* ; "Edited 19-Mar-2024 21:34 by rmk")
(* ; "Edited 15-Mar-2024 15:19 by rmk")
(* ; "Edited 12-Mar-2024 09:48 by rmk")
(* ; "Edited 11-Mar-2024 09:13 by rmk")
(* ;; "Creates a single empty window, gets each file into that window without a process, and then does NTIMES random 3-character inserts before moving on to the next file.")
(SETQ FILES (STRESS-SETUP FILES 'STRESSINSERTWINDOW))
(CL:UNLESS NTIMES (SETQ NTIMES 10))
(CL:UNLESS REPS (SETQ REPS MAX.SMALLP))
(BKSYSBUF " ")
(PRINTOUT T "STRESS INSERT: " REPS " reps randomly inserting 3 characters " NTIMES " times in "
(LENGTH FILES)
" files" T)
(SAVERANDSTATE)
(for R [WINDOW _ (CREATEW '(550 800 750 150]
(N _ 0) from 1 to REPS
do (PRINTOUT T R " ")
(for F TSTREAM TEXTOBJ LEN in FILES unless (DIRECTORYNAMEP F)
do (* ; "No process")
(WINDOWPROP WINDOW 'TITLE (CONCAT "Fetching " F))
(STRESS NOERROR [SETQ TSTREAM (OPENTEXTSTREAM F WINDOW '(LEAVETTY T HISTORY OFF]
(CHECKARRAYS 'AFTEROPEN)
(SETQ TEXTOBJ (TEXTOBJ TSTREAM))
(SETQ LEN (TEDIT.NCHARS TSTREAM))
(for I from 1 to NTIMES do (CHECKARRAYS 'BEFORE)
(TEDIT.INSERT TSTREAM "aaa" (RAND 1 LEN))
(CHECKARRAYS 'AFTER)
(add LEN 3)))
(PUTTEXTPROP TSTREAM 'DIRTY NIL)
(TEDIT.DEACTIVATE.WINDOW WINDOW)
(CLEARW WINDOW)) finally (RETURN (LIST (SUB1 R)
N])
(STRESSGREP
[LAMBDA (FILES NOERROR TARGET) (* ; "Edited 17-Mar-2024 19:46 by rmk")
[LAMBDA (FILES NOERROR TARGET) (* ; "Edited 29-Jun-2025 21:57 by rmk")
(* ; "Edited 2-Jun-2025 21:30 by rmk")
(* ; "Edited 17-Mar-2024 19:46 by rmk")
(* ;; "GREP does forward bins and peekbins. If it hits on something, it also runs the backfileptr function. FOO appears in quite a few lispusers/ Tedit files.")
(CL:UNLESS FILES
(SETQ FILES (FILDIR '*.TEDIT;)))
(SETQ FILES (STRESS-SETUP FILES 'STRESSGREP))
(CL:UNLESS TARGET (SETQ TARGET "FOO"))
(FILESLOAD GREP)
(for F inside FILES unless (if NOERROR
then (NLSETQ (GREP TARGET F))
else (GREP TARGET F)
T) do (PRINTOUT T T "Error for " (PACKFILENAME 'HOST NIL
'DIRECTORY NIL
'BODY F)
T])
(for F in FILES unless (DIRECTEORYNAMEP F) unless (if NOERROR
then (NLSETQ (GREP TARGET F))
else (PROGN (GREP TARGET F))
T)
do (PRINTOUT T T "Error for " (PACKFILENAME 'HOST NIL 'DIRECTORY NIL 'BODY F)
T])
(STRESSPEEK
[LAMBDA (FILES ERROR) (* ; "Edited 19-Mar-2024 21:33 by rmk")
(CL:UNLESS FILES
(SETQ FILES (FILDIR '*.TEDIT;)))
(for F TSTRM inside FILES eachtime (SETQ TSTRM (OPENTEXTSTREAM F))
unless [if ERROR
then (bind P while (SETQ P (PEEKCCODE TSTRM T)) always (EQ P (BIN TSTRM)))
else (NLSETQ (bind P while (SETQ P (PEEKCCODE TSTRM T))
always (EQ P (BIN TSTRM] do (PRINTOUT T "Error for "
(PACKFILENAME 'HOST NIL
'DIRECTORY NIL 'BODY F)
T)
repeatwhile (PROGN (CLOSEF? TSTRM)
T])
[LAMBDA (FILES ERROR) (* ; "Edited 29-Jun-2025 21:57 by rmk")
(* ; "Edited 2-Jun-2025 21:30 by rmk")
(* ; "Edited 19-Mar-2024 21:33 by rmk")
(SETQ FILES (STRESS-SETUP FILES 'STRESSPEEK))
(for F TSTREAM (N _ 0) in FILES unless (DIRECTORYNAMEP F)
do (STRESS (NOT ERROR)
(SETQ TSTREAM (OPENTEXTSTREAM F))
(CHECKARRAYS 'AFTEROPEN)
(bind P while (SETQ P (PEEKCCODE TSTREAM T)) always (EQ P (BIN TSTREAM])
)
(DEFINEQ
(STRESS-SETUP
[LAMBDA (FILES SUBDIR) (* ; "Edited 29-Jun-2025 21:18 by rmk")
(* ; "Edited 26-Jun-2025 20:18 by rmk")
(* ;; "Copy the files to CORE, defaulting to TEDIT files in connected directory, and load all the image object functions.")
(DECLARE (USEDFREE SYSOUTNAME))
(BKSYSBUF " ")
(CL:UNLESS SYSOUTNAME (SETQ SYSOUTNAME SUBDIR))
(LET ((COREDIR (PACKFILENAME 'HOST 'CORE 'DIRECTORY SUBDIR))
TOCOPY)
(if (EQ FILES T)
then (CL:UNLESS [SETQ FILES (FILDIR (PACKFILENAME 'BODY COREDIR 'BODY '*]
(ERROR "No stress files in " COREDIR))
(PRINTOUT T "Stress files in " COREDIR T)
else [SETQ FILES (OR (MKLIST FILES)
(FILDIR '*.TEDIT;]
(SETQ TOCOPY (for F in FILES unless (INFILEP (PACKFILENAME 'BODY COREDIR 'BODY F))
collect F))
(if TOCOPY
then (PRINTOUT T "Copying " (LENGTH TOCOPY)
" files to " COREDIR T)
(for F CF in TOCOPY collect (SETQ CF (COPYFILE F (PACKFILENAME 'BODY COREDIR
'BODY F)))
(CLOSEF? (OPENTEXTSTREAM CF))
CF)
else (PRINTOUT T (LENGTH FILES)
" files already copied to " COREDIR T))
(FILDIR (PACKFILENAME 'BODY COREDIR 'BODY '*])
(STRESS-SYSOUT
[LAMBDA (SYSOUTS SYSOUTNAME) (* ; "Edited 29-Jun-2025 21:18 by rmk")
(* ; "Edited 26-Jun-2025 20:57 by rmk")
(DECLARE (USEDFREE NSYSOUTS))
(if (EQ NSYSOUTS 'SAVEVM)
then (SAVEVM)
elseif (IGREATERP NSYSOUTS 0)
then
(* ;; "Keep NSYSOUT sysouts with increasing versions")
(CL:WHEN (IGEQ (LENGTH SYSOUTS)
NSYSOUTS)
(DELFILE (pop SYSOUTS))) (* ;
 "Drop the oldest, put out the newest")
(SETQ SYSOUTNAME (SYSOUT SYSOUTNAME))
[if (LISTP SYSOUTNAME)
then (* ;
 "Restarting presumab ly after crash")
(SETQ AFTERCRASH T)
else
(* ;; "Newest goes at the end of the ring")
(SETQ SYSOUTS (NCONC1 SYSOUTS SYSOUTNAME))
(CL:WHEN (IGREATERP (FILENAMEFIELD SYSOUTNAME 'VERSION)
1000) (* ; "Restart the versions at one")
[SETQ SYSOUTS (for S in SYSOUTS as V from 1
collect (RENAMEFILE S (PACKFILENAME 'VERSION V 'BODY S])]
SYSOUTS])
(STRESS-AFTERSYSOUT
[LAMBDA NIL (* ; "Edited 26-Jun-2025 09:18 by rmk")
(DECLARE (USEDFREE SYSOUTLEVEL)) (* ;
 "Bound at the stress-test entry, or top-level NIL")
(BKSYSBUF " ")
(CL:WHEN SYSOUTLEVEL
(CL:WHEN (OR (UNIX-GETENV "STRESSHELP")
(EQ SYSOUTLEVEL 'EVENT))
(HELP "STRESS SYSOUT"))
(SETQ SYSOUTLEVEL (SELECTQ SYSOUTLEVEL
(REPS 'FILE)
(FILE 'EVENT)
NIL)))])
(SYSOUTRING
[LAMBDA (SYSOUTNAME SYSOUTS) (* ; "Edited 29-Jun-2025 21:19 by rmk")
(* ; "Edited 26-Jun-2025 20:06 by rmk")
(* ; "Edited 12-Mar-2024 17:52 by rmk")
(* ;; "SYSOUTS is the list of names of sysouts that currently exist.")
(DECLARE (USEDFREE NSYSOUTS AFTERCRASH))
(CL:WHEN (IGREATERP NSYSOUTS 0) (* ;
 "Keep NSYSOUT sysouts with increasing versions")
(CL:WHEN (IGEQ (LENGTH SYSOUTS)
NSYSOUTS)
(DELFILE (pop SYSOUTS))) (* ;
 "Drop the oldest, put out the newest")
(SETQ SYSOUTNAME (SYSOUT SYSOUTNAME))
(CL:WHEN (LISTP SYSOUTNAME) (* ; "Restarting")
(SETQ AFTERCRASH T))
(NCONC1 SYSOUTS SYSOUTNAME))])
(SYSOUTNAME
[LAMBDA (SYSOUTNAME) (* ; "Edited 26-Jun-2025 00:12 by rmk")
(* ;; "Doesn't work with PSEUDOFILENAME ??")
(PACKFILENAME 'VERSION NIL 'DIRECTORY MEDLEYDIR 'NAME SYSOUTNAME 'EXTENSION 'SYSOUT])
(SYSOUTRING
[LAMBDA (SYSOUTNAME SYSOUTS) (* ; "Edited 29-Jun-2025 21:19 by rmk")
(* ; "Edited 26-Jun-2025 20:06 by rmk")
(* ; "Edited 12-Mar-2024 17:52 by rmk")
(* ;; "SYSOUTS is the list of names of sysouts that currently exist.")
(DECLARE (USEDFREE NSYSOUTS AFTERCRASH))
(CL:WHEN (IGREATERP NSYSOUTS 0) (* ;
 "Keep NSYSOUT sysouts with increasing versions")
(CL:WHEN (IGEQ (LENGTH SYSOUTS)
NSYSOUTS)
(DELFILE (pop SYSOUTS))) (* ;
 "Drop the oldest, put out the newest")
(SETQ SYSOUTNAME (SYSOUT SYSOUTNAME))
(CL:WHEN (LISTP SYSOUTNAME) (* ; "Restarting")
(SETQ AFTERCRASH T))
(NCONC1 SYSOUTS SYSOUTNAME))])
(SYSOUTNAME
[LAMBDA (SYSOUTNAME) (* ; "Edited 26-Jun-2025 00:12 by rmk")
(* ;; "Doesn't work with PSEUDOFILENAME ??")
(PACKFILENAME 'VERSION NIL 'DIRECTORY MEDLEYDIR 'NAME SYSOUTNAME 'EXTENSION 'SYSOUT])
)
(DEFINEQ
@@ -261,41 +646,84 @@
(LIST I C1 C2)))
(RETURN NIL) finally (RETURN T])
(SYSOUTRING
[LAMBDA (NSYSOUTS SYSOUTNAME SYSOUTS) (* ; "Edited 12-Mar-2024 17:52 by rmk")
(* ;; "SYSOUTS is the list of names of sysouts that currently exist.")
(DECLARE (USEDFREE SINGLESTEP))
(CL:WHEN (IGREATERP NSYSOUTS 0) (* ;
 "Keep NSYSOUT sysouts with increasing versions")
(CL:WHEN (IGEQ (LENGTH SYSOUTS)
NSYSOUTS)
(DELFILE (pop SYSOUTS))) (* ;
 "Drop the firstr (oldest), new one goes at the end")
(SETQ SYSOUTNAME (SYSOUT SYSOUTNAME))
(CL:WHEN (LISTP SYSOUTNAME) (* ; "Restarting")
(SETQ SINGLESTEP T))
(NCONC1 SYSOUTS SYSOUTNAME))])
(COPYTOCORE
[LAMBDA (FILES NORECLAIM) (* ; "Edited 12-Mar-2024 22:45 by rmk")
[LAMBDA (FILES SUBDIR NORECLAIM) (* ; "Edited 25-Jun-2025 23:41 by rmk")
(* ; "Edited 2-Jun-2025 21:30 by rmk")
(* ; "Edited 12-Mar-2024 22:45 by rmk")
(* ;; "Copy FILES to {CORE}, defaulting to TEDIT files in connected directory")
(CL:UNLESS (LISTP FILES)
(SETQ FILES (FILDIR (OR FILES "*.TEDIT;"))))
[SETQ FILES (OR (MKLIST FILES)
(FILDIR '*.TEDIT;]
(PRINTOUT T "Copying " (LENGTH FILES)
" files to {CORE} "
(CL:IF NORECLAIM
"without "
"with ")
"reclaiming" T)
(for F in FILES collect (COPYFILE F (PACKFILENAME 'HOST 'CORE 'DIRECTORY NIL 'BODY F))
finally (CL:UNLESS NORECLAIM (RECLAIM])
(for F CF in FILES collect (SETQ CF (PACKFILENAME 'HOST 'CORE 'DIRECTORY SUBDIR 'BODY F))
(OR (INFILEP CF)
(COPYFILE F CF)) finally (CL:UNLESS NORECLAIM (RECLAIM])
(CHECKARRAYS
[LAMBDA (TAG)
(DECLARE (SPECVARS TAG)) (* ; "Edited 2-Jun-2025 21:11 by rmk")
(* ;; "TAG is visible as an argument in URAID")
(CL:WHEN CHECKARRAYS
(CL:WHEN (EQ CHECKARRAYS 'RECLAIM)
(RECLAIM))
(\PARSEARRAYSPACE))])
(SAVERANDSTATE
[LAMBDA NIL (* ; "Edited 5-Jun-2025 21:20 by rmk")
(DECLARE (USEDFREE USELASTRANDSTATE))
(LET (RSTREAM)
(if USELASTRANDSTATE
then (SETQ RSTREAM (OPENSTREAM 'RANDSTATE 'INPUT))
(RANDSET (READ RSTREAM))
else (SETQ RSTREAM (OPENSTREAM 'RANDSTATE 'OUTPUT))
(PRINTOUT RSTREAM (RANDSET T)
T))
(CLOSEF RSTREAM])
)
(RPAQ? CHECKARRAYS NIL)
(RPAQ? USELASTRANDSTATE NIL)
(RPAQ? SYSOUTLEVEL NIL)
(RPAQ? NSYSOUTS 0)
(RPAQQ ARRAYBLOCKCHECKING T)
(APPENDTOVAR AFTERSYSOUTFORMS (STRESS-AFTERSYSOUT))
(FILESLOAD TEDIT-DEBUG)
(DECLARE%: EVAL@COMPILE
(PUTPROPS STRESS MACRO ((NOERROR . FORMS)
(CHECKARRAYS 'BEFORESTRESS)
(if (if NOERROR
then (NLSETQ . FORMS)
else (PROGN . FORMS)
T)
then (add N 1)
else (PRINTOUT T T "Error for " (PACKFILENAME 'HOST NIL 'DIRECTORY NIL
'BODY F)
T))
(CHECKARRAYS 'AFTERSTRESS)
(CLOSEF? TSTREAM)))
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (722 12866 (STRESSHC 732 . 4315) (STRESSRAND 4317 . 6053) (STRESSPUT 6055 . 8023) (
STRESSOPEN 8025 . 9458) (STRESSREAD 9460 . 10995) (STRESSGREP 10997 . 11940) (STRESSPEEK 11942 . 12864
)) (12867 15560 (EQTEXTSTREAM 12877 . 14046) (SYSOUTRING 14048 . 14928) (COPYTOCORE 14930 . 15558)))))
(FILEMAP (NIL (1548 32125 (STRESSHC 1558 . 5389) (STRESSRAND 5391 . 6927) (STRESSPUT 6929 . 8498) (
STRESSOPEN 8500 . 9663) (STRESSREAD 9665 . 11165) (STRESSFORMAT 11167 . 13642) (STRESSDISPLAY 13644 .
16623) (STRESSSCROLL 16625 . 19193) (STRESSDELETE 19195 . 21574) (STRESSDELETEWINDOW 21576 . 24168) (
STRESSINSERT 24170 . 27854) (STRESSINSERTWINDOW 27856 . 30342) (STRESSGREP 30344 . 31418) (STRESSPEEK
31420 . 32123)) (32126 38911 (STRESS-SETUP 32136 . 33889) (STRESS-SYSOUT 33891 . 35473) (
STRESS-AFTERSYSOUT 35475 . 36139) (SYSOUTRING 36141 . 37249) (SYSOUTNAME 37251 . 37524) (SYSOUTRING
37526 . 38634) (SYSOUTNAME 38636 . 38909)) (38912 41860 (EQTEXTSTREAM 38922 . 40091) (COPYTOCORE 40093
. 41023) (CHECKARRAYS 41025 . 41352) (SAVERANDSTATE 41354 . 41858)))))
STOP