HELP NEWS.8 July 29 1983 There are two enhancements to the itemiser (see REF ITEMISE for details): (1) The procedure ITEM_NEWTYPE now enables new itemiser character classes to be defined. (2) The itemiser now accepts numbers in exponent form, e.g. 23e-2 => ** 0.23 (only "e" is recognised, NOT "E"). Commands typed to POP11 or DCL for entering VED will be copied to the end of the VED command buffer. VEDPUTCOMMAND(string) makes string the last line of the command buffer. July 21 LIB SHOWTREE generalised again - see HELP * SHOWTREE/MORE. July 20th LIB VEDKEY5 alters key 5 on numeric keypad on Visual 200 See HELP * VEDKEY5 July 19th VEDMOVEITEM is in the system, instead of being a library file ESC H now not only invokes the help file but, can search for the relevant item, e.g. * VEDPROCS/vednextitem will invoke HELP VEDPROCS then search for "vednextitem". Try ESC N then ESC H now. July 18 CASE CONVERSION: See HELP * VEDCOMMS/ved_lcl VED_LCL VED_UCL (lower case lines, upper case lines) VED_LCR VED_UCR (lower case range, upper case range) Summary of LISP changes, see HELP * LISP3 July 15 Version 8.0 ----------- New PROLOG, and new LISP plus many other smaller improvements. * ISCLOSED can be used to tell whether a character repeater produced by * DISCIN has reached end of file yet. * EXITTO, EXITFROM, CHAINTO, CHAINFROM can be given, instead of a target procedure, a call-stack length. See REF PROCEDURE. * People using PRINTF should now use PRINTF(string, [%arg1, arg2, ..., argn%]); instead of PRINTF(argn, ..., arg2, arg1, string); The latter still works but is incompatible with situations where CUCHAROUT is redefined to leave characters on the stack -- see HELP PRINTF. July 14 ENTER CRM will clear range mark from the screen. (after many requests.....) July 12 ENTER DEOF now deals properly with marked range going beyond current line. July 9th When commands like HELP and TEACH fail, they will say NOT FOUND try: INDEX SYSSYNONYM makes the old macro SYNONYM redundant. See HELP * SYSSYNONYM July 8th LOADLIB redefined to use SYSLIBCOMPILE The change to ESC W on June 8 did not work right for VT100 vdus. This is now fixed. Bug in VED_CLEAR fixed. It now refreshes the window. This helps SHOWTREE to work right. July 7 BUG in LIB TIME due to use of matcher in a section, fixed. July 1 AND and OR moved from VEDFORWARDERS to VEDBACKERS for ved_tidy. CASE added to VEDBACKERS (See HELP SWITCHON) '.pl', and '.lsp' added to VEDNONBREAKFILES. June 30 VEDDIRECTORY is exported. (Its a null string if the file name includes the directory). VEDLINEMAX is now saved by vedsaveglobals and restored by vedsetglobals. So different files can have different values for vedlinemax June 28 PRINTLENGTH(item) -> number June 21 NCREV(list) -> list. Does non copying reverse. see HELP * NCREV June 17th BUG fixed: interaction between garbage collector, syslockheap and partial application. ENTER HPRINT is like ENTER PRINT, but uses /HEADER. I.e. name of file is printed on each page. HELP CONTENTS gives an overview of help files TEACH TEACHFILES gives an overview of teach files HELP SYSLIBCOMPILE added. LIB SLOWPROCS, redefines the procedures listed in REF FASTPROCS, so that they do checking - for debugging purposes. June 16th - version 7.2.1 ENTER SGS 'Silent Global Substitute' doesn't keep count of replacements on the command line. Much quicker for multiple substitutions. FOREACH altered so as not to use FETCH or export TRYNEXT ENTER JCP will always justify current PROCEDURE, never current PARAGRAPH ENTER JP is unchanged. Macros like HELP did not compile vedinit.p before searching for the file. This has been fixed by making vedgetlibfilename call vedsetup. June 14th Bug in loadlib fixed so that LIB and USES now work in sections. ENTER wpop - same as ENTER w ENTER pop June 13th HELP PLOGNEWS added, experimental PLOGHELP facility added. ENTER SMR (sort marked range) Bug fixed. It did not insert sorted text in the right place June 11th ENTER LMR (or CTRL-D, or C). Short syntactic error messages in VED are now stored in the 'command' file, and may be brought back into view on the command line. For details see TEACH LMR from line 47. June 10th vedenderror This procedure is not used, and is being withdrawn. ENTER OUTPUT foo.p, ENTER OUTPUT ., ENTER OUTPUT ^, ENTER OUTPUT can be used to alter VEDLMR_PRINT_IN_FILE. See HELP * LMR for details. W now works right on command line W optimised to reduce amount of refreshing June 8th VED_TI VED_TO VED_MI VED_MO are now built into the system. users need not do LIB INOROUT in their VEDINIT.P See HELP INOROUT VED_Q altered so that as long as you type neither 'y', nor 'n' nor 'c' it purges typeahead and repeats the query message. June 6 MOD is now a synonym for REM. BUG in VEDKEY5 fixed. It assgined to vednormaltable without first copying, causing an access violation. But the assignment was unnecessary May 31 LIB FACETS altered so that a facet will occur in the calling sequence if an error occurs ENTER TI, TO, MI, MO altered so that if current file uses whole window then the other file is not shown. LIB TPARSE - this previously did not use exactly the same format for grammar and lexicon as LIB GRAMMAR, owing to an oversight... This has now been fixed. May 26th ENTER JP extended. Uses lines beginning with '.' as well as blank lines as paragraph boundaries in text files. May 24th LIB VTURTLE improved. It used to do too much updating of the status line. May 20th LIB WORDCOUNT added. See HELP * WORDCOUNT ENTER DEOF Some bugs to do with marked range fixed. LIB VED_GO sets G to go to a different file. Type in a number within a second. If you don't it will print out names of files and ask you which you want. May 18th LIB VEDKEY5 added to the local library. See HELP * VEDNEWS May 16th HELP LISPNEWS added to local help directory (sorry non-locals!) May 13th BUG in RUNPROC fixed. It used to interact wrongly with stack. VED ENTER DEOF = Delete to End of File. ENTER DEF removed DISCIN / DISCOUT can now take an open device record and return a repeater / consumer for the given device. LIB TPARSE This experimental (test) variant on LIB GRAMMAR allows ALL parses of a sentence to be found, not just the first like LIB GRAMMAR. For details HELP * TPARSE, or SHOWLIB TPARSE. MATCHESONEOF and MATCHESALLOF added to library. See HELP FILES FOREVERY now checks that the argument is a LIST, not just a pair. New auto-loadable procedure WARNING. Similar use to PRMISHAP. See HELP * WARNING. Bug in LISP fixed. LISP modified to use the user-definable WARNING procedure. Lisp PUTPROP extended see HELP * LISP. MAy 11th Experimental version of VED with Input Mode VED_IM. Design not yet complete, so documentation not released. May 10th See HELP POPMEMLIM for new information on POPMEMLIM SECTION_CANCEL now accepts an optional second argument. See HELP SECTION_CANCEL. May 7th WHICH(variables, list of patterns) -> list of values For details of this new database facility see HELP WHICH LIB SUPER This has been made more efficient by defining procedures as constants Also, by using sections instead of PREFIX, compilation has been speeded up and space saved. Report problems to A. Sloman please. VEDEDITING: more low-level VED procedures have been changed so as not to do anything to the screen when VEDEDITING is FALSE. HELP VTURTLE was out of date and not consistent with TEACH VTURTLE. This has now been corrected. May 6th VED NEWS: See help INOROUT for new ENTER commands TI TO MI MO for easy movement of text between files. ENTER CA = COPY and APPEND. Marked range is added to existing text in VVEDDUMP. ENTER GS and ENTER GSR Altered to make VEDBREAK false. I.e. global substitutions should not force line breaks. (This can sometimes lead to infinite loops). May 4th TEACH CONTINUATIONS added April 29th Bug in vedsetkey fixed. This could cause error in garbage collector. LIB SOMESCHEMA added. See HELP SCHEMA HELP SOMESCHEMA April 27th LIB RMS added - 'reason maintenance system'. See HELP RMS April 26th New versions of LIB PAGE, LIB FORMAT See HELP PAGE, section on RUNOFF commands. See HELP FORMAT on JJ and JJP. Also VED ENTER CENTRE and VED ENTER RIGHT very slightly altered. April 21st UNTRACEALL; altered so that it first untraces the procedures it uses! April 20th ENTER QSHOWLIB and ENTER QSRC added. 18 APRIL version 7.1 The CD macro is changed so that if you have a subdirectory FOO then : CD FOO will go to it, as if you had typed CD .FOO, or CD [.FOO] If there is no such subdirectory, it is equivalent to typing : CD [FOO] (This is also the behaviour of the DCL command $ CD -- i.e. try subdirectory before top level directory.) SECTIONS and AUTOLOADING If a variable, e.g. database, has been declared at top level, and you enter a section into which it has not been imported, but is used, then it will be autoloaded. This overcomes some bugs in library programs which require variables like DATABASE, IT, etc. to be declared as GLOBAL in the top level section. (See REF SECTIONS) PDCOMP is now in the system -- but as <> not as PDCOMP. That is, P1 <> P2 creates a new procedure that runs P1 then P2. Bug in VED_W fixed. It used to query exits from library files if the file had been altered and written to a user file name. April 12th HELP NEWS truncated. Old news shifted to HELP NEWS.7 Begun altering library files to make use of section $-library. Please report any problems. Aril 8th ENTER RB Altered to move oldest file to screen rather than second oldest. I.e. circulates files in the opposite direction. (By popular request) VEDLINESTART was wrongly documented in HELP VEDCOMMS. It doesn't ignore leading spaces. April 6th The key of a any vector-type structure now includes a destructor procedure, which does the opposite of the constructor procedure, i.e. puts all the components AND the length of the vector on the stack. VECTORCLASS therefore now also creates DESTfoo where foo is the dataword of the vectorclass. For ordinary vectors and strings there are corresponding procedures DESTVECTOR and DESTSTRING. There is also now a DESTWORD. March 24th ENTER YANKL now inserts before current line March 17 VED COMMAND LINE: Obeying a command by typing "-" or by typing RETURN on the command line now copies that command to the end of the command line buffer (unless of course it's already at the end, or the one at the end is = to it). March 16 It has been observed that because of the way dcl works when given no command string, if you type just '$' at the beginning of a line to POP (when compiling through CHARIN), you'll go to DCL, as if you had used the DCL macro, except that you are not reminded to type Q or LO to get back to POP. This will be altered to print a warning. March 15 -- Version 7 This has a number of improvements, additions and bug fixes. * The major enhancement is SECTIONS, which enable program identifiers to be local to different parts of a program -- see REF SECTIONS. N.B. There is a problem with using MATCHES inside sections in that ? and ?? variables inside patterns will not be compiled as referring to the compile-time section context, and will instead refer to the RUN-time context (because the compiler does not recognise ? and ?? as having any special meaning). A satisfactory solution to this problem has yet to be formulated... * New character classes have been introduced in the itemiser. These will be described briefly, but see HELP * ITEM_CHARTYPE, or for full details, REF ITEMISE : (1) An 'alphabeticiser' class (class 12) : a character of this class forces the class of the character immediately following it to to be alphabetic, regardless of its normal interpretation. The following character is also interpreted in a like manner to one following "\" in strings and character constants (e.g. "n" represents newline, "t" tab, and "^A" Ctrl-A, etc). As yet, no character has this class as standard, but assuming "\" did, then the following would be examples of legal input words for the itemiser: \+ABC (characters +, A, B, C) \1234 ( " 1, 2, 3, 4) \n ( " i.e. ASCII 10) XY\t\n ( " X, Y, , ) etc. (2) Two classes for 'bracketed' comments (classes 10 and 11) : these allow comments like 1 -> x; /* this is a comment */ 2 -> y; where in this example "/" has class BC1 (Bracketed Comment 1) and "*" class BC2 (Bracketed Comment 2). In other words, BC1 followed by BC2 starts the comment and BC2 followed by BC1 ends it, nested comments like /* 1 -> x; /* this is a comment */ 2 -> y; */ being allowed. All other occurrences of BC1 or BC2 are taken as of class sign, so that while "/" and "*" have these classes as standard, the arithmetic operators that use these as sign characters remain unchanged. * The compiler has been simplified and speeded up by the introduction of a new IDENTPROPS class, viz SYNTAX OPERATOR: an identifier in this class is both a syntax word and an operator. It has a precedence value like an ordinary operator, and is parsed by the compiler in the same way; however, where the compiler would plant a run-time call to an ordinary operator, it instead calls the VALOF of the identifier at compile-time, as it would with a syntax word. The IDENTPROPS of such an identifier is the word "syntax N" where N is the precedence, which mimics the declaration format, viz VARS SYNTAX 1 XXX; DEFINE SYNTAX 3 YYY: ... etc. REF SYSCOMPILE will explain how to use these. The precedence of an operator (including syntax) can now be a negative number, meaning that the operator will associate to the right rather than the left. In addition, decimal values are now allowed (only one decimal digit being significant), e.g. if @ is defined DEFINE 4.5 X @ Y; ... then 2+3@4*5 will evaluate as 2+(3@(4*5)), since + has precedence 5 and * has precedence 4. The maximum absolute precedence is 12.7. See HELP V7 If you do VED FOO then change directory, then ENTER W1, or WQ, or WQVED, etc. then VED unfortunately writes FOO into the current directory, rather than the original directory. This will be fixed in version 7. NOTE: VED ENTER YANK can now be abbreviated to ENTER Y ENTER TR can now be abbreviated to ENTER T March 14th Version 6.6 VEDSCROLLDOWN and VEDSCROLLRIGHT will check that the limit has not been reached. If it has they do nothing. Mar 10 VEDSTARTWINDOW If this is less than vedscreenlength then it determines the size of the LOWER window. The upper window will always use the remaining size. Hence at long last values other than 12 and 24 are useful. Bug in ENTER RB in lib windows fixed. It used to occasionally lose files. Mar 4 HELP VT52 added for 'DUMB' VT52 terminal VEDSCREENFLUSH finally removed from library. Use RAWOUTFLUSH. RAWCHARIN is a user assignable variable. This will facilitate the introduction of log files for VED. Mar 3 Bug in vedsetwindow (ESC W) fixed. Previously if vedstartwindow was set to 24, then using ESC W caused mishap. It doesn't now. Mar 1st POPFILENAME holds name of file given to compile, or false if there wasn't one. For Older news see HELP NEWS.7