HELP NEWS.7 Feb 24 1983 Bug in the way VED reads in Fortran output files has now been fixed. It used to truncate files if empty records were found. Feb 22 LIB WINDOWS has been considerably improved and extended. See HELP WINDOWS. It may now be invoked by POP11/WINDOWS (if a saved image has been created). The DCL command $WIN does this. "FOREVER" may now be omitted in REPEAT FOREVER .... ENDREPEAT. VEDRESTORESCREEN and VEDSETONSCREEN have been made user assignable. Feb 21 ENTER NAME now alters VEDVEDNAME so that subsequent calls of VED without arguments get the right file. VEDAUTOWRITE default increased to 1500 HELP PAGE now describes LIB PAGE. (Comments to David Roberts) FEB 18th EXPERIMENTAL multiple window system. See HELP WINDOWS. NEW VERSION OF LISP WITH FASTER COMPILER. SEE HELP NEWLISP. OLD VERSION IS LIB OLDLISP; LIB SHOWTREE generalised to behave more sensibly where it used to say "bad-label", and a bug fixed. FEB 17th VERSION 6.5 The bug in VEDREADLINE described below is fixed. VEDSETKEY is to be built into the system, since so many people now use it. This will speed up loading of VEDINIT.P files. VEDOPEN will also be built in, and extended to allow an optional second argument, a procedure to be run in place of VEDVEDDEFAULTS when the file is read in. The commands HELP, TEACH, DOC, REF will search in the directories listed in VEDHELPLIST, VEDTEACHLIST, VEDDOCLIST, VEDREFLIST, respectively. These lists were previously inaccessible. They can now be altered by the user. A new procedure VEDGETLIBFILENAME will take a directory list, e.g. vedhelplist, a default file name to be altered if necessary, e.g. "vedhelpdirectory" and a file name. It will search directories in the list till it finds one containing a file of the given name. It will return the full path name of the file, and will assign that name to be the new valof the default file name. The file will not be read in. In other words, vedgetlibfilename can be used to discover exactly where a particular library file is stored. E.g. vedgetlibfilename(popuseslist,"vedlibname",'flatten.p') => ** popautolib:flatten.p Feb 17th There is a BUG in READLINE called from VED, using the 'load marked range' mechanism. If the user types in something including list or vector brackets, vedreadline actually makes a list or vector containing the enclosed elements. The ordinary readline does not do this. This will be fixed from version 6.5. Meanwhile use FLATLISTIFY to transform the output of readline to what it should be. FLATLISTIFY(list) -> list All embeded lists or vectors are replaced by "[" or "{" then a list of elements then "]" or "}". See help flatlistify. FEB 16th HELP INDEX This is the default help file. It has been altered to tell a beginner what to do. The list of help files is now HELP HELPINDEX (A better convention may be adopted later.) POPLIBLIST altered to include 'poplocalauto:'. This logical name can be defined by the user or by the system. TEACH PARPAR, TEACH LEARNING and HELP LERNGRAM added FEB 15th ENTER BREAK switches VEDBREAK between TRUE and FALSE There is now a POP-11 SRC macro which works like ENTER SRC, for examining system source files. TEACH ATNSUM added Feb 10th APPASSOC added to LIB ASSOC. Works like APPPROPERTY does for properties. See HELP ASSOC. Feb 9th LIB ASSOC. Altered to be a little faster. Should still work with dynamic lists. Please report problems. (See HELP ASSOC) Feb 7th VED ENTER SRC util.p Will read into the editor the system source code file util.p, if the source directory is kept online. Feb 4th LIB TIME and LIB GCTIME altered to print out time repeatedly. Interrupt with CTRL-C. See HELP TIME Bug in VEDALWAYSASK fixed. If TRUE asks before writing altered files when you type ^Z to POP-11. Feb 1st 1983 pasrun,pasexec,pascomp extended to allow io assignment as necessary. See HELP PASCAL for details. Jan 31st The macros LIB and LOAD have been altered so that they do not print out the message until the file is actually being loaded. TEACH POPSYS and WAL added. (Converted and expanded versions of PDP-11 demos) JAN 25th There is a new collection of subdirectories for 'local' documentation and library files. The LIB, USES and SHOWLIB commands have been altered so that they look in [POP.LOCAL.LIB] if they don't find what they want in a standard library directory. The TEACH, HELP, DOC and REF files are also altered so that they use a search list using the local files. READPICTURE altered so that if a digit (number character) is used in the input file then a number is used rather than a word containing the digit. Jan 21st Bug in turtle_pr fixed - now preserves stack level and allows tracing of draw. ved_dir now behaves with devices such as disk$2d. RE Jan 20th Extra error check added to LIB DATAFILE - now complains sensibly if unknown dataword is read in. Jan 19th BUG in TURTLE and VTURTLE fixed. Use fast_integer_greaterthan instead of > in drawto. Autoloadable procedure READEXPRESSION added (see HELP * READEXPRESSION) Jan 14 TEACH EXPERTS added Jan 13 VEDTR() withdrawn. Renamed VED_SW() (ENTER SW) swaps two characters to left of cursor. Jan 10th A number of library files which compiled other library files without prefixing the file or directory name with 'use$pop:' have been identified and cured. Jan 5th 1983 * TEACH PSYS and LIB PSYS added (converted from the PDP-11 and adapted slightly) VEDPOPREADY plays the role of interrupt inside VED. It is called before interrupt when errors occur, etc. E.g. you can do POPREADY -> VEDPOPREADY. This previously did not work when compiling marked ranges. It has now been fixed. However, if VEDPOPREADY is not IDENTFN then syntax errors no longer produce 'short' messages on the command line. Dec 15 - Version 6.4 * LIB VT100 is now built into the system, selection between setup for a Visual 200 and a VT100 being done automatically the first time VED is called by using the identification escape sequence sent by the terminal in response to ESC Z. Selection is done by matching the id sequence received against strings in VEDTERMINALSELECT, which is a list of 2-element lists. Each 2-element list contains a string together with a procedure or word, the procedure (or the procedure in the VALOF of the word) being called if the corresponding string is an initial substring of the id sequence with the ESC removed. The default for VEDTERMINALSELECT is therefore [ ['/K' ^IDENTFN] ['[?1' ^VEDVT100] ] -> VEDTERMINALSELECT; since the Visual 200 sends ESC/K and the VT100 sends ESC[?1 (if the setup procedure selected has nonzero PDNARGS then the full id sequence is supplied to it as an argument). This selection process can be disabled by assigning an non-list to VEDTERMINALSELECT (e.g. FALSE -> VEDTERMINALSELECT). * The problem experienced by PROLOG users with large procedures has been surmounted - POP now copes with procedures of any size. * When running on a VT52 compatible terminal (e.g. Lyme 4000, 4004), VED now doesn't have to redraw the whole screen when scrolling up or down a full-screen window. * Disk overdrafts are now usable, but only for writing to files that are already open (i.e. new files can't be created when over quota). A warning message is issued when first exceeding quota. * TRACE and UNTRACE now plant code, and so operate at run-time rather than at compile-time. This means they can be used inside procedures, etc. * POP_PR_RADIX contains the base to which numbers are printed by SYSPR. So for example 16 -> POP_PR_RADIX will cause numbers to be printed in hexadecimal, 2-> POP_PR_RADIX in binary, etc. Needless to say the default value is 10. * A facililty for timing-out reads from a terminal is now available. POP_TIMEOUT_SECS specifies after how many seconds a read should time out (FALSE if there is no timeout). When a timeout occurs the procedure in POP_TIMEOUT is called (default IDENTFN). Exiting normally from this procedure inside CHARIN or RAWCHARIN will cause the read to be re-tried if no characters have actually been read before the timeout, whereas inside SYSREAD the number of characters read before the timeout will be returned. (N.B. This facility is independent of SYSSETTIMER). * Owing to a change in SYSSAVE/SYSRESTORE, saved images are now restored considerably faster. DEC 10th LIB TIME and LIB GCTIME make available two new macros. See HELP TIME. TEACH WALTZ added LIB REGIONS, LIB FINDREGIONS and TEACH REGIONS transferred from PDP11 READPICTURE and STOREPICTURE fixed. See HELP READPICTURE, HELP STOREPICTURE LIB EDGEPIC added to turtle library Dec 8th NEW VERSION OF HELP VEDKEYS, HELP V200, HELP VT100 New Prolog predicates 'fast_code' and 'compact_code'. These are to enable people to get around a certain bug (see HELP PROLOGBUG), and will be withdrawn as soon as a better solution is found. Dec 7th VED ENTER GSL/string1/string2/ = globally substitute on current line Dec 2nd 1982 REF EXTERNAL is now written - comments welcome. VED ENTER PRINT altered to use the logical name SYS$PRINT. This enables the command to be used by a wider range of users. There is now a TEACH VT100 file. Nov 25th See SHOWLIB PAGE See SHOWLIB VED_RIGHT SEE SHOWLIB VED_CENTRE ESC / searches for previous search string. (Had a bug, now fixed) LIB FORMAT: Bug in ENTER OVER fixed (by David Roberts) Nov 19th The turtle program has been altered to use the same drawing algorithm as LIB VTURTLE, which produces better straight lines. The old version can be compiled by LIB OLDTURTLE. The 'active' turtle, compiled by LIB ACTIVE, has two new procedures, ACTIVE; displays the picture and sets 'active turtle' mode of compilation, with automatic scrolling, etc. ENDACTIVE; sets things back to normal. Nov 17th LIB STOREDATA altered so that strings are recorded with string quotes, so that a file storing a database with strings can be loded to restore the strings. Nov 16th Discrete event simulation package added by Jon Cunningham. See HELP ACTOR. Nov 12 - Version 6.3 SHOWTREE generalised to work on other terminals besides visual 200 The system is now configured so as to make it possible to access procedures written in other languages from within POP. This is described in REF EXTERNAL. The change should be completely transparent for ordinary use. Words not referenced anywhere but in the dictionary are now garbage collected. The only possible difference this can make is that a temporary property entry for such a word will now disappear, whereas before this would have always been prevented by the presence of the word in the dictionary. Thus the way in which temporary properties work for words is now consistent with the way they work for all other structures. ITEM_CHARTYPE can now take an item repeater as an optional last argument, enabling character classes to be changed for a specific item repeater (this includes ITEMREAD or READITEM for the current input stream). See REF ITEMISE. New facilities have been added to allow the use of VMS sub-processes from within POP, viz SYSSPAWN, SYSATTACH, SYSWAIT, SYSKILL and SYSMAILBOX. Because of these, SYSOBEYLIST and the DCL macro are now library procedures (SYSOBEY is retained in the system, but only because it is used therein). See REF SYSIO for SYSMAILBOX and REF SYSUTIL for the others. A serious bug in SYSSETTIMER has been fixed. This might have caused an EXECUTING NON-PROCEDURE mishap if the timer went off during a garbage collection (and could be responsible for problems with LIB PROFILE?). Nov 4 The turtle package has been changed to put the word "PICTURE", as well as the picture bounds, into the pdprops of the picture. This allows a picture to be able to be saved using SYSSAVEINCR with the picture as the second argument. Nov 3 1982 VED ENTER DCP = delete current procedure COMMENT is a macro which can be used for multi-line comments. See HELP COMMENT Built in predicate 'library' added to prolog: ?-library(xyz). will act like ?-reconsult('[pop.lib.plog]xyz.pl'). QUITIF and QUITUNLESS added to VEDBACKERS, so when programs are indented by VED_TIDY and derivatives, lines starting with these words will be de-indented, like labels, "elseif" etc. Oct 28th POP_LONGSTRINGS If FALSE (default) string expressions cannot go past the end of a line, unless the line ends with a backslash. If TRUE string expressions can contain newlines. HELP NEWS has been truncated. Older parts now in HELP NEWS.6 CHARIN_TIMEOUT(integer) -> This a new name for the old library procedure called SYSSLEEP. It has had to be re-named because the name is now required for a new system procedure, described below. (Oct 26th) VEDSWAPFILES and ESC X restored to previous version, i.e. don't leave cursor on command line ever. Oct 27th LOAD altered to cope with underscores in file names, truncate file names, etc. VED ENTER DIFF Searches down current window and 'other' window in both cases starting from the current line, comparing lines until either a pair of differing lines is found or the end of file is reached. Oct 26th The handling of disk quota exceeded in VED has been improved. If this happens while writing a file, the part-written file is automatically deleted and the mishap DISK QUOTA EXCEEDED - FILE NOT WRITTEN occurs. Thus a subsequent PURGE is now perfectly safe. This is implemented through the following mechanism: whenever an error occurs in writing to a disk-file device, the device is automatically closed, and the device record is given to the procedure POP_FILE_WRITE_ERROR. It is then up to this procedure to deal appropriately with the situation. To facilitate this, a device record now contains 2 names: DEVICE_OPEN_NAME(DEVICE) is the name by which the file was opened, and DEVICE_FULL_NAME(DEVICE) is the full name. The former procedure DEVNAME (now in the library) is the same as DEVICE_OPEN_NAME. The action of VED in the above is therefore to locally redefine POP_FILE_WRITE_ERROR(DEVICE) to be ERASE(SYSDELETE(DEVICE_FULL_NAME(DEVICE))); Any output device may be flushed (i.e. any buffered characters written out) with SYSFLUSH(DEVICE) - see REF SYSIO. RAWOUTFLUSH has been moved to the library since it is now just SYSFLUSH(POPDEVRAW). SYSSLEEP(TIME) and SYSHIBERNATE() enable POP to be put into a suspended state awaiting an interrupt - see REF SYSUTIL. TEACH defaults to TEACH TEACH after quitting a teach file, not TEACH INDEX VED ENTER YANKC Will 'yank' a copy of the marked range into the 'command' file. Oct 21st VEDDECODETABS(string) -> string Lines containing tabs in VED (if vednotabs is false) have extra tab characters representing the portion of the screen to be padded out. VEDDECODETABS converts such a string to a string with the right number of tabs, using VEDINDENTSTEP to determine tab boundaries. VEDTHISSTRING()-> string Unlike VEDTHISLINE, this returns a string with the proper number of tabs. It uses VEDDECODETABS Oct 15th FILE NAMES: The following autoloadable library procedures are now available. SYSFILEPARSE(string) -> vector Given a file name returns a vector of (possibly null) strings corresponding to host, disk, directory, name, type, version. SYSFILEHOST(string) -> string Given a file name returns a string (possibly null) corresponding to HOST. SYSFILEDISK(string) -> string Given a file name returns a string (possibly null) corresponding to DISK. SYSFILEDIR(string) -> string Given a file name returns a string (possibly null) corresponding to DIRECTORY. SYSFILENAME(string) -> string Given a file name returns a string (possibly null) corresponding to NAME. SYSFILETYPE(string) -> string Given a file name returns a string (possibly null) corresponding to TYPE. SYSFILEVERSION(string) -> string Given a file name returns a string (possibly null) corresponding to VERSION. Oct 13th Owing to tha fact that it was growing far too large, the REFerence file SYSPROCS has been split into three smaller files, viz REF SYSIO - Input and output procedures (SYSOPEN etc) REF SYSUTIL - General utilities (SYSSAVE, SYSGARBAGE etc) REF SYSCOMPILE - Compiler procedures (SYSXCOMPILE etc) REF SYSIO now contains documentation on SYS_FILE_MATCH, which provides an interface to the VMS library routines for finding all filenames that match a given specification like '[foo...]*.p'. (These are the same routines that things like the DCL DIR and PURGE commands use.) Oct 12th VED_J altered so as to increment VEDCHANGED only by 1, to prevent excessive activations of VEDAUTOWRITE. October 8th Since the sequence ESC DEL is sometimes transmitted by terminals on noisy lines, ESC Q is to be used instead for quitting a file. It is equivalent to ENTER Q. The new default for vedautowrite is 900, instead of false. Since the introduction of Version 3.0 of VMS, with the SPAWN facility, SYSOBEY and 'dollar' commands have speeded up considerably. Consequently, some of the library macros are no longer necessary and will be withdrawn, e.g. PURGE, DIR. October 5th David Roberts has kindly supplied a collection of VED utilities for formatting files. They are described in HELP * FORMAT. They are made available by LIB FORMAT; or ENTER LIB FORMAT. Any comments should be sent to POP and to DAVIDR. Sept 30th 1982 Version 6.0 has many changes to VED. The principal enhancements are: 1. The command line is now a 1-line window into a file of commands. This means that the command line can be edited like any other line in a file, and that cursor movements made on the command line cause the position in the command file to change. ENTER is equivalent to END-OF-FILE, i.e. the blank line at the end becomes the current position, except that if this makes the command file longer than 30 lines, the top line is deleted. A line in the command file can be executed by keying RETURN anywhere on the line - it is also now possible to obey a marked range of commands in the command file by typing Ctrl-D on the command line. There is only one command file for all files being edited, so on switching files the current command position is retained. 2. Tabs are now implemented. If VEDNOTABS is false, then tab characters read from a file are retained as tabs, and the TAB key inserts a tab rather than spaces. The size of a tab is governed by VEDINDENTSTEP. A new variable, VEDHARDTABS, controls whether a tab is turned into spaces if an attempt is made to delete or insert characters in the middle of it. If VEDHARDTABS is TRUE, then this situation will produce an error message, otherwise the tab will be turned into an equivalent number of spaces before deleting or inserting. Also, when deleting a character immediately in front or behind a tab, the whole tab will be deleted with VEDHARDTABS true, but turned into spaces and one space deleted with VEDHARDTABS false. 3. The handling of terminals without character insert/delete has been considerably improved. A number of other changes to VED will be noticed (e.g. ENTER J on text is now much faster and cleaner), but other internal changes should be transparent. It is just possible that some ved procedures that people were using have disappeared - if this is the case, please mail POP and the procedure(s) in question will be reinstated or equivalents provided. Also mail to POP please about bugs and suggestions for improvements. VED_CMR is to be withdrawn, owing to generalisation of VED_LMR. See HELP * LMR Sept 24th 1982 By popular request, POPDEFINEPROCEDURE has now been introduced, with default value FALSE. This means that DEFINE statements will only declare procedure variables if POPDEFINEPROCEDURE is TRUE, or if the word PROCEDURE appears in the heading as an identprops, e.g. DEFINE PROCEDURE FOO()... DEFINE CONSTANT PROCEDURE FOO().. etc. Note that operators (as in VARS 5 OP, DEFINE 5 OP) remain of type procedure. NOTE also that POPDEFINEPROCEDURE is local to COMPILE, and that POPDEFINECONSTANT is now local to COMPILE as well. (There will shortly be a procedure in the system to enable a global assignment to be made to any variable when currently inside a procedure that has that variable as local, so that e.g. it will be possible to to change either of the of the above variables globally in an init.p file.) 1982 FOR OLDER NEWS SEE HELP NEWS.6