Search                        Top                                  Index
HELP NEWS.V14                                    John Williams, Jul 1992

For the most recent news, please see HELP * NEWS.

-- VERSION 14.0 NEWS --------------------------------------------------

SEE HELP * V14.CHANGES for a summary of changes since V13.6

Feb 11 (John Williams)
    --- Two new PWM libraries (courtesy of Reading University) added.

Feb 6 (John Williams)
    --- Documentation on <ENTER> ? and <ENTER> ?? completed.

Feb 4 (John Williams)
        HELP FASTPROCS deleted (see REF * FASTPROCS instead).

Jan 31 (Aaron Sloman)
    --- ved_splice used to give an inappropriate error if invoked before
        ved_cut. Now fixed. See REF * ved_splice, * ved_cut

    --- ved_imsh (Unix Only) used sometimes to give no response to the
        first command, then, after each subsequent command, produce
        output to the previous command. Now fixed. See HELP * IMSH

    --- isendstring('','') previously gave an error. It now returns 1.
        (This has a justification as a limiting case). This fixes
        certain errors that occasionally caused VED to go badly wrong
        when given a file name with no file name part.

    --- HELP files for three obsolete procedures have been updated:

        For information on their replacements see
            REF * POPCOMPILE/pop_pop11_flags

Jan 30 (John Williams)
    --- Improved documentation on libraries and search lists: see
            REF * LIBRARY
            HELP * AUTOLOAD
            HELP * POPLIBLIST
            HELP * POPUSESLIST
            HELP * SEARCH_LISTS (new file).

Jan 26 (Roger Evans)
    --- Extra flexibility added to LIB * SHADOWCLASS (see
        REF * SHADOWCLASS, which now exists!). However this change is
        slightly non-upwardly compatible with the version provided in
        the v14-beta test system (shadowclass did not exist before then).
        Any existing shadowclass declarations which specify a 'props'
        attribute will have to be changed as follows.

        For a constant props attribute, formerly thus:
                shadowclass [myprops] ....
        the declaration should now be:
                shadowclass [props myprops] ....

        For a props attribute held in a variable, formerly thus:
                shadowclass [ #_< myprops >_# ] ....
        the declaration should now be:
                shadowclass #_< [props ^myprops] >_# ....

        Apologies to the (hopefully extremely few) users who are
        inconvenienced by this change.

Jan 20 (Aaron Sloman)
    --- Corrected a number of errors and omissions in HELP * VEDKEYS

Jan 15 (Aaron Sloman)
    --- A problem with VED and PWM fixed. Recent changes had caused too
    much mouse cursor motion if vedusepwmwindows was anything but [].
    This is now fixed, and true-> vedusepwmwindows is equivalent to

            [vedswapfiles vedfileselect ved_rb] -> vedusepwmwindows;

    See REF * vedusepwmwindows

Jan 14 (John Williams)
    --- Version number changed to 14.0

Jan 12 (Aaron Sloman)
    --- Two new autoloadable library procedures added, * dupnum and
    * applynum, completing this table

        sysERASE   erase   erasenum
        sysPUSHS   dup     dupnum
        sysCALLS   apply   applynum

    -apply- and -applynum- have updaters. see REF * STACK, * PROCEDURE

Jan 11 (Aaron Sloman) [UNDONE LATER. See June 15]
    --- Changed updater of vedusepwmwindows so that assigning true to
    it is equivalent to assigning [vedswapfiles]. [See above]

Jan 10 (Aaron Sloman)
    --- Updated HELP * VEDSET and HELP * VEDSETKEY with warnings about
    putting customisation commands into vedinit.p file outside procedure

Jan 4 (Aaron Sloman)
    --- REF * PROCEDURE updated with information about protected
    closures. HELP * CLOSURES has been re-written and expanded.

    --- HELP * EXTERNAL has been reorganised so that the whole table
    of contents is at the beginning. HELP * NEWFORTRAN_DEC now explains
    the fortran facilities in LIB * NEWEXTERNAL and LIB * NEWFORTRAN_DEC

Jan 3 (Aaron Sloman)
    --- REF * VEDPROCS has been updated to indicate which procedures are
    user definable. Also various minor errors corrected.

    --- REF * VEDCOMMS has been reorganised, errors corrected, and a
    section added on commands for manipulating rectangular text blocks.
    See REF * VEDCOMMS/block

Jan 1 (Aaron Sloman)
    --- Startup procedures for Lisp, Prolog and ML have been improved so
    that if they are run with an argument such as "ved <filename>" or
    "help <filename>" they will go straight into VED, and read in the
    appropriate file, as if the command had been given to VED. This
    is not done for Pop-11 (a) because it is inconsistent with the
    existing mechanism for giving a program file name as argument to
    Pop-11 (See REF * SYSTEM) and (b) because "ved", "help", "teach"
    etc are already defined as abbreviations for this purpose.

Dec 13 (Aaron Sloman)
    --- LIB * VED_DK has been extended to make the ENTER dk command
        far more versatile, so that it can be used to map a key sequence
        onto a known VED function or onto an ENTER command. For details
        See HELP * DK
Dec 12 (Aaron Sloman)
    --- Several HELP files concerned with numbers improved:
        HELP * INTOF, HELP * FRACOF, and the section of HELP * EQUAL
        concerned with comparing numbers
Dec 6 (Roger Evans)
    --- Batching mechanism for -exload_batch- improved, and a new user
        variable -exload_strict_batching- added. See REF *exload_batch
Nov 27 (Aaron Sloman)
    --- Global variable -vedinputfocus- put in to fix bug in connection
        with immediate mode has had to be exported for use in things
        like LIB * WINDOWS
Nov 21 (John Williams)
    --- Version 13.91 (beta-release V14).

Nov 20 (Aaron Sloman)
    --- ENTER ljmr extended to cope with negative argument, and bug
        fixed. See REF * ved_ljmr

Nov 16 (Aaron Sloman)
    --- LIB DIRED (Unix only) extended with "dired -dcd" command to
        delete current directory listing. See HELP * DIRED

Nov 16 (John Williams)
    --- New documentation: HELP * VEDXTERM, which explains how to
        set up VED for use with the Xterm terminal emulator, and
        HELP * HPXTERMKEYS, which shows the VED key mappings for
        an HP 9000 under Xterm.

    --- LIB * VEDXGOTOMOUSE provided for using mouse to move VED cursor
        in an xterm window. Documentation is in HELP * VEDXTERM

    --- New (autoloadable) procedure -newprwarning- added. If assigned
        to -prwarning-, extra information (i.e. the current filename and
        line number) will be printed whenever a 'DECLARING VARIABLE'
        warning occurs.

Nov 15 (John Gibson)
    --- A new (protected) variable trap procedure -pop_chario_trap- is
        now called by -charin-, -charout-, and -charerr-.
        See REF *CHARIO.

Nov 14 (John Williams)
    --- LIB * MKREFINDEX, the utility for indexing REF files, is now
        documented in HELP * MKREFINDEX. The index files are also used
        by ved_??

    --- New VED command <ENTER> COLS added. If called, VED will display
        the current column number on the status line, instead of the
        current line number. Uses the procedure *ved_cols and the
        variable *vedstatusshowcols.

Nov 13 (John Williams)
    --- New standard device *pop_null_device added (as an autoloadable

    --- The VED command <ENTER> HELPFOR has been considerably improved.
        See HELP * HELPFOR.

Nov  9 (John Williams)
    --- Failed documentation requests now produce polite "not found"
        messages, instead of causing a MISHAP.  It is now possible to
        trap failed requests by redefining the new procedure

Nov 6 (John Gibson)
    --- A new procedure -consdevice- allows `user' devices to be
        constructed, which devices can then be used with standard I/O
        procedures such as -sysread-, -syswrite- etc to implement
        simulated I/O channels (there is also an associated new
        procedure -device_user_data-).

        The new facilities are described in REF *SYSIO (which has been
        overhauled, and the previously separate Unix and VMS versions
        combined into one).

    --- POP11 VED commands like "ved", "help", etc now work correctly
        in VED immediate mode compilation.

Nov 4 (Aaron Sloman)
    --- Modified effect of vedusepwmwindows being true. It no longer
        transfers input focus when you quit a file.

    --- LIB * FMATCHES, described in HELP * FMATCHES makes available
        a version of the Pop-11 pattern matcher that can be used with
        in sections and with lexical variables. It can also find matches
        not found by the ordinary matcher. There are corresponding
        disadvantages, described in the help file.

Oct 30 (Aaron Sloman)
    --- LIB * VEDFILECOMPLETE enables automatic filename completion

    --- HELP * NEWPROPERTY was out of date. It has been corrected.

    --- * EXTEND_SEARCHLIST extended to cope with a list as first

    --- LIB * POPXLIB now extends each documentation search list
        with the "other" X documentation directories

Oct 29 (John Williams)
    --- New library LIB * MKVEDIMAGE added. For building saved images
    that speed up VED startup.  See HELP * MKVEDIMAGE for details.

Oct 29 (Aaron Sloman)
    --- Fixed bug in -vedfileselect-. It previously got into trouble
        if a file had something like a list for vedfileprops

Oct 27 (Aaron Sloman)
    --- Added "#|" to -vedopeners- "|#" to -vedclosers-

    --- Various documentation files updated, corrected, re-formatted.
        REF * SYSTEM has X startup information added.
        HELP * X brought up to date
        HELP * VEDKEYS had wrong entry for ESC 3, now fixed.

        * VEDEMACS

    --- Updated REF * VEDPROCS, * VEDCOMMS

    --- New procedure * VEDCHECKSIZE to determined whether * VEDRESIZE
        should be invoked.

    --- The default * VEDFILETYPES now sets the variable -vedindentstep-
        so that if changed for one file it is not inherited for all
        other files. Users wishing to have a different default value
        should assign an appropriate list to vedfiletypes.

Oct 25 (Aaron Sloman)
    --- Bug fixed in LIB SHUFFLE. It used to remove repeated elements
    from the list it was shuffling. It doesn't now.

Oct 22 (John Williams)
    --- The sequence of actions normally performed when POPLOG starts up
    have been collected together in the new procedure -syssetup-
    (described in REF * SYSTEM). Useful for re-initialising after
    restoring a saved image.

Oct 19 (Jonathan Meyer)
    --- New procedure -sysprmessage- added, for printing messages in
    standard POPLOG error format (but not necessarily flagged by the
    word "MISHAP"). The procedures -sysprmishap-, -sysprwarning-, and
    -warning- now all use -sysprmessage-.  See REF * MISHAPS.

    --- LIB * EXLOAD extended to provide facilities for batch loading,
    and also a "require" mechanism that will not reload identifiers that
    are already defined. Documentation to come shortly.

Oct 19 (John Williams)
    --- New VED command <ENTER> HKEYS added. This displays a HELP file
    which illustrates the current set of VED key bindings. Documented
    in REF * VEDCOMMS/ved_hkeys

    --- HELP * VEDSUN has been substantially rewritten. It discusses the
    various libraries available for using VED on a Sun workstation.

    --- New variable -vednosunviewkeys- introduced. If declared, and not
    false, it forces LIB * VEDSUNKEYS to load the key mapping described
    in the file HELP * SUNKEYS. By default, -vednosunviewkeys- is not
    declared, and so LIB VEDSUNKEYS loads the key mapping shown in

    --- The libraries that set up VED on a Sun now make use of the
    extra righthand keypad keys available on Sun type-4 keyboards.

    -- The obsolete library LIB NEWSUN (and associated help file) has
    been removed.

Oct 19 (John Gibson)
    --- A bug that occasionally caused the system to hang up in a tight
    non-interruptible loop has been tracked down. The problem was
    concerned with procedures like >< and sys_>< which locally redefine
    -cucharout- to be -identfn-; when such a procedure caused a garbage
    collection, and -popgctrace- was true, the attempt to print the GC
    message through -identfn- resulted in the loop.
        To obviate this problem, the garbage collector now locally
    resets -cucharout- to -charout- if its current value is -identfn-.

Oct 16 (Aaron Sloman)
    --- LIB VED_GREP (Unix only) has been completely re-written to be
    far more flexible and faster. See HELP * VED_GREP

    --- Bugs in LIB WINDOWS fixed, and documentation revised. See
    HELP * WINDOWS (Version of VED for more than 2 windows on a VDU)

Oct 13 (Aaron Sloman)
    --- To enable users to over-ride some of the default settings for
    the Pop-11 error handler more easily, a new variable has been
    introduced pop_default_prmishap. Its default value is -false-.
    If a procedure is assigned to it then that be used as the value for
    prmishap inside VED instead of -vedprmishap-. It will also be used
    inside ved_lmr, which also previously used to over-write user's
    error handlers.

Oct 12 (Aaron Sloman and Robert Duncan)
    --- Owing to complaints from users resulting from changes
    introduced in V13.7 (January 1990), the old default key bindings for
    VED have  been  re-installed,  and documentation  moved  from  HELP *
    VEDOLDKEYS to  HELP *  VEDKEYS. The  new (far  more systematic)  key
    bindings remain available via  the procedure -vednewkeys- which  can
    be assigned to -veddefaultkeys- in the user's vedinit.p file.  These
    bindings are described in HELP * VEDNEWKEYS.

    There are some additional key bindings now provided by -vedoldkeys-
    to help users whose keyboards lack adequate function keys. The new
    facilities are flagged with "++" in HELP VEDKEYS.

    The following files have been updated, accordingly:

    --- In consequence of the above change, LIB * VEDANSIKEYS has been
    created, to use vednewkeys, and LIB * VEDANSI extended to use it.

Oct 9  (Simon Nichols)
    --- POPLOG now recognises the following special arguments, all of
        which begin with a '%' character, and cause the associated
        actions to be performed:

            %nobanner   suppresses printing of the banner

            %noinit     prevents compilation of initialisation files

            %x          tells POP-11 to start-up under X

        The %x argument may optionally be followed by a bracketed list
        of X arguments, which is assigned to the variable -popunderx-.

        For example,

            pop11 %nobanner %x \( -display cx010:0.0 \)

        causes POPLOG to startup under X without printing the banner.
        The variable -popunderx- will have the value:

            ['-display' 'cx010:0.0']

        See REF * SYSTEM for details.

Oct 9  (Aaron Sloman)

    --- -vedrestorescreen- and a number of other VED procedures have now
        been made user definable.
    --- previous work on extra hooks for XVed has been rationalised
        and extended. When documentation is ready this news entry will
        be updated.

Oct 4  (Aaron Sloman)
    --- LIB * WINDOWS (multi-window VED) would not compile after a
        library file was moved into the system. Now fixed

    --- LIB * VEDVT220SCREEN modified to speed up character insertion
        and deletion

    --- LIB * VEDVT100SCREENEXTRA provides similar speed up for VT100
        type terminals that support character insertion and deletion in
        the middle of a line. E.g. this can be used with xterms

Oct 3  (Aaron Sloman and John Gibson)
    --- sysvfork (Berkely type Unix only) had recently been modified to
        take account of nested virtual forks up to 4 deep. This
        prevented sysfork in the context of sysvfork working properly.
        This has now been fixed.

Oct 2  (Aaron Sloman)
    --- The procedure previously called vedrefreshregion has been
        renamed as * vedrefreshpartline. In addition bugs have been
    --- This permitted * VEDREFRESHBLOCK to be reimplemented so that
        it handles tabs correctly (See LIB * VEDBLOCKS)
    --- Introduced procedure vedscreenblankpartline
        See REF * VEDPROCS

Sep 30 (Aaron Sloman)
    --- The procedure -pretty-, used by ==>, has been modified so that
    it never increases poplinewidth or poplinemax, though it still
    decreases them if necessary to fit in a VED window.


Sep 29 (Aaron Sloman)
    --- A number of new hooks into VED have been provided at the request
    of users.
    * VEDEDITORTRAP allows a user defined procedure to be run when
        * VEDEDITOR  first starts  up or  re-enters, before  it  calls
        * VEDGETFILE and then * VEDPROCESS

    * VEDEDITOREXIT is called whenever VED exits normally or abnormally
        from VEDEDITOR

    * VEDINITIALISE (introduced DEC 1989 has been generalised to take
        an argument as described in REF * vedinitialise

Sep 29 (Aaron Sloman)
    --- In order to facilitate a multi-window interface to VED in an X
    windows environment (analogous to that described in HELP PWMVED)
    various changes have been made to VED and PWM procedures. These
    should all be totally upward compatible. For details see ????

Sep 28 (John Williams and Aaron Sloman)
    --- New file HELP * CONTRIB installed. This describes the "contrib"
    directory tree, which provides software, documentation and teaching
    material supplied on an "as is" basis by Poplog users, currently
    mainly at Sussex University. It includes such things as all the
    programming examples from the Gazdar and Mellish books on Natural
    Language processing (See HELP * POPREFS), an extended version of
    the Poplog window manager provided by Anthony Worrall of Reading
    University, and additional utilities, demonstrations, etc.

    The file $popcontrib/ will summarise additions to the
    contrib library.

    NOTE: whether the Poplog contrib library is available will depend on
    your installation manager.

Sep 24 (Aaron Sloman)
    --- Please note that LIB V12PWM is no longer supported. See
        HELP * V12PWM

Sep 21 (Ian Rogers)
    --- Fixed bug in -quitmessage- which stopped it working
        for update methods. See REF * FLAVOURS/quitmessage

Sep 21 (John Gibson)
    --- Some changes to -sys_signal_flag-. The value assigned to this
        can now be a vector of signals to block while running the
        handler, and values can be assigned for a set of signals
        simultaneously. The default value of true now means block only
        that signal while running the handler (the old value 1 is still
        accepted for upward compatibility, and means the same as true).

Sep 17 (John Gibson)
    --- POP11 now supports expression sequences in update mode, where
        the expressions are evaluated in reverse order. This makes
        possible `stack tuple' assignments of the form

                1,2,3 -> (x,y,z);

        i.e. the above is equivalent to

                1,2,3 -> z -> y -> x;

        (It also makes possible an update mode -if- like

            1,2,3 -> if <cond> then x,y,z else u,v,w endif;

        etc.) As normal, an empty expression in update mode is
        interpreted as an erase, so that

                foo(x,y) -> (u,,w)

        would erase the second result of -foo-, and

                foo(x,y) -> (,,)

        would erase all three, etc.

    --- A `tuple' facility  is  also available for  use with  "="  in
        identifier declaration and -dlocal- statements, thus:

            lvars (remainder,quotient) = 14//4;
            dlocal (u,,w) = foo(x,y);

        Note that parentheses that are associated with identprops, etc
        are completely separate from `tuple' parentheses. Thus something

            vars procedure (p1, p2) = (identfn, identfn);

        is NOT allowed; however, tuple parentheses may occur either
        inside or outside the other kind, i.e. both of

            vars ( procedure (p1, p2) ) = (identfn, identfn);
            vars procedure ( (p1, p2) = (identfn, identfn) );

        are legal. (Also, commas for separation are MANDATORY everywhere
        inside tuple parentheses.)

    --- The output local syntax of -define- and -procedure- is
        similarly extended, so that

            define foo(x, y) -> (u, v, w);

        corresponds to the existing

            define foo(x, y) -> w -> v -> u;


Sep 16 (Aaron Sloman)
    --- New utility  introduced  for  creating  a  line-repeater  (ie. a
        procedure that returns a string each time it is called).
        See REF * SYSIO/line_repeater

    --- The entry for * ISINCHARITEM in REF * ITEMISE wrongly stated
        that the underlying character repeater was returned. It is the
        item repeater created by * INCHARITEM that is returned, and the
        entry has been corrected.

Sep 9 (Aaron Sloman)
    --- The procedure * VEDREADFILE has been altered to check that its
        first argument is a procedure BEFORE it starts reading in the
        file and setting VED's global variables. Because the check used
        to occur later, VED could sometimes lose a file if a
        non-procedure was given as first argument to * VEDGETFILE,
        * VEDEDITOR and related procedures. See REF * VEDPROCS and

Sep 5 (John Williams)
    --- New VED terminal libraries LIB * VEDVT320, LIB * VEDVT320SCREEN,
        and LIB * VEDVT320KEYS added. They are identical to the VT220
        versions!  See REF * VEDTERMINALS.

Sep 5 (Adrian Howard)

Sep 3 (Aaron Sloman)
    --- LIB * VED_SHOWINCLUDE makes it possible to use VED to examine
        "include" files accessed via -popincludelist-.
        See HELP * INCLUDE, REF * LIBRARY/Include, REF * #_INCLUDE

Sep 3 (Adrian Howard)
    --- Some "mishap" messages have brief codes that can be used to
        access a more detailed explanation of the error. Previously these
        codes all had separate help files. They have now been collected
        into three REF files:

        REF * MISHAP_CODES  - general Poplog, Pop-11 and VED error codes
        REF * UNIX_MISHAP_CODES - Unix specific error codes
        REF * VMS_MISHAP_CODES - VMS specific error codes

        See also HELP * ERRORS and REF * MISHAPS

Sep 3 (John Gibson)
    --- (Sun-4 POPLOG Only) Fixed a serious bug in the passing of
        arguments to external functions. The symptom of this bug was
        that a single-float decimal appearing as an argument somewhere
        after the 4th to 7th argument positions corrupted an argument in
        between those positions.

Aug 31 (Ian Rogers)
    --- A completely new version of the  C aspect of LIB * EXTERNAL  has
        been written (LIB * NEWC_DEC), with much enhanced  capabilities.
        See HELP * NEWC_DEC for details.

Aug 30 (Aaron Sloman)
    --- REF * VEDXTERM has been updated with a comment explaining how
        to make function keys on a Sun Keyboard transmit useful
        characters for VED when running in an xterm window. See also
        LIB * VEDXTERM

Aug 30 (John Gibson)
    --- Argument strings passed to POPLOG on startup (and put into
        -poparglist- etc) can now be formed into sub-lists by using the
        argument strings '(' and ')' as list brackets. That is, all arg
        strings between these two are collected into a single sub-list
        element of -poparglist-. See REF *POPARGLIST0.

Aug 10 (Aaron Sloman)
    --- The procedure * VEDSCREENRESET has been made user definable.
        (caution needed)

Aug 8 (Aaron Sloman)
    --- The Pop-11 procedure -charin- is at last fully documented in

    --- VED's immediate mode mechanism is now fully(?) documented in
    REF * VEDPROCS (see -vedsetpop-, -vedprocswaiting-, -veddocr)

    --- REF * REFFILES has been extended to give information about new
    REF files.

July 30 (John Gibson)
    --- Version 13.82 of POPLOG has major enhancements to the facilities
    for creating record and vector classes, and a whole new set of
    facilities for defining and accessing external structures --
    including new ways of loading and calling external functions (the
    term 'external function' replacing the old 'external procedure').

    Another important addition is the ability for external code called
    from within the system to call back to POPLOG procedures.

    As well as a completely rewritten REF *EXTERNAL (now covering both
    Unix and VMS), and radical revisions to REF *KEYS and REF *DATA,
    these changes are covered by two new REF files:

            --- POP11 syntax for defining and accessing both POPLOG and
                external structures

            --- Using external data structures in POPLOG, and POPLOG
                data externally

    The changes are completely upward-compatible with previous versions
    of the system; the old facilities for loading and calling external
    procedures remain as autoloadable libraries.

    An associated change is that the field specifiers of the three
    built-in vectorclasses strings, shortvecs and intvecs have changed
    from integers 8, -16 and -32, to the words "byte", "short" and "int"
    respectively. However, -class_spec- still returns the old values
    (which it does by applying -field_spec_info- to the actual
    -class_field_spec- of the keys, the latter being the new replacement
    for -class_spec-). See REF *KEYS.

July 30 (Aaron Sloman)
    --- Several incorrect entries in REF *VEDCOMMS have been modified.

    --- The programs that build indexes for use by * POPINDEX
        * SOURCEFILE and * POPWHERE have been extended to include
        Pop-11 files in the prolog, lisp and Poplog/X sources. The
        command files are
            $popcom/mkind (Unix) and $popcom/ (VMS)

July 30 (John Gibson)
    --- LIB * SYSSORT previously used global variables that could
        prevent temporary lists being garbage collected. Now fixed.

July 28 (Aaron Sloman)
    --- For consistency:
        extendsearchlist is now extend_searchlist
        flatten_liblist  is now flatten_searchlist
        See REF * LIBRARY

    --- (Unix only) Fixed *PIPEOUT so that it could produce output
        to terminal if necessary. Merged HELP PIPEOUT with

    --- Extended VED's controllability under PWM. If vedusepwmwindows is
        a list and does not contain "ved_q" then quitting a file will
        not move the input focus. See REF * VEDUSEPWMWINDOWS. If the
        word "ved_rb" is in the list vedusepwmwindows then ved_rb now
        properly moves the input focus to the next window displayed.

July 25 (Aaron Sloman)
    --- Because * POPUSESLIST has a new format (including identifiers)
        the library procedure flatten_liblist [later renamed see above]
        has been provided to produce a list of strings from lists like
        popuseslist. This has also been used to fix $popcom/mkind (and
        the VMS version).
        See REF * LIBRARY
        HELP * POPUSESLIST has been updated.

July 19 (Ian Rogers)
    --- Introduced, a while ago, two new procedures for screen handling.
    See REF * rawsubstringout, * vedrefreshregion.
    (The latter later renamed vedrefreshpartline.)

July 19 (John Williams)
    Version 13.82

    --- LIB * SUBSYSTEM has been substantially revised. See the new
    REF * SUBSYSTEM for details (the old HELP SUBSYSTEM has been
    withdrawn. Users are warned that these extensions are EXPERIMENTAL
    (in Version 14), and that LIB SUBSYSTEM will be revised further
    for Poplog V15.

    --- New library LIB * MKSSIMAGE added. For building saved images
    that contain subsystems. See HELP * MKSSIMAGE for more details.

    --- Two new command files added. MKLISPPLOG creates a saved image
    with Prolog loaded on top of Lisp; MKPLOGLISP creates a saved image
    with Lisp loaded on top of Prolog.

July 17 (John Gibson)
    --- The new POP11 syntax construct

                #| <statement sequence> |#

    counts how many items are pushed onto the stack by the statement
    sequence. E.g.

                #| "a", "b", "c" |# =>
                ** a b c 3

    This construct  largely does  away with  the need  for  -cons_with-,
    since something like

            cons_with consstring {% ... %}

    can now be written more simply as

            consstring(#| ... |#)

    (Note that what #| actually puts on the stack is

            (stacklength after) - (stacklength before)

    which means that if more items are removed than added, then the
    result will be negative.)

July 14 (Aaron Sloman)
    --- The documentation on * RAWCHAROUT was not updated when the
    procedure was generalised so that it could take a string instead of
    a character, so that -vedoutascii- is now strictly redundant.
    This has been corrected.

    --- HELP * INITIAL now explains how individuals can avoid
    system-wide tailoring done in $popsys/init.p $popsys/vedinit.p etc.

July 12 (Aaron Sloman)
    --- LIB SUNICONFILE had had a bug from V13.7. Now fixed, generalised
    and made more efficient.
    WARNING: because suniconfile reads image files faster, programs that
    used delays in writing raster arrays to the screen may need longer

July 10 (Aaron Sloman)
    --- Abnormal exits from VED did not always reset the screen
    properly, both in the Poplog Window Manager and when using ordinary
    terminals. This has now been fixed by re-organising -vededitor-
    so that appropriate action is always taken whether it is exited
    normally or abnormally.

    --- The new standard way to exit from VED temporarily or permanently
    is via the procedure * VEDEXIT, and * VED_POP has been redefined to
    use it.

    --- Interaction between VED and the PWM (on Suns) has been
    substantially improved, as follows:

    --- A new variable -vedpwmwindowchanged- has been introduced. If it
    is true when control returns to -vedprocess- and if the user
    assignable variable -vedusepwmwindows- has appropriate values, then
    the mouse pointer is "warped" to the current VED window. This
    automatic warping can be controlled by the user. For full details

    --- Instead of always warping the PWM pointer, the procedures
    * VEDSWAPFILES and * VED_RB now do so only if VEDUSEPWMWINDOWS has
    an appropriate value. This has been used to modify * VED_DIFF and
    * VED_CDIFF so that they don't repeatedly expose the "other"

    --- * VEDFILESELECT now works under the PWM when the list of files
    will not fit on the status line. The input focus moves to the
    selected window if either the word "vedfileselect" is in the list
    -vedusepwmwindows- or else the value of -vedusepwmwindows- is

July 10 (John Williams)
    --- New procedure *VEDSEARCHFILETYPES added. It returns the value
        that -vedsetfiletypes- would assign to a given variable for
        a given filename.

July 9 (Aaron Sloman)
    --- Installed REF *PWM and HELP * PWMNAMES (recording changes to PWM

July 6 (John Williams)
    --- The procedure *VEDFINDPDHEADER is now user-definable.
    --- New procedure *POP_SETPOP_COMPILER added.
    --- New procedure *SYS_PROCESS_POPARG1 added.
    --- New procedure *LOADCOMPILER added.

July 5 (John Gibson)
    --- POP11 autoloading can now be turned off by assigning false to
    the new variable -pop_autoload-. (This is more convenient than the
    old method of assigning [] to -popliblist-, since ensuring that
    autoloading is back on in contexts that require it can be done
    without worrying about saved values of -popliblist-, etc.)

    --- New procedures -sysEXEC_COMPILE- and -pop11_exec_compile- for
    compile-time code execution. See REF *VMCODE and REF *POPCOMPILE.

July 3 (Aaron Sloman)
    --- VEDEDITOR now made a user-definable procedure. Also restructured
    to ensure globals (including *POPCOMPILER) re-set properly on exit.

    --- Documentation on * VEDOPEN corrected to point out that it can
    take two optional extra arguments. See REF * VEDPROCS/vedopen

July 2 (Aaron Sloman)
    --- Added "missing" compilation procedure
            pop11_need_nextreaditem(choices) -> item

June 28 (Roger Evans)
    --- (UNIX ONLY, currently) -sys_input_waiting- now accepts a list of
    devices to be checked. A new procedure -sys_async_input- allows
    control over asynchronous input (using SIGIO) on a device.
    See REF *SYSIO

Jun 27 (Tom Khabaza)
    --- Added ved_noprompts command for tidying files created by
    immediate mode.  See HELP * VED_NOPROMPTS.

Jun 26 (Aaron Sloman)
    --- Altered -vededitor- and -vedreadfile- so that after errors they
    don't leave terminal in graphics mode.

Jun 24 (Aaron Sloman)
    --- Fixed bug in -vedgetsysfile- (<ESC> h) which sometimes prevented
    it searching for the item following "/" as in
        HELP * VEDGETSYSFILE/strings

Jun 23 (Aaron Sloman)
    --- Changed LIB VED_INDEXIFY to cause less screen activity.

Jun 23 (John Gibson)
    --- (Sun POPLOG Only) A change to SunOS in Release 4.1 caused the
    STACK EMPTY mishap to turn into a SYSTEM ERROR. This problem is
    cured in Version 13.81 of POPLOG.

Jun 22 (Aaron Sloman)
    --- Fixed documentation on * STRNUMBER to state that it can take a
    string OR a word.

Jun 3 (Aaron Sloman)
    --- LIB * VEDWORDSTAR and HELP * VEDWORDSTAR installed. These
    provide a partial VED emulation of the WORDSTAR editor.

Jun 3 (Aaron Sloman)
    --- Added autoloadable LIB * POPINCLUDELIST, making it possible to
    reference -popincludelist- without first doing "uses include". See
    --- Updated and extended REF *PROGLIST, HELP * LEXICAL, HELP * LVARS

    --- Updated HELP * STANDARDS with suggestions regarding packages

Jun 1 (Roger Evans)
    --- Minor enhancements to library support: LIB * INCLUDE now has
    system and local include directories in its default search path. New
    library LIB * EXTENDSEARCHLIST for adding directories to liblists
    if not already present - see REF * LIBRARY.
    [Note: it was later renamed extend_searchlist]

May 29 (John Gibson)
    --- (UNIX Only) Fixed bug in -sys_file_match- which prevented correct
    matching of pattern chars inside [ ] (e.g. [a-z]).
        Also, -sys_file_match- with true STRIP argument now returns
    separate directory pathnames ending with / (except when empty).

May 29 (Aaron Sloman)
    --- ved_jj screen activity speeded up. This will also speed up
        ved_jjp  See HELP * VED_JJ * VED_JJP

    --- The procedures csh_compile, sh_compile and dcl_compile have
    been altered to prevent slow sideways scrolling when long lines are
    printed in VED. This improves the behaviour of ved_imcsh, ved_imsh
    and ved_imdcl.
    See (on Unix) HELP * IMCSH, *IMSH, (on VMS) *IMDCL *DCL_COMPILE

May 28 (John Gibson)
    --- The procedure -sysopen- can now take an optional 4-th argument
    specifying whether to return <false> or mishap when a file cannot be
    opened, depending on the error. (This change means that -readable-
    is now just a closure of -sysopen-.) See REF *SYSOPEN.

May 24 (Aaron Sloman)
    --- HELP * X created, to provide information on getting started
    with the Poplog X11 interface (if provided).

    --- HELP * LIBRARIES and REF * LIBRARY updated

May 23 (Aaron Sloman)
    --- Added autoloadable procedure CHECK_STRING. See REF * STRINGS
    --- Added autoloadable LIB FI_CHECK, like * CHECKINTEGER but
        returns the integer if OK and does not check its second and
        third arguments.

    --- Modified LIB * POPXLIB to include an extension to popincludelist

May 20 (Aaron Sloman)
    --- Altered LIB BUILDINDEX to cope with define forms that have no
        space between "define" and ":", e.g. things like the following
        in Prolog source files - define:predicate true/0;
    --- Slightly speeded up and rationalised * POPINDEX

May 14 (Aaron Sloman)
    --- Updated DOC * SYSSPEC (system overview)

    --- (UNIX ONLY)
        An additional option for the VED "dired" facility has been added
            <ENTER> dired -load
        will compile the file specified by the current line in the
        VED buffer. It is sensitive to the file extension.

May 11 (Aaron Sloman)
    Extended REF * POPCOMPILE with a section on different compilation

May 4 (John Williams)
    New procedure -property_size- added. It returns the table size
    of a property (NOT the number of entries). See REF * PROPERTY_SIZE.

    Bug in LIB * DATAFILE fixed: it now successfully copes with empty

Apr 30 (John Williams)
    New procedure -is_subsystem_loaded- added. It tests whether a given
    language subsystem has been loaded. See HELP * IS_SUBSYSTEM_LOADED.

Apr 26 (John Williams)
    The value that the PWM assigns to the environment variable $TERM has
    been changed from "pwm" to "pwmsun".

Apr 25 (Andreas Schoter)
    Minor enhancements to LIB VEDEMACS: the following key sequences have
    been implemented:
        ^X 4 b
        ^X o
        ^X 0

Apr 16 (Aaron Sloman) (UNIX only)
    Extensions to VED DIRED facility (See HELP * DIRED).

    In the commands
        "<ENTER> dired -mv <name>" "<ENTER> dired -cp <name>"
    if <name> is the name of a directory, then the file named on the
    current VED line is moved or copied to the named directory.
    (I.e. the behaviour is analogous to that of "mv" or "cp" in Unix)
    (Also shows only the file name+extension when checking)

    Two new commands
        <ENTER> dired -mvd <new name>
        <ENTER> dired -cpd <new name>
    These rename or copy the file to the new name but in the same
    directory as the original. Hence it is not necessary to type the
    full pathname in the command.

Apr 3 (Aaron Sloman)
    Bug in ved_sendmr (UNIX) fixed. It used not to increment
    -vedchanged- even if -vedinsert_From- was true. Now does.

Apr 2 (John Williams)
    New -for- keyword -in_string- added, for iterating over strings.

Mar 30 (John Williams)
    Unix POPLOG only.
    New procedures -sys_search_unix_path- and -run_unix_program- added
    (for locating and executing Unix programs from within POPLOG). See

Mar 23 (Aaron Sloman)
    DOC * VEDMANUAL completely updated and reformatted to conform to
    online conventions. (Should be moved to a REF file?)

    HELP * EQUAL re-written completely.

    Added HELP * BUGFORM for use in reporting bugs, by UK academics who
    obtain Poplog direct from Sussex University.

Mar 21 (Aaron Sloman)
    HELP * MARK, * VEDKEYS  updated
    TEACH * GC, TEACH * STACK improved

    LIB *NEWPSYS extended with IMPLIES and NOT_EXISTS conditions
    and POP11 type actions. HELP * NEWPSYS updated

Mar 20 (Aaron Sloman)
    Unix POPLOG Only
    A collection of utilities is provided for reading and sending Net
    News from within VED. These have been used at Sussex University for
    some time and a few other places. However, they are offered on an
    "as is" basis and will not necessarily be supported, though reports
    on faults may receive action.

    For reading news: LIB * VED_NET, LIB * VED_GN, HELP * VED_NET.

    For posting news, or preparing followups to news items, or
        cancelling a news item.
        (The library will need editing for some sites.)

Mar 20 (Aaron Sloman)
    Updated HELP * VEDEMACS

    Installed HELP * VEDATARI and HELP * VEDATARIKEYS, for Atari ST
    using UniTerm terminal emulator.

    Updated HELP * VED (overview of online documentation about VED)

    HELP * DLOCAL extended to explain problems with initialised
    variables in dlocal expressions.

Mar 19 (Aaron Sloman)
    LIB * SHOWCODE extended to include new VM procedures:

    TEACH * STACK tidied up and improved.

Mar 11 (Robert Smith and James Goodlet)
    --- (UNIX ONLY)
    Corrected bug in ved read routine - lines are no longer broken at
    column 512.  Also, ved file read speed increased by approximately
    30%.  Note that devices to be passed to -vedreadin- should be
    preferably opened mode <true>, i.e. disk block I/O, rather than
    the previous "line".

Mar 9 (Aaron Sloman)
    --- A minor bug in the procedure -pretty- invoked by ==>, which
    caused long lines to be printed with excessive refreshing in VED,
    has been fixed.

Mar 9 (John Williams)
    --- The online copies of the Installation, Administrator's, and User
    Guides (DOC PIG, PAG and PUG)  have been removed. From now on,  they
    will only be supplied in hard copy format.

Mar 9 (John Gibson)
    --- (Sun-2/3 POPLOG Only) The Sun-2 and Sun-3 systems are now (by
    default) linked with the version of the C maths library 'libm.a' in
    /usr/lib/fswitch. This means that math functions doing
    floating-point operations will use run-time-switched routines that
    automatically test for and use any floating-point hardware support
    (FPA, MC68881, Sky) available on the host machine (internal POPLOG
    floating-point operations always use these switched routines). (Cf
    the C compiler '-fswitch' option.)

    --- (Sun-4/SPARCstation POPLOG Only) A serious problem that could
    cause the whole machine to crash while running external procedures
    inside POPLOG has been overcome (this was associated with programs
    that called -malloc- to get dynamic memory for use with
    floating-point operations).

Mar 5 (John Gibson)
    --- Version 13.71 has a new facility for creating 'fixed-address'
    data structures, that is, structures whose memory locations are
    guaranteed to remain unchanged by garbage collection (this facility
    solves one of the principal problems associated with using POPLOG
    data structures inside external procedures). There are 4 new
    procedures, viz


    See 'Fixed-Address POPLOG Structures for External Use' in

    --- There are number of associated changes in the store-allocation
    mechanisms of POPLOG, which may result in slightly different
    patterns of memory use in existing programs. In particular, the
    garbage collection message output when -popgctrace- is true has been
    revised and extended. See REF *POPGCTRACE.

Feb 23 (John Williams)
    --- The directory $poplocalauto is now included in $popcomppath.

Feb 20 (John Williams)
    --- New procedure -class_fast_access- added. See REF * KEYS
    for details.

Feb 9 (John Williams)
    --- (UNIX ONLY)
    New library LIB * ITIMER_VIRTUAL added. This defines a POP11
    interface to the virtual interval timer provided by the C library
    function SETITIMER(2). See HELP * ITIMER_VIRTUAL for details.

Feb 8 (Robert Duncan)
    --- VEDSTARTWINDOW has been made an active variable. Its value is
    now tied to that of VEDSCREENLENGTH: whenever the screen length
    changes, VEDSTARTWINDOW is adjusted automatically in proportion.

Feb 7 (John Williams)
    --- The following obsolete HELP files have been deleted, because the
    identifiers they described have been renamed:


    See REF * OBSOLETE for a complete list of all identifiers that
    have been superceded.

    Also, the library OLDVEDSUN (and associated help file) have been
    removed (as previously advertised).

Feb 6 (John Williams)
    --- (UNIX ONLY)
    The procedure -syssettimer- now uses the Setitimer(2) system call,
    rather than 'alarm', which makes the timer more accurate (e.g. on a
    Sun 3, the resolution is now 1/50th second, rather than 1 second).

Jan 19 (Aaron Sloman)
    --- ved_tidy (and related procedures) fixed to deal more sensibly
    with "%". E.g. "%]" "%}" and "%)" now work like the corresponding
    closing brackets de-indenting to the right level if starting a line.

    No longer gets confused by `'`.

Jan 14 (Aaron Sloman and Robert Duncan)
    Various changes to VED:
        NOTE: the first of these changes was later undone (Oct 1990)
        owing to complaints from existing users.

    [[--- There is a new default key map as described in HELP * VEDKEYS.
    The new map is meant to be more rational than the old (which was
    derived from the Visual 200 keyboard layout) and shares some key
    bindings with the EMACS editor.
    Function key bindings installed by particular terminal libraries are
    not affected by this change.]]

    --- The method of selecting a terminal type on startup has been
    modified, as described in REF * VEDTERMINALS. It is hoped that most
    users will see no difference: a terminal library loaded explicitly
    in a "vedinit.p" file still takes precedence. The biggest change is
    for Unix users, where *VEDTERMINALSELECT is now null by default: VED
    will consult the TERM environment variable to find the terminal type
    rather than using the answer-back mechanism. Also, VED no longer
    assumes a Visual 200 terminal as a default case, but will prompt the
    user for the terminal name instead.

    --- A new procedure *VEDUSETERM simplifies the process of
    configuring VED for a particular terminal type: the call


    tries to set up VED for the terminal type TERM, and returns a flag
    indicating whether the set-up was successful. VEDUSETERM may load a
    terminal library, or on Unix systems, consult the TERMCAP database.
    VEDUSETERM can be called more than once if (for example) the
    terminal is initially set up incorrectly.

    --- Most terminal libraries have been revised to conform to a
    standard format: instead of containing in-line code to configure
    VED, each library defines a procedure to do this instead. This will
    be called automatically if the library is loaded from a "vedinit.p"
    file, but not otherwise. This may impact on users who have made
    saved images containing terminal libraries: the fix for this is to
    insert a call to the procedure at the point at which the library is
    loaded. For more details see HELP * TERMINAL. Terminal libraries
    have been moved to a subdirectory "term" of POPVEDLIB and are all

    --- New terminal libraries include:

        LIB * VEDXTERM          X windows terminal emulator
        LIB * VEDDXTERM         DEC windows terminal emulator
        LIB * VEDVT220          VT220 and similar
        LIB * VEDCMDTOOL        SunView command tool window
        LIB * VEDANSI           basic ANSI-compatible terminal

    LIB * VEDSUN now works both on the console and in a shelltool window
    but LIB * VEDWINSUN has been kept for compatibility.

    --- A new procedure *VEDSCREENCONTROL is now used to output all
    terminal control sequences to the terminal. This replaces the old
    *VEDSCREENESCAPE. The difference is that the new procedure no longer
    automatically adds the VEDESCAPE character to each sequence it
    prints. The corollary of this is that all the screen control
    VVEDSCREENCLEAR etc. now have the leading escape character included
    as part of their values. Users who have written their own terminal
    libraries or have made use of these variables in some other way
    should check their code for consistency with the new mechanism. In
    most cases it will suffice to replace calls of VEDSCREENESCAPE with
    calls of VEDSCREENCONTROL, but explicit assignments to any screen
    control variables will typically have to be changed.

    --- A new syntax word *VEDSET simplifies the definition of new VED
    key bindings (providing syntactic sugar for calls to *VEDSETKEY)
    and for initialising screen-control variables in terminal libraries.
    See HELP * VEDSET for details, or look at LIB * VEDVT220KEYS for an
    example of its use.

    --- Other new VED procedures (documented in REF * VEDPROCS):

            changes the case of the current word;
            move to start of previous/next sentence;
            move to start of previous/next paragraph;
            relocate the current line at the top of the window
            (companion to -vedmidwindow-);
        *VEDRESIZE(lines, columns)
            resizes the display after the window size has changed.
            (Replaces vedwin_adjust)

Jan 8 (John Williams)
    --- The VED <ENTER> ?? facility has been substantially revised and
    improved. It now extracts information from the REF files, instead
    of having its own separate database. It is also now possible for
    users to have their own documentation accessible by -ved_??-. More
    documentation to follow. (HELP * MKREFINDEX added later.)

    --- The REF command has been extended so that it is now possible
    to access the REF documentation for any procedure by giving the
    command REF <procedure name>. E.g. try REF * MEMBER

Jan 7 (John Gibson)
    --- Version 13.7. This has a major change to the internal
    representation of data structure pointers, which now point to the
    third word of objects in memory rather than the first (i.e. they
    point to the data following the key field). The purpose of this
    change is to make POPLOG pointers directly usable by external
    procedures, since (as explained in `Format of POPLOG Data
    Structures' in REF *DATA), the data starting at the third word is
    suitable for processing by the latter.
        Aside from this beneficial aspect, the change should have no
    other effect on user programs. (With the possible exception of
    programs that abuse 'fast' procedures -- an associated change is
    that the value fields of identifiers and the cont fields of
    references are now in different places, which means for example that
    -fast_idval- will no longer work on references, nor -fast_cont- on
    identifiers, etc.)

Jan 3 (John Williams)
    --- New procedure -sys_read_lines- installed.

Jan 3 (Aaron Sloman)
    --- Two VED procedures are newly exported for use in immediate mode
        (see HELP * IM)
    VED_END_IM terminates input in immediate mode (since it is not
        possible to type in the end of file character directly)
    VED_SWITCHMODE_IM which switches immediate mode between allowing
        <RETURN> to hand the current line to the compiler and requiring
        ved_lmr to be invoked.

    --- VEDLOADLINE now maps onto the key sequence <ESC> d, by default.

Dec 28 (Aaron Sloman and John Gibson)
    --- To enable users to suppress the facility that allows the use of
    special characters at the beginning of a line to spawn a sub-process
    the procedure CHARIN has been redefined so that it will call SYSOBEY
    only if the character at the beginning of a line is in the user
    definable list pop_charin_escapes, which, in VMS POPLOG defaults to
    [`$`] and on Unix to [ `%` `$` `!`]. The procedure VEDSETPOP has
    been redefined to set pop_charin_escapes to [], so that the
    mechanism will no longer be triggered accidentally in VED immediate
    mode (See HELP *IM) or in processes that compile from the VED
    buffer. (VED allows an alternative mechanism for spawning
    sub-processes from the command line, as described in REF * VEDCOMMS)

Dec 28 (Aaron Sloman)
    --- A new VED tailoring facility. The user-definable procedure
    VEDINITIALISE(item) is now invoked after creation of a new VED file
    or renaming of an existing one, to enable user-defined actions to
    be performed after the file has been read in from disk or an empty
    buffer created. This is not possible with VEDVEDDEFAULTS or
    VEDFILETYPES, both of which are accessed before the file is read in,
    in order to set up variables that control the reading. For details
    See REF * vedinitialise. HELP * INITIAL - section on Tailoring VED

    --- Existing VED initialisation procedures have been altered
    slightly. Previously the procedure -vedsetfiletypes- used to make
    -compile- the default value of -popcompiler-, so that it had to be
    over-ridden explicitly in different versions of -vedfiletypes-
    called in different contexts. This initialisation is now done
    outside -vedsetfiletypes- whenever a new file is created.

    The default value of -vedfiletypes- has changed slightly.

        1. It has a new default condition making -vednotabs- true and
        -vedbreak- true
        2. Defaults for Lisp and ML have been added to -vedfiletypes-
        and to -vednonbreakfiles-

Dec 28 (Aaron Sloman)
    --- Lexical scoping and efficiency. Some of our previous
    documentation did not give warnings about ways in which use of
    lexical scoping can generate unwanted garbage collection overhead.
    This is now explained in HELP * LVARS. HELP * LEXICAL and
    HELP * EFFICIENCY have also been updated.

Dec 28 (Aaron Sloman)
    --- (Unix Poplog Only).
    The VED facility for interaction with the C-shell via a VED buffer
    previously would not work if the user's .cshrc file defined a
    changeable prompt string. This has now been fixed by using a
    constant, but user assignable prompt string, as described in

Dec 27 (Aaron Sloman)
    --- The Pop-11 itemiser has been altered so that it is now possible
    to represent control characters in strings or character constants
    without using upper case. E.g. `\^a`, `\^b` etc are equivalent to
    `\^A`, `\^B` etc. and similarly in strings.
    HELP * ASCII, HELP * STRINGS, and REF * ITEMISE updated.

    --- TEACH files concerned with recursion considerably improved, and

    --- The pretty-print arrow (==>) has been modified so as to ensure
    that poplinemax is set locally to vedscreenwidth - 3. This prevents
    unwelcome horizontal scrolling on long lines.

    --- An improved version of LIB * PRODSYS, the demonstration
    production system interpreter has been installed.
        See TEACH * PRODSYS for details

    --- A considerably more sophisticated (and efficient) forward
    chaining production system interpreter has been added, LIB
    NEWPSYS, documented in HELP * NEWPSYS, with an extended example
    of a problem-solver in TEACH * PSYSRIVER

Dec 19 (John Williams)
    --- The library procedure -vedputchar- (an obsolete synonym for
    -vedinput-) has been WITHDRAWN.

Dec 14 (John Williams)
    been deleted and replaced by the following REF files:
        REF * VEDCOMMS
        REF * VEDPROCS
        REF * VEDVARS

Dec 8th (Aaron Sloman)
    --- LIB * VEDBLOCKS extended (see HELP * VEDBLOCKS). The procedures
    * VEDOVERLAYBLOCKS and VED_YOTB can be used for overlaying a text
    block on some text in the VED buffer in such a way that spaces in
    the overlaid block are "transparent".

    ---- LIB * VEDBLOCKREPEATER takes in a vector of strings such as
    might be produced by * VEDCUTBLOCK and returns a character repeater.

Nov 24 (John Williams)
    --- New VED procedure -vedtableft- added, to complement
    -vedtabright-.  See REF * VEDPROCS/vedtableft

Nov 14 (James Goodlet)
    --- Autoloadable macro -include- and associated help file added.
        This provides a "uses"/"lib" like syntax and mechanism for
        #_INCLUDEing files.  See HELP *INCLUDE.

Nov 14 (John Gibson)
    --- The Unix version of -systranslate- now has an updater (the VMS
    version already had one). See REF *SYSUTIL.

Nov  12 (Aaron Sloman)
    --- The VED_TIDY procedure for indenting programs has been
    considerably improved and extended.

    (a) There are two new user-modifiable global lists controlling its

        (1) A list giving words that "quote" everything following
        them upto the occurrence of a closing bracket. So the
        intervening words do not affect indentation. A list of
        possible closers can be associated with each such word.

            = [vedset [endvedset] lib [^newline ;]]

       (2) A list of words each specifying that N additional items are
       to be read in and regarded as quoted, and therefore ignored. I.e.
       they have no effect on changing indentation. N is in a list, for
       compatibility with ved_tidy_skip_pairs

            = [" [2] nonmac [1] nonop [1] nonsyntax [1] uses [1]]

    (b) ved_tidy no longer corrupts strings going over more than
    one line (e.g. with pop_longstrings true, or `\` at end of line).

    (c) The closing vector bracket or list bracket now lines up with its
    opener, if on a line by itself.

    (d) Indentation after vars, dlocal, lconstant, etc. is incremented
    by vedindentstep, not by 5 as previously.

    (e) "return" has been removed from vedbackers. "=>" and "==>" have
    been added to vedforwarders.

    (f) Labels are no longer de-indented to column 1. Instead they
    are de-indented to the same level as the beginning of the current
    procedure definition.

    (g) Some minor bugs have been fixed

Nov  11 (Aaron Sloman)
    --- LIB VEDARGINT added, to complement LIB VEDARGNUM. The former,
    but not the latter, produces an error if a non-integer is produced.
    Several VED utilities that could have produced bizarre errors if
    given non-integral values, have been changed to use VEDARGINT,
    namely ved_bl ved_br ved_dc ved_dl ved_dw ved_mc ved_ml ved_mw.

    --- Pop-11 TEACH * LISTS and TEACH *SETS considerably revised and
    improved. TEACH SETS now includes suggestions on how to specify
    a procedure as a step towards designing and implementing it.

Nov  5 (Aaron Sloman)
    --- Changes to facilities described in HELP * PIPEUTILS (Unix Only)
        The command ved_rsh was not available on non-Bsd type Unix
    systems, e.g. HPUX, so an equivalent command ved_remsh has been
    provided, for running remote commands from VED. The ved_rved
    command has been generalised to work on non-BSD systems providing
    'remsh' but not 'rsh'. HELP * PIPEUTILS has been updated.

Oct  9 (John Gibson)
    --- Changes to the process mechanism:
        New procedures -suspend_chain- and -ksuspend_chain- allow
    control to be regained after (k)suspending a process, by chaining a
    procedure out of the call of -runproc- which ran the process.
        The procedure -consprocto- has been replaced by a better
    procedure -consproc_to- (although the old one remains in the
    autoloadable library).
        A process can now be constructed as either 'volatile' or
        See REF *PROCESS for full details.

Sep 14 (Gareth Palmer)
    --- The naming scheme for PWM identifiers has been rationalised,
    resulting in a large number of changes.  Compatibility libraries
    exist, so old programs will still work.  See HELP * PWMNAMES for

Sep 12 (John Gibson)
    --- (VMS Only) The procedure -systranslate- which translates logical
    names has been upgraded to use the current standard VMS system
    routines for this purpose (it was previously using old routines
    which became obsolete in Version 4 of VMS). As a consequence,
    logical names with the "concealed" attribute are now dealt with
    correctly, i.e. not translated by default. (Also, names with
    the "terminal" attribute will not now have an underscore prefixed to
    the translation).

Sep  7 (John Gibson)
    --- (Sun4 Only) Under certain (fairly rare) circumstances, the
    run-time code generator produced code for a procedure that failed to
    initialise certain lvars correctly, causing the garbage collector to
    crash (it happened only with procedures that had some non-locally
    used lvars, but less than 2 ordinary lvars). The bug is now cured.

Sep  4 (John Gibson)
    ---  The problem with system crashes caused by assigning too large a
    value to -pop_callstack_lim- has been cured. A mishap now results if
    the operating system's limit on call stack memory is about to be
    reached; this makes it safe to assign any value to
    -pop_callstack_lim-. See REF *POP_CALLSTACK_LIM.

Aug 24 (Roger Evans)
    --- A bug in the 'destroy actions' mechanism (see REF *PROPS) has
        been fixed. Formerly the existence of an independent destroy
        action for an object was not in itself sufficient to retain
        entries for the object in temporary properties when the object
        became otherwise garbage. Now it is.

Aug 13 (Aaron Sloman)
    --- HELP PWMCOLOUR removed. It was made obsolete by

    --- (UNIX ONLY) Extended LIB * VED_SEND as follows:
    If the command <ENTER> sendmr is given with no arguments then, in
    order to preserve Unix mail file format (e.g. for ved_mcm), any lines
    in the message that start with 'From ' will have '>' inserted at the
    beginning. This can be suppressed by assigning -false- to the
    new user-assignable variable -vedindent_From- (default is true).
     (see HELP * SEND)

Aug 13 (Aaron Sloman) (UNIX ONLY)
    --- A number of procedures associated with VED's directory browsing
    tool -ved_dired- (see (HELP * DIRED) have been modified to allow the
    new directory information to be added to the current dired output
    file when -ved_dired- is invoked.

    -vedpipein- (see HELP * PIPEUTILS) now allows its third argument,
    the -file- to be FALSE, in which case the incoming information is
    read into the current VED file after the current line.

    -diredpipein- now uses a new global variable -dired_current_file-
    which, if not false, will cause the input to be added to the current
    VED buffer instead of a new file, except that in certain special
    cases (e.g. qdired) it will start a new VED buffer to receive the
    input. (see LIB * DIREDPIPEIN)

    -ved_dired- has been altered so that if a dired command to produce
    new directory information is given in a file that was originally
    produced by ved_dired, then instead of putting the new information
    in a separate temporary file, it splices it into the current file.
    This default is controlled by the new global variable
    -dired_current_file- and can be suppressed by doing the following in
    your vedinit.p

        vars dired_current_file = false;

Aug 8 (John Gibson)
    --- The procedure -sysfileok- has been enhanced to provide an
    optional parse of filenames into component fields after doing any
    translation. A convenient interface to this facility is
    provided by the new procedure -sys_fname- and others built on top of
    it for extracting individual filename fields (e.g. -sys_fname_path-,
    -sys_fname_name- etc). See REF *SYSUTIL.
        (Note that these new procedures make obsolete the old filename
    parsing routines such as -sysfileparse-, -sysfilename-, etc.)

    The procedure -sysisprogfile- has now been made an autoloadable
    library file defined in terms of -sys_fname_extn-.
    SHOWLIB * SYSISPROGFILE for details.

    --- (UNIX only) Poplog will henceforth try to standardise on having
    all (non-empty) strings representing directory pathnames be
    recognizable as such by ending with / . For example, this is now
    true of -current_directory-, all members of -popliblist- and
    -popuseslist-, and the result of the new procedure -sys_fname_path-
    for getting the path part of a filename.
        (Also, the operator dir_>< given an empty string as second
    argument will now append / to the first if it's non-empty and
    doesn't end with one. Thus for path /= nullstring, the result of

            path dir_>< nullstring

    will always have a trailing / )

    --- (VMS Only) The handling of arguments to a POPLOG process from
    the  DCL foreign command line has now been further enhanced (see
    entry dated June 24, in HELP * NEWS.V13_6, for previous changes).
        Essentially, POPLOG now behaves like a Unix shell, in that it
    automatically expands filename arguments containing wildcard
    characters (e.g. '*.p' will be replaced by all matching filenames).
    In addition, a filename argument with an @ character prepended is
    replaced by further arguments read from the specified file; this
    surmounts the problem of the DCL foreign command line being limited
    to 255 characters, and enables larger numbers of arguments to be
        See REF *POPARGLIST0 for full details. An associated change is
    that the procedure -sys_file_match- no longer necessarily returns
    fully-qualified filenames, but instead produces names containing
    only those parts which appeared in the given file specification
    (e.g. filenames matched by '*.p' will be of the form 'foo.p',
    'baz.p', etc, with no directory or version.) See REF *SYSUTIL.

        (Note that the rationale behind these changes is to allow POPLOG
    programs to be written in a portable way. A given program can now
    simply assume that arguments are available Unix-style.)

Jul 31 (John Gibson)
    --- The procedure -substring- now returns the standard empty string
    -nullstring- when the result is empty.

Jul 20 (John Gibson)
    --- Certain uses of -pop_after_restore- (called after restoring a
    saved image) could lead to a system crash (because the system was
    calling it in an inappropriate place). This has now been fixed.

    --- (Unix POPLOG only). The system now behaves more rationally when
    EOF (^D or ^Z) is typed to a terminal prompt; it now always puts out
    a newline after this (and as a consequence, no longer needs to put
    out a special newline when the system exits, meaning that there will
    be no surplus newline output when exiting in any way other than by
    EOF as was previously the case).

Jul 12 (James Goodlet)
    --- ved_w1 now restores cursor to status line if that is where it
    was, and prevents a bug that caused VED to get the value of
    vvedbuffersize wrong, so that it could not access most of the file.

Jul 9 (Aaron Sloman)
    --- LIB * CIFER and HELP * CIFER removed. Long since redundant.
        (See HELP * VEDCIFER).

    --- TEACH *EVANS referred to non-existent TEACH *PICDEM. The latter
        has now been installed, using LIB * PICDEM (a simple program
        illustrating some problems of describing and recognising 2-D

Jun 30 (Aaron Sloman)
    --- Made ved_rved use current vedindentstep instead of the default
        for ved_rsh. (UNIX ONLY). SEE HELP * PIPEUTILS

Jun 30 (John Gibson)
    --- Fast versions of -apply- and -chain- added, -fast_apply-
    and -fast_chain-. See REF * FASTPROCS.

Jun 27 (John Gibson)
    --- Version 13.66 has an improved version of -sys_lock_system-
    allowing much greater control over which structures are kept
    writable and which are made nonwriteable. Associated with this are
    two new operators -writeable- and -nonwriteable-, a new procedure
    -sys_writeable_prop-, and a new variable -pop_record_writeable-. See
    'Creating Layered Systems' in REF * SYSTEM.
        A further associated change is that -conskey- (and -recordclass-
    and -vectorclass-) can now take optional "writeable" and
    "nonwriteable" attributes for a new class key. See REF * KEYS.

    --- The -device_full_name- of a device now dereferences symbolic
    links, i.e. it is always the name of the underlying file (rather
    than the name of any symbolic link that was used to open it).

    --- Poplog now checks to see if it is 'backgrounded' before
    attempting to alter terminal modes. If it is, it stops, by sending
    itself the TTIN signal (se REF *SIGNALS), as it would if it
    attempted to read while backgrounded. The previous behaviour was
    causing serious problems with some operating systems.
    --- The default value for the TTOU signal handler is now <true>,
    that is, the Unix default action (which is to stop immediately). The
    previous value (tidy screen and stop) proved unworkable for TTOU.

Jun  9 (John Gibson)
    --- Version 13.65 has a number of changes relating to control
    mechanisms in the POP11 and Poplog VM compilers:

        * A new variable, -pop_debugging-, is intended to serve as a
    general indication as to whether programs are being compiled in
    debugging or 'real-use' mode. It also combines the roles previously
    played by the variables -popconstants- and -pop_optimise- (which for
    upward compatibility are now autoloadable active variables).
        Permanent constants were previously 'turned off' by assigning
    <false> to -popconstants-; this now corresponds to -pop_debugging-
    having the value <true>. Since the default value of -pop_debugging-
    is "undef", constants are (as before) on by default.
        Setting -pop_optimise- true previously caused the VM to do extra
    optimisation; this now happens when -pop_debugging- is <false> (i.e.
    extra optimisation is also off by default).
        (Note that -pop_debugging- is NOT local to any system
    procedures, so assigning to it is guaranteed to change its value
        See REF * IDENT and REF * VMCODE.

        * The POP11 compiler variables -popdefineconstant-,
    -popdefineprocedure-, -popconstruct- and -pop_args_warning- have all
    been replaced by flag bits in a new variable -pop_pop11_flags-
    (analogous to -pop_vm_flags- for the VM compiler). These are defined
    and described in


    and REF * POPCOMPILE. (Once again, the old variables remain as
    autoloadable active variables.)

        * There are also a number of new VM compiler flags in
    -pop_vm_flags-. These are mainly concerned with disabling the
    inclusion of run-time checking code (although these are only
    effective when -pop_debugging- is false). See


    and REF * VMCODE.

        * To enable the flags in both -pop_pop11_flags- and
    -pop_vm_flags- to be manipulated by POP11 program code in a
    relatively painless and modular fashion, both variables are now
    localised to every compilation stream, procedure and lexical block,
    and there is a new (autoloadable) syntax construct -compile_mode-,
    which permits the flag bits in either variable to be set or cleared
    (either singly or in groups) on the basis of keyword arguments.
        Thus for example, a POP11 program file can now make -define-
    default to 'constant procedure' for that file only by including the

        compile_mode:pop11 +defcon +defpdr;

    at the beginning. See SHOWLIB COMPILE_MODE.

    -- All .ph files in $usepop/pop/lib/include are now set up so that
    when used with #_INCLUDE they declare only 'lconstant' macros (but
    reverting to 'global constant' as before if directly compiled).
        (This is achieved by the autoloadable macro INCLUDE_constant,
    which produces either 'lconstant' or 'global constant' depending on
    whether the file is being #_INCLUDEd or not; to determine this it
    tests the variable -pop_#_include_stack-, see REF * PROGLIST.)

Jun  3 (Aaron Sloman) UNIX POPLOG ONLY
    --- ved_Reply (for replying to Unix mail) altered to handle more
    cases correctly. Also no longer interferes with VED search state
    variables. (See HELP * VED_REPLY, SHOWLIB * VED_REPLY)

    --- ved_mdir (for building index to Unix mail file) altered to
    include "To:" line. See HELP * VED_MDIR

Jun  1 (John Williams)
    --- SUN POPLOG ONLY: The directory '$popsunlib' is now automatically
    included in -popliblist- (and -popuseslist-). It is no longer
    necessary to do this in an 'init.p' file. If you use a Sun as a
    terminal, but actually run Poplog on a different processor, you may
    still have to add '$popsunlib' explicitly.

May 26 (John Gibson)
    --- Previously, properties could only be temporary on the argument
    item (i.e. entries garbaged for garbage argument); they can now be
    temporary on the value item, or on either the argument or the value.
    They can also be 'unconditionally' temporary, i.e. cleared at every
    garbage collection. See -newproperty- and -newanyproperty- in
    REF * PROPS.

May 21 (Aaron Sloman)
    --- Previously -vedprocess- changed -pop_after_restore- locally by
    assigning -vedrestorewindows- to it. Instead it now does:

        vedrestorewindows <> pop_after_restore -> pop_after_restore;

    so that pre-existing procedures in -pop_after_restore- remain.
    See REF * SYSTEM/pop_after_restore


    VED changed to ensure that environment variables are always expanded
    before -vedcurrent- and -vedpathname- are set up. This was
    previously done in some cases but not all.

May 11 (Aaron Sloman)
    --- ved_cut sometimes gave an error when one of the stacked
    positions was to the right of text on the line. This has been fixed.

May 10 (John Gibson)
    --- (Version 13.6403) In order to make the semantics of lexical
    blocks outside of procedures compatible with their behaviour inside
    procedures, the Poplog VM procedure -sysLBLOCK- now requires an
    argument specifying whether the lblock is 'executing' or
    'non-executing' (previously it took no arguments, so this is a
    non-upward compatible change).
        A related change is that testing for -popexecute- false is no
    longer a reliable way of determining whether code is being planted
    inside a procedure (since it will be false inside a non-executing
    lblock, enclosed in a procedure or not). As a replacement for this
    test there is a new variable, -pop_vm_compiling_list-, which holds a
    list of all procedures currently being compiled, and can therefore
    be tested == or /== to nil.
        (Note however that -popexecute- true is still the correct test
    for being at execute level, i.e. whether -sysEXECUTE- can be called
    or not).
        See REF *VMCODE for full details. Because of this change, the
    following POP11 code outside a procedure

        lvars i;
        for i to 10 do
                lvars j = i;
                procedure(); j endprocedure

    will now create a new variable -j- (and thus a different lexical
    closure) each time round the loop (i.e. as it would inside a

May 9 (Aaron Sloman)
    --- In certain situations (including bugs in user programs)
    -vedline- could end up negative or == 0, leading to an error.
    Additional tests for this have been added, and -vedline- set to 1 in
    such cases.

May  2 (James Goodlet)
    --- (BERKELEY UNIX only) -ved_man- now compresses adjacent blank
    lines into single ones.

Apr 29 (Aaron Sloman)
    LIB V55 (VED conversion for Visual 55) altered to use scroll region
        facility in the terminal.

    LIB OLDLISP would not compile as it attempted to load a non-existent
        library. Now fixed. (See HELP * OLDLISP)

Apr 27 (John Gibson)
    --- -recordclass- and -vectorclass- are now syntax words rather than
    macros, and also now accept "lconstant", "lvars", etc as declaration
    keywords for the key and associated key-procedure identifiers.

Apr 22 (Aaron Sloman)
    --- VED_S (interactive substitute command) has been extended to
    allow the response "g" meaning: do the search and substitution
    globally, without further interaction. This is useful if you wish
    to check that you have given the right pattern before allowing the
    global replacement. See HELP * VEDSEARCH

Apr 15 (Roger Evans)
    --- A collection of HELP files has been provided giving information
        supplied by the POPLOG USER GROUP (PLUG). They are

    HELP *RESOURCES     - file cross-referencing useful info sources
    HELP *PLUG          - The Poplog and Pop Languages User Group
    HELP *POPFORUM      - E-mail discussion group
    HELP *POPREFS       - Books and other written material about Pop
    HELP *POPCONTACTS   - Contact addresses for Pop issues and products
    HELP *POPSYSTEMS    - Pop-related systems and products

Apr 15 (Aaron Sloman
    --- Spurious trailing spaces in VED. VED commands that write files
        without calling -vedtrimline- can produce files with spurious
        trailing spaces. A large subset of such cases has been dealt
        with by making -vedswitchstatus- (which is called by -vedenter-)
        first call -vedtrimline-. Similarly -vedsaveglobals- also
        calls -vedtrimline-.

    --- Printing in error messages in VED is now controlled by setting
        pop_pr_level = 20, instead of using a special purpose print
        routine. This also fixes a bug: the previous version could not
        cope with errors involving pairs.

    --- Added "fast_repeat" to -vedopeners- and "endfast_repeat" to

Apr 12 (John Gibson)
    --- The ':pdr_valof' option to -define- is now replaced by

            define <name> = <expression> enddefine


        define constant procedure foo = identfn(%1,2%) enddefine;

    etc. (Note that :pdr_valof actually allowed a <statement sequence>
    as the initialising code; this was a mistake, and the new syntax
    properly permits only a single <expression>.)

Apr 11 (Ian Rogers)
    --- Added new facilities to enable the user to extend the iteration
    mechanism. See HELP * FOR_FORM
    Slightly optimised numeric -for- iteration and -repeat- iteration.

Apr 11 (John Williams)
    --- Unix only: some new commands for printing files from VED have
    been defined. These are -ved_lp- (uses HP-UX 'lp') and -ved_lpr-
    (uses Berkeley Unix 'lpr'). See HELP * LP and HELP * LPR.

Apr 10 (Aaron Sloman)
    --- The index building mechanisms used by ved_sourcefile have been
    cleaned up and made able to cope with some of the newer syntax
    forms. A new library LIB * BUILDINDEX is used by the index building
    scripts $popcom/mkind (Unix) and $popcom/ (VMS)

Apr 9 (Aaron Sloman)
    --- Interrupting TRACE-ed procedures run from VED used to produce
    a lot of unwind trace printing. This has now been fixed.

    --- Some documentation improved, clarified, corrected.
    Information about lexical scoping clarified, with examples, and
    discussion of pros and cons of lexical scoping.

    Ref files and ved_?? files were previously misleading as regards
            [...],   {...}   ^,    ^^,
    So REF * POPSYNTAX, REF * SYNTAX and ved_?? files corrected

Apr 7 (John Williams)
    --- LIB * VED_NOUL has been re-written and improved.

Apr 6 (Robert Duncan)
    --- A new constant -sys_machine_type- has been introduced to
    complement the existing -sys_os_type- and -sys_processor_type-; the
    new constant is a list containing details of the host machine.

    --- The existing -sys_os_type- has been revised to include
    proprietary software names (e.g. SunOS, HP-UX etc.) in more cases
    than previously. [NB: Users who have programs which test the value
    of -sys_os_type- should check that the tests are still valid.]

    --- This new information has been put to use in a revised
    LIB *SYSDEFS which defines a more comprehensive set of flags and
    version numbers for distinguishing between different host systems.

    --- A new autoloadable macro -DEFV-, analogous to the existing
    -DEF-, has been introduced to simplify tests on the version
    numbers defined by LIB *SYSDEFS.

    See HELP *SYSDEFS, REF *SYSTEM/sys_machine_type, *SYSTEM/sys_os_type

April 5 (Ian Rogers)
    --- Added -fast_prop_entry_arg-. See REF * FASTPROCS

April 4 (John Williams)
    --- The procedure -isclosure- now returns 1 if its argument is
    a "protected" closure. See HELP * CLOSURES, HELP * ISCLOSURE.

April 4 (Aaron Sloman)
    --- HELP *SYSGARBAGE erroneously stated that output caused by
    *POPGCTRACE could be re-directed via *CUCHARERR. In fact previously
    GC trace printing could not be re-directed by users. This has now
    been fixed, and the help file corrected. See REF * SYSTEM/Store

April 2 (A. Sloman)
    --- Fixed entries in ved_?? data files relating to identifiers and
    identprops. In particular added new <idprop> type corresponding to
    IDPROP argument in REF * IDENT, and added or corrected entries for
        consident, full_identprops, ident_declare, identprops,
        isassignable, isconstant, isdeclared, isdefined, isglobal,
        isident, isprotected.

    --- Fixed LIB VED_WTYPE, to cope properly with active identifiers
    and syntax operators. See REF * VEDCOMMS/ved_wtype

    --- (Unix only) LIB VED_SEND has been changed so as to use the mail
    program rather than sendmail. This means that the full range of
    facilities is available in .mailrc files. Various new control
    variables have been added. Please see the revised HELP *SEND and
    SHOWLIB * VED_SEND/History

Mar 31 (John Williams)
    --- The POP2 syntax words "lambda", "function", "enddo" and "exit"
    have been removed from the standard values of -vedopeners-, and
    -vedclosers-. They are added to these lists by the library LIB POP2.

Mar 27 (Aaron Sloman)
    --- HELP * VEDSETKEY considerably expanded and updated.

Mar 24 (John Gibson)
    --- All the 'X_key' identifiers (e.g.-pair_key-, -vector_key- etc)
    previously in the autoloadable library have been moved into the core

Mar 22 (John Williams)
    --- The VED <ENTER> MAN command has been improved, and documented.
    See HELP * MAN.  (UNIX only)

Mar 20 (Aaron Sloman)
    --- Altered incorrect ved_?? entry for -sysfileok-. It stated that
        result could be false.
    --- Added VED <ENTER> wapp <file>
        Write and append current VED buffer to file.

Mar 16 (Roger Evans)
    --- A new system variable -poparg0- now exists. This holds the
        string containing the command Poplog was started up with. Often
        this is the same as hd(poparglist0), but if rewriting occurs
        due to pop_X environment variables (UNIX only), -poparglist0-
        can get altered. In such cases, -poparg0- preserves the original
        start-up command name.

Mar 10 (Robert Smith)
    --- (Unix only) Attempting to read the interactive device (terminal
        or pipe) could result in an infinite loop if that device were no
        longer readable. This might occur, say, if running via a telnet
        connection which prematurely breaks. Poplog will now attempt to
        write all VED files and exit if such a condition occurs.

Mar 5 (Aaron Sloman)
    --- The variable ved_last_char is now available to users. It holds
    the last character read in by -vedprocesschar- or -vedgetproctable-
    (read in using -vedinascii-).

    --- (Unix only) -ved_reply- altered to insert "Re: " in subject line

    --- (Unix only) -ved_mdir- changed so as not to break long lines
    in mail directory. See HELP * VED_MDIR

Feb 28 (John Williams)
    --- The command file for building the 'flavours' saved image now
    ensures that -setpop- is assigned to -interrupt- when the image
    is restored.

Feb 24 (John Williams)
    --- New documentation file: HELP * PVED

Feb 20 (John Williams)
    --- Sun users only: LIB SUN_TTY_SIZE updated to use newer ioctl.

    --- LIB POPHOST updated to use -sys_host_name-. Also, it prints
    a warning message when loaded (to encourage system administrators
    to amend it).

Feb 18 (John Gibson)
    --- The -dlocal- statement now reads identifier names with
    -itemread- instead of -readitem-, meaning that macros can be
    expanded. The only respect in which this is non- upward-compatible
    is that making a macro identifier dlocal now requires "nonmac", e.g.

            dlocal nonmac foo;

    This change also applies to 'define dlocal ... '.

Feb 16 (John Williams)
    --- New procedure -sys_host_name- added. This returns the name of
    the machine POPLOG is running on. See REF * SYSTEM/sys_host_name

Feb 13 (John Williams)
    --- LIB * VED_SRC now adds "ved_src" to -vedgetsysfilepdr-, enabling
    cross-references of the form SRC * PROLOG.P

Feb  9 (John Williams)
    --- LIB * INSPECT now ignores colons in command input (to soothe
    users of the Lisp debugger who are used to preceding commands with a

Feb 6 (John Gibson)
    --- The procedure -pdnargs- now has an updater. See REF * PROCEDURE.

Jan 21 (Aaron Sloman)
    --- Several documentation files concerned with initialisation,
    running programs, saving and restoring images have been clarified,
    and made to refer to REF * SYSTEM instead of REF * SYSUTIL for
    information on saved images. See HELP * INITIAL, * PARAMETERS.

    --- (UNIX only) HELP * SYSPIPE gave wrong information about the
    argument to -syspipe-. This has been corrected to accord with
    REF * SYSIO.

Jan 11 (John Williams)
    --- The library directory '$poppwmlib' is now automatically
    added to -popliblist- when Poplog starts up under the PWM,
    obviating the need to do this in initialisation files.

Jan 8 (Aaron Sloman)
    --- Various commands using -vedsysfile- failed to ensure that
    vedinit.p had been called BEFORE they accessed the relevant
    search list, e.g. vedhelplist, vedteachlist, etc. This has been
    fixed, and examples in HELP * VEDSYSFILE updated.


Dec 24 (Aaron Sloman)
    --- The mechanisms previously described in HELP *BASEPROLOG have
        been withdrawn, as Poplog Prolog has been substantially
        re-implemented. See HELP * PLOGNEWS

    --- A new HELP file HELP * VED_INDEXIFY describes the facilities
        for putting headings, building tables of contents, and using
        <ENTER g to go to a section. For a tutorial introduction
        see HELP * ENTER_G.

    --- The VED "indexify" mechanism for building and re-building
        a table of contents in documentation files (HELP * VED_INDEXIFY)
        has been changed so that if used to re-build a table of contents
        it no longer deletes portions in which extra bits of text have
        been inserted.

    --- (UNIX ONLY)
        An additional option for the VED "dired" facility has been added
            <ENTER> dired -grep <string>
        will run grep to search for occurrences of the string on the
        file(s) specified by the current line in the VED buffer.
        See HELP * DIRED

Dec 13 (Aaron Sloman)
    --- (UNIX ONLY) the ved_dired library (see HELP * DIRED) has
        been modified so that the key sequence CTRL-X CTRL-X is
        equivalent to <ENTER> qdired.

Dec 13 (Aaron Sloman)
    --- (UNIX ONLY) The library procedure -vedpipein- and procedures
        defined in terms of it (e.g. ved_sh, ved_csh, ved_rsh, etc.)
        described in HELP * PIPEUTILS were capable of producing "zombie"
        processes that would not die until you exited from poplog. This
        bug has been fixed.
        Programs that used lib pipein directly still have to call
        -syswait-. See REF * SYSUTIL/syswait

Dec 4 (John Williams)
    --- The procedure -isendstring- has been moved from the library
        into the system core.

    --- The procedure -sys_file_stat now accepts a null vector
        as its second argument. This provides a way of testing whether
        a file exists without creating a device record.

Nov 25 (Aaron Sloman)
    --- <ENTER> dired -mv
            Altered to cope with the case of renaming a directory
            See HELP * DIRED

Nov 24 (John Gibson)
    --- Version 13.61 has a new construct, lexical blocks, which
        allows the scopes of lexical identifiers to be constrained. In
        the Poplog VM this is represented by two new pseudo-instructions


        and in POP-11 by the syntax

                    <statement seq>

        These can be used (nested to any depth), either inside
        procedures or at execute level, e.g. in

                define foo();
                    lvars x;
                        lvars y;
                        lvars z;

        the variables -y- and -z- are accessible only inside their
        respective blocks (whereas -x- is accessible everywhere in the
        procedure); moreover, the resources utilised for -y- in the
        first block are freed for reuse in the second block, etc.
        See REF * VMCODE for full details.

Nov 19 (Aaron Sloman)
    --- [UNIX ONLY] new VED command for reading Unix 'man' files.
        <ENTER> man [<section number>] <name>
        Reads output of 'man' command into VED, then removes
        underlining, for easy reading.

    --- TABS in files are no longer lost by VED default settings.
        Users who leave *VEDNOTABS TRUE (the default) and do not set
        their *VEDFILETYPES so as to make VEDNOTABS false in all cases
        where tabs should be preserved, have occasionally lost the tabs
        in files and found them hard to replace properly. To reduce the
        risk of this happening in future, the variable VEDREADINTABS now
        defaults to TRUE. This means that if a file read into VED
        contains tabs, then VEDNOTABS will be set FALSE for that file
        and tabs will be preserved.

        To restore the old behaviour put 'false -> vedreadintabs' into
        your 'vedinit.p' file.

Nov 18 (Roger Evans)
    --- [Unix only] TERM and HUP signal handlers now both exit
        tidily (write VED files etc.). Minor changes to suspend/continue
        signal handling to improve response to termination while
        suspended. See REF *SIGNALS.
    --- -pop_exit_ok- false now inhibits any terminal IO by the system
        on exit (user -popexit- procedures should respect it also) - see
        REF *SYSTEM
    --- New procedure -fast_sysexit- exits Poplog without tidying.
        See REF *SYSTEM
Nov 14
    --- (Aaron Sloman)
    Lib Vturtle had a bug: vturtle_origin was wrongly adjusted according
        to vvedbuffersize. Now fixed. (TEACH * VTURTLE)

Nov 7  (John Gibson)
    --- New POP-11 compiler variable -popclosebracket_exec- allows
        recognition of 'execute' context during compilation.
        See REF * POPCOMPILE.

Nov 2  (Roger Evans)
    --- Bug in LIB EXTERNAL fixed - now handles -array_of_pointer-
        structures properly.

Oct 26 (Aaron Sloman)
        This used to call VEDSETUP while the file was being compiled.
        It now does so only if the current input (popdevin) is
        a terminal.

    --- New VED search procedure
            vedteststartsearch(string) -> <integer or false>
        Given a string search for a line in the current VED buffer
        starting with the string. Search starts from current line and
        wraps round top of buffer. Cannot use search patterns.

    --- -ved_g- and -ved_indexify- are altered to use
        -vedteststartsearch-. This makes it possible to use special
        characters in ved_g_string. See HELP * ENTER_G

    --- Modifications relating to LIB EXTERNAL
        There was a bug in the "prarr" example in HELP * EXTERNAL
        The example in the help file did not provide enough parameters
        for prarr. This has been fixed.

        There is a new version of the library known as LIB *NEWEXTERNAL
        documented in HELP *NEWEXTERNAL and associated with
        LIB * NEWFORTRAN_DEC. This considerably extends the facilities
        for externally loading Fortran (F77) procedures. The new version
        is being offered in this "new" form in V.13.6, and will later
        replace the standard LIB EXTERNAL. To use the new version it is
        necessary to do
            lib newexternal
        explicitly before using the "external" commands described in the
        help file.

Oct 24 (John Williams)
    --- New VED commands for manipulating list structure:
            <ENTER> GBL         Go to beginning of list
            <ENTER> GEL         Go to end of list
            <ENTER> GOL         Go out of current list
            <ENTER> MBL         Mark beginning of list
            <ENTER> MEL         Mark end of list
            <ENTER> MCL         Mark current list
        These all use a new procedure -vedfindbracket- for searching
    for bracket characters in VED. -vedfindbracket- is intended as
    a replacement for -vedmatchbracket-.
    See REF * VEDCOMMS and REF *VEDPROCS for more details.

Oct 24 (Aaron Sloman)
    --- New BSD Unix utilities.
    A collection of utilities developed by Roger Evans has been added
    to the non-autoloadable, non-supported library $usepop/pop/lib/lib
    as illustrations of useful programming techniques available on
    Berkeley Unix systems for communication between poplog and other

    Documentation is to be found in the following help files
        HELP * VSH

    Of these the most interesting user utility is VSH, which offers a
    'shell-in-ved-buffer' interface - like IMCSH only more

    These and other facilities in the $usepop/pop/lib/lib directory
    are not supported. See DOC * SYSSPEC

Oct 21 (John Gibson)
    --- Fixed a bug in the power operator ** which caused it to produce
    an 'unnormalised' ratio with a negative denominator, when the base
    value was a negative rational and the power was a negative integer
    (e.g. -2 ** -1 produced 1_/-2 instead of -1_/2).

    ********** FOR EARLIER NEWS ITEMS SEE HELP * NEWS.V13_6 **********

--- C.all/help/news.v14
--- Copyright University of Sussex 1992. All rights reserved. ----------