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<something>
    (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) -> <integer or false>
    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
