HELP NEWS.V13_6                                        A.Sloman Nov 1989

For most recent news please see HELP * NEWS

Oct 20 1988
    POPLOG VERSION 13.6

    The file HELP * V13_6.CHANGES summarises the changes listed in the
    rest of this news file and organises the material by topic.

    --- ****POPLOG IS NOW AVAILABLE ON SUN-4 (SPARC)****

    --- ****POPLOG IS NOW AVAILABLE ON SEQUENT SYMMETRY****

    Both provide the new "mmap" system call mentioned below in conection
    with SunOS-4. This allows saved images (e.g. prolog lisp) to be
    shared between processes.

Oct 18 (Aaron Sloman)
    --- New pop11 compiler procedure made available to users.

    pop11_comp_procedure(CLOSER, P_NAME, PROPS) -> P;
        Compiles a procedure from just before the argument list up to
        CLOSER (a word or list of words e.g. "end" "enddefine"
        "endprocedure"). P_NAME is the name of the procedure or false,
        PROPS is the item to be inserted in the *pdprops, or false.
        PROPS can be over-ridden by with_props in the header. The result
        returned is the procedure record created or a procedure
        compilation structure.
        See REF * POPCOMPILE/pop11_comp_procedure


    --- *VEDGETSYSFILE fixed so that use of apostrophe in the same line
    as a cross reference in HELP files, TEACH files, etc. no longer
    causes an error when <ESC> h is used.


    --- [Unix only] Another EMACS-like facility added, loosely modelled
        on dired in EMACS.
        The VED-based dired allows you to browse through directories,
        seeing what files are available, looking at some, deleting some,
        copying some, moving, etc. It is also user extendable. There's
        a full help file HELP *DIRED and a short one HELP * DIRED.SHORT.

Oct 16 (Aaron Sloman)
    --- Extensions to VED: appending a range to a file
        <ENTER> wappr <file>
            Write and append current range to file. Much faster than
            ved_mo or ved_to, since it uses discappend and not VED.
        <ENTER> wappdr <file>
            Writes the range, appending it to file, and deletes it from
            the current file.

        These facilities use * DISCAPPEND

Oct 14 (Roger Evans)
    --- [BSD Unix only] New handlers for 'suspend' and 'continue'
        signals, so that a keyboard suspend, <enter> stop and the macro
        -stop- all do the same thing. User hook -popsuspend- which gets
        called during suspend/continue. See HELP *STOP, REF *SIGNALS
        ('Built-in Signal Handlers')

    --- -syssleep- modified so that it only exits in response to the
        timer or ctrl-C interrupts, not other signals.

Oct 13 (Aaron Sloman)
    --- New "overview" file HELP * DICTIONARY.

Oct 13 (John Williams)
    --- Bug in -vedappfiles- fixed: it now correctly restores the
        original VED environment if an error occurs during execution.

Oct 10 (Roger Evans)
    --- New 'external-type' keys allowing the creation of 'external
        class' data objects, containing references to external
        (non-Poplog) data structures and treated specially by
        -external_apply-.
        See REF *EXTERNAL, REF *KEYS, HELP *RECORDCLASS

    --- New VM instructions sysSUBSCR and sysUSUBSCR for planting fast
        in-line vector subscriptor code (for arbitrary vector types).
        Also sysEXT_FIELDVAL, sysUEXT_FIELD_VAL, sysEXT_SUBSCR,
        sysUEXT_SUBSCR, for planting accesses to data pointed to by
        external class data objects.
        See REF *VMCODE, REF *EXTERNAL

Oct 8  (Aaron Sloman)
    --- LIB TIME did not work with LMR if final semi-colon was left
        out. This is now fixed. See HELP *TIME

    --- Three VED system procedures concerned with refreshing bits of
        the screen are now made available to users:

    vedrefreshtail(boolean, wline, wcol, index, string)
        Refresh line to right of window line wline column wcol
            For details see HELP * VEDCOMMS/vedrefreshtail

    vedrefreshline(boolean, wline, string, <boolean or char>)
        Refresh whole of window line wline
            For details see HELP * VEDCOMMS/vedrefreshline

    vedrefreshstatus()
        Refresh status line (previously a library file)
            See HELP * VEDCOMMS/vedrefreshstatus

    Incorrect entry for VEDMARKED corrected in HELP * VEDPROCS/vedmarked
    and ved_?? data file

Oct 6  (John Williams)
    --- Three new active variables added:
        -pop_charin_device-  -pop_charout_device-  -pop_charerr_device-
        See REF * SYSIO.

    --- New procedure -is_ved_lmr_stream- added (for recognising
    character repeaters given to -popcompiler- by -ved_lmr-).

Sep 27 (Aaron Sloman)
    --- The procedure ved_sourcefile (see HELP * SOURCEFILE) has been
    altered so that <ENTER> sourcefile without an argument causes the
    word to the right of the cursor to be the argument. The expanded
    command is inserted in the VED command line buffer in the line
    before the current command.

Sep 27 (Roger Evans)
    --- A new general interrupt handling facility is now available,
    documented in REF *SIGNALS. The user can control the handling of
    most of the asynchronous interrupts ('signals' in Unix terminology)
    defined by the operating system (how many, and exactly which,
    varies from system to system - see REF *SIGNALS) and add new
    synchronous interrupts. Principal new procedures are:

        sys_signal_handler  -   access to handler procedures for signals
        sys_signal_flag     -   access to enable flags for signals
        sys_raise_signal    -   invoking a signal handler
        sys_signal_queue    -   queue of yet to be handled signals
        sys_max_signal      -   largest currently defined signal

    A user library LIB SIGDEFS defines constants for the operating-
    system-defined signals available in the current system.

    --- A new library LIB SYSDEFS defines constants useful for
    identifying local system dependencies in #_IF control statements.
    (eg UNIX, VMS as used in #_IF DEF UNIX). See HELP *SYSDEFS,
    HELP *DEF

Sep 17 (Ian Rogers)
    --- -sysfileok- now has the ability to translate environment UNIX
    variables no matter where they appear in the argument string. It
    also can use curly brackets to delimit variable names eg. if $foo is
    FOO then:

        sysfileok('foo${foo}baz') =>
        ** fooFOObaz

    NB this mechanism is not yet available for VMS logical variables.

Sep 16 (Aaron Sloman)
    --- Printing with non-standard value for *POP_PR_RADIX is now
    easy with RADIX_APPLY. See REF * PRINT/radix_apply

    --- The teach file TEACH * RIVER and associated library package
    LIB * RIVER have been cleaned up and improved.

Sep 8 (John Williams)
    --- The variables -popfilename- and -poplinenum- are now set
    correctly during non-interactive compilation from a VED buffer.
    This means that error messages resulting from 'lmr' compilation
    will now display source file name and line number.

Aug 28 (Aaron Sloman)
    --- VED interactive search and substitute mechanism fixed:
            <ENTER> s/string1/string2/
        sometimes offered the same substitution twice. Now fixed.

    --- <ENTER> @ options extended to allow all the following, described
        in HELP * VEDCOMMS
        <argument>  <line to go to>
          a         first line of file
          z         last line of file
          m         marked range start
          e         end of marked range
        <integer>   go to line number <integer>
        +<integer>  go forward by <integer> lines
        -<integer>  go back by <integer> lines

    --- HELP * VEDCOMMS reorganised and clarified. Now includes
        information on VED command line processing.

    --- VEDEXPAND file name option modified. ^f will now expand to
        file name EXCLUDING trailing comma or period.
        See TEACH * VEDEXPAND

    --- VED debugging aid * VEDDEBUG altered so that it makes the cursor
        wiggle at the current line and column, and if popready is
        invoked it now restores the screen properly. Entries in
        HELP * VEDPROCS and VED_?? files corrected.

    --- Added entries for *SYSPARSE_STRING to REF * STRINGS and
        HELP * POPPROCS

Aug 27 (John Gibson)
    --- (Sun only) Availability of new "mmap" system call in SunOS-4
    means that the constant parts of Poplog saved images created with
    -sys_lock_system- can be shared among all users (e.g. implies that
    most of the Common LISP and PROLOG images will be shared).

    --- A new procedure -sysconslist_onto- tidies up the way trailing ^^
    is dealt with in POP-11 list constructors (same as -sysconslist- but
    takes an argument list, which the list of items off the stack is
    concatenated onto -- see REF * LISTS).

Aug 24 (Aaron Sloman)
    --- Bug in VED search fixed: no longer confused by occurrence
        of a tab immediately after character matching first character
        of search string.

Aug 19 (Roger Evans)
    --- New facility -sys_destroy_action- allows users to assign a
    procedure to be run when a data object becomes garbage. See
    REF *PROPS

Aug 9 (Aaron Sloman)
    --- HELP * VEDVARS substantially improved. Broken down into
    different sections, with clearer information for anyone tailoring
    VED to a new terminal.

    --- LIB VEDEMACS no longer produces an error message if compiled
    under VMS (though not all the facilities will work with VMS).

Aug 8 (John Williams)
    The macro -uses- now plants a call to a new procedure -useslib-,
    rather than executing immediately. See REF * LIBRARY/uses

Aug 8 (Aaron Sloman)
    Online HELP and VED_?? documentation on *FILL, *DL and *EXPLODE did
    not mention that FILL could take records as well as vectors, and
    that DL and EXPLODE now have updaters.

    A number of HELP files have been improved, with cross references
    brought up to date:
      *DEVICE *DEVNAME *HELPFILES *INPUT *INPUTOUT *IO *NEXTCHAR
      *OUTPUT *POPDEVRAW *POPRAWDEVIN *POPRAWDEVOUT *RAWOUTFLUSH
      *SYSTRMDEV

Aug 8 (Aaron Sloman)
    New user-assignable variable VEDSTATUSBUFFERLIMIT, default 60,
    controls maximum number of lines saved in the VED "status" (command
    line) buffer. Assigning a bigger number will save more VED commands.
    Assigning a smaller number will save space.

Aug 8 (Aaron Sloman)
    UNIX ONLY: A new collection of autoloadable facilities for running
    Unix commands and reading the output back through a pipe is
    described in HELP * PIPEUTILS. This includes VED commands for
    running processes and reading the output into a temporary VED
    buffer. The new procedures and VED commands include:

    pipein(C,A,B) -> R
        run a command with specified arguments and return a device or
        repeater to access the pipe.
    vedpipein(C,A,F,P,B,H)
        run a command and read the output into a temporary ved file F
        with header and formatting controlled by P, B, and H.
    vedgenshell(C,H)
        Run a shell command, read output into a VED file with header H.
    <ENTER> sh <command>
    <ENTER> csh <command>
    <ENTER> rsh <machine> <command>
    <ENTER> rved <machine> <file>
    Compile and run C or Fortran programs using <ENTER> ccomp and
        <ENTER> fcomp

Aug 7 (Aaron Sloman)
    Fixed bug in ved_heading (it did not cope with leading spaces,
    with -vedstatic- true). (See HELP * ENTER_G/HEADING)

Aug 6 (John Gibson)
    Discovered and fixed a serious bug in concatenating words with the
    <> operator. When one or other word was empty (i.e. 0 length), the
    result returned was garbage, and the heap was corrupted. (This bug
    has been in the system for a long time, certainly since before
    Version 12.)

July 31 (Aaron Sloman)
    New extensions to -wordswith- defined in HELP * WORDSWITH.
    -match_wordswith- takes a string and matching procedure, or else
    a string pattern and returns a sorted list of all matching
    words in the Poplog dictionary.

    In VED, <ENTER> wordswith <string pattern>
    produces a temporary VED file containing all the words that match
    <string pattern>

July 27 (Roger Evans)
    Bug fixes:
        (1) -pwm_window_label- and -pwm_icon_label- now update internal
        representations of label (used by event printing routines etc.)
        (2) LIB EXTERNAL now returns a ddecimal when given a ddecimal in
        call-by-references using an identifier.

July 26 (Ian Rogers)
    Flavours bug fix:
        Trapped attempts to make ivars or divars declarations inside a
    method definition.

July 26 (John Williams)
    Two bug fixes:
        (1) -newanyarray- now checks that the arrayvector is big enough
            for the maximum arrayvector bound
        (2) -arrayvector- now has an updater

July 25 (Ian Rogers)
    Fixed a bug in vanilla_flavour.p which clobbered any attempt to
    to find the print string of an instance. It was caused by using the
    form of printf: printf(<arg1> .... <string>). A stronger warning has
    been placed in HELP *PRINTF to warn against this sort of thing.

July 16 (Aaron Sloman)
    LIB NCREV speeded up by a factor of about 4 on non-dynamic lists.
    See HELP NCREV

July 16 (John Gibson)
    Fixed bug in the operators / and // which meant that dividing the
    largest negative simple integer (-536870912) by -1 gave the wrong
    result (it produced the original value instead of its biginteger
    negation).

July 11 (Aaron Sloman)
    --- * DESTLIST speeded up.

    --- VED searching mechanism substantially improved:
    There were various long standing bugs and deficiences in the
    VED search mechanism that have now been removed.

    Backward search (-ved_backsearch-) now works with strings
        containing pattern elements and control character
        specifications, e.g. @a, @z, @?, @@, @/, \^A
        If there are no pattern elements it works as before, but
        if there are pattern elements it uses a slower but more
        general search mechanism.

    Backward non-embedded search can be specified using
        <ENTER> `<string>`

    <ESC> \  and <ESC> /  (re-search) now no longer merely
        remember the last search string used, they also remember
        whether the search was embedded or not. The full state of
        the last search is represented by the following global
        variables.
            vvedanywhere
                - search not constrained to item boundaries
            vvedoldsrchdisplay
                - original search string, including patterns etc.
            vvedsrchstring
                - copy of vvedoldsrchdisplay modified for efficient
                matching
            vvedsrchsize
                - length of vvedoldsrchdisplay

    <ENTER> s  no longer inserts leading spaces when lines become
        too long. I.e. it behaves like <ENTER> gs.

    <ENTER> s no longer calls -vedscreenbell- at the end of the
        search.

    Some bugs concerned with searches including patterns and
        starting beyond the end of the file have been fixed.

    The help file, HELP * VEDSEARCH has been updated and clarified.

July 11 (Aaron Sloman)
    --- Bug in -vedcharinsert- fixed. With -vedbreak- true and
        -veddelspaces- false, inserting a character in a long line used
        to cause a leading space to be inserted at the break. This also
        happened with the interactive search and substitute. This has
        now been fixed.

July 8 (Aaron Sloman)
    --- Improved facilities for defining new syntactic forms.
        The syntax for "define" has been extended to allow users to
        define new syntactic forms enclosed by "define" and "enddefine".
        For full details see HELP * DEFINE_FORM.

July 6 (John Williams)
    --- The procedure -copy- now copies properties properly.
    See REF * PROPS.

July 6 (Aaron Sloman)
    --- The quoted word syntax has been extended to allow a string
    between the word quotes. Thus the following are now legal Pop-11:
        vars s1 = "'a string !!'";

        if pdprops(proc) == "'foo/3'" then

    --- The syntax words that can occur between "define" and a procedure
    name have been listed in the list -define_headers-, and those which
    can occur after the procedure call pattern in the header are in the
    list -define_terminators-. Both are used by ved_f and the former
    by -ved_tidy-.

    --- ved_f (HELP * VEDCOMMS/ved_f) fixed so as not to alter globally
    the VED search variables vvedsrchstring, vvedsrchsize. So it does
    not interfere with VED's use of <ESC> / to re-search for the last
    search string. ved_f now uses the two lists -define_headers- and
    -define_terminators-
    It also now copes with section pathnames in procedure headers, e.g.
            <ENTER> f grum
    will now find
            define $-foo$-baz$-grum(x,y);

    It also now works with new "define:" formats, e.g.
        define : <type> name

    --- ved_mep (HELP * VEDCOMMS/ved_mep) the "mark to end of current
    procedure" facility has been improved. It handles things like
    "nonsyntax define()" properly, and no longer gives an error if
    called in the middle of a procedure. It can still be fooled if the
    cursor starts within a nested procedure definition.

    --- The VED search mechanism sets a variable vvedoldsrchdisplay,
    which remembers the actual search string last used, including
    any pattern elements. This used not to be exported, but is now,
    along with vvedsrchstring and vvedsrchsize.
    See HELP * VEDVARS/vvedoldsrchdisplay

July 4 (Aaron Sloman et. al)

    --- Fixes to documentation files:
        HELP * DOCUMENTATION, * VEDSYSFILE, * VEDGETSYSFILE
        HELP * LISPNEWS has been updated.

June 24 (John Gibson)
    --- Changes to the handling of O/S process arguments by Poplog
    (see REF *SYSTEM for full details):

        1. A new variable -poparglist0- contains a complete list of the
    arguments passed to Poplog, starting with the name under which the
    process was invoked. -poparglist- is effectively unchanged, but will
    now be a trailing sublist of -poparglist0- (i.e. excluding those
    arguments processed by the system on startup).

        2. The character `+` can now be used to flag a saved image to
    restore, in both Unix and VMS systems. The characters `-` in Unix
    and `/` in VMS are recognised as before, but not AFTER `+` has been
    used, i.e.

                pop11 -prolog -mysave
                pop11 -prolog +mysave
                pop11 +prolog +mysave

    will all restore "prolog" and then "mysave", but

                pop11 +prolog -mysave

    will only restore "prolog". This allows programs based on saved
    images to take Unix-style arguments beginning with `-`.

        3. (VMS only) The translation of the DCL foreign command line to
    arguments in -poparglist0- is now the same to that performed by VMS
    C programs (see REF *SYSTEM). In particular, arguments containing
    uppercase letters, spaces etc can be quoted with double quotes ",
    which are then stripped off. For this reason, " at the beginning of
    the first argument to flag POP-11 code to compile is now replaced by
    : (colon) as in Unix. Note that since DCL recognises : immediately
    after the command name as flagging a label, this will normally need
    quoting (also as in Unix), e.g.

                pop11 ":3+4=>"


June 20 (Ian Rogers)
    --- Flavours bug fixes (Instrument flavours and global flavour
        records)
        1. Instrument flavours now border themselves when first made as
        well as when they are refreshed. Bordering is controlled by the
        variable -bordering- which defaults to true.
        2. Flavour records are now declared as vars global in the manner
        that is indicated in the documentation.

June 17 (John Williams)
    --- Improvements to tracing:    (see HELP * TRACE)
            1.  Abnormal exits due to -setpop- are not displayed
            2.  Abnormal exit tracing can be turned on/off

June 15 (Roger Evans)
    --- Bug in -pwmcycleitem- fixed - it now actually calls the
        procedure provided whenever the item is selected.

June 8 (John Williams)
    --- VMS only.
        The file USEPOP:[POP.LIB.DEMO]DEMO.COM has been removed.
            (It never worked anyway!)
        The file USEPOP:[POP.LIB.DEMO]DEMO.P now works under VMS.

June 1 (Aaron Sloman)
    --- Fixed -vedcapword- in VED and VEDEMACS so that after
        capitalising initial letter it changes the rest to lower case.
        Added -ved_capword- for convenient invocation in VED
        <ENTER> capword N  will capitalise N words.
        See HELP * VEDEMACS/Capitalise, HELP * VEDPROCS/vedcapword,
            HELP * VEDCOMMS/ved_capword

May 27 (John Gibson)
    --- Added new procedures -sys_file_move- and -sys_file_copy-. See
        REF *SYSUTIL

May 8  (Aaron Sloman)
    --- The following documentation files have been updated.
        TEACH * PERCENT
        HELP * PARTAPPLY, * PERCENT, * CLOSURES

May 6  (Aaron Sloman)
    --- ISSUBSTRING has been altered: the second argument (integer)
        is now optional and defaults to 1.

    --- VEDWRITERANGE can now accept a device instead of a file name.

    --- Tab conversion (with VEDNOTABS false) is now done for all VED
        files read or written, whether a disk file is involved or some
        other device.
        See HELP * VEDPROCS/vedwriterange *VEDVARS/vedreadintabs

    --- <ENTER> ??
        with no argument, no longer puts the default argument (next
        item in VED buffer) onto the command line. Instead it puts the
        expanded command on the previous line in the command line
        buffer. See HELP * VED_WHAT

May 4  (Aaron Sloman)
    --- Corrected entries for ved_bc in HELP * VEDCOMMS and the
    ved_?? file.

May 1  (John Gibson)
    --- Added new procedure -consclosure- which constructs closures
    without requiring the frozvals to be in a list. Format is

        consclosure(P, FROZ_1, FROZ_2, ..., FROZ_N, N)

    -partapply- has been moved out of the system to the autoloadable
    library; it is now just

        consclosure(P, destlist(FROZ_LIST))

Apr 28 (Aaron Sloman)
    --- *FOR now checks for missing loop variable.

Apr 22 (John Gibson)
    --- POPLOG on MC68020 systems (i.e. Sun-3 and Bobcat) now uses the
    extended arithmetic facilities of that processor. This implies a
    general speedup in both simple and big integer multiplication
    and division operations.

Apr 12 (John Gibson)
    --- The procedure sys_= now returns true for two closures if their
    pdparts are =, they have the same number of frozvals, and
    their corresponding frozvals are =.

Apr 9 (Aaron Sloman)

    --- Two new string procedures in library * ISMIDSTRING(s1,s2),
        * HASMIDSTRING(s2,s1). See REF * STRINGS

        The procedure * ISSTARTSTRING has been moved from the library
        into the system and re-defined to be more efficient.

        * HASSUBSTRING has been modified so that it accepts an
        optional integer argument analogous to * ISSUBSTRING

        HELP * STRINGS updated

    --- VED_W (<ENTER> w) and VEDWRITEFILES altered so that empty VED
        files will be written if they already exist on disk. I.e. the
        existing disk file will be overwritten with an empty file. This
        is not done if the file does not exist. (To force VED to write
        an empty file use VED_W1). See HELP * VEDCOMMS/ved_w

Apr 2 (Aaron Sloman)
    --- SYSREPEAT(<number>,<procedure>) now checks whether <number>
    is an integer, and if so uses a much faster loop, going up to five
    or six times as fast. SHOWLIB * SYSREPEAT

    --- New VED procedure VEDENDRANGE jumps to end of marked range,
    just as VEDMARKFIND jumps to beginning. SHOWLIB * VEDENDRANGE
    Documentation added in HELP * VEDPROCS and VED_?? files

    --- UNIX ONLY. Fixed a problem with LIB VED_MAIL. It used to check
    sys_os_type(3) = 4.2 instead of sys_os_type(2) = "bsd". Made the
    procedures VED_MAIL_WAITING and VED_MAIL_FILE available to users,
    and introduced user-assignable variable SYS_MAIL_DIR.
    See HELP * VED_MAIL

Apr 1 (John Gibson)
    --- Added -fast_frozval-, non-checking version of -frozval-.

Mar 25 (John Gibson)
    --- A new procedure -property_active- allows the active default
    procedure for a property to be accessed or updated (in particular,
    the updater can be used to give an active default to a property
    constructed with -newproperty-).

Mar 14 (John Williams)
    -- The procedure -sysfileparse-, on Unix POPLOG systems only,
    can be given an optional second argument specifying the host
    name delimiter character. See HELP * SYSFILEPARSE

    -- The library procedure -datafile- can now save ordinary
    -newproperty- style properties. See HELP * DATAFILE.

Mar 14 (John Gibson)
    --- A new procedure -ident_declare- declares permanent variables.
    This is basically the same as -sysSYNTAX- (with the same arguments),
    except that -ident_declare- has no interaction with lexical
    declarations.
    See REF * IDENT, REF * VMCODE.

    --- The operators -fi_div- and -fi_rem- are now in the core system
    rather than the autoloadable library. Files for VED_?? updated.
    See REF * FASTPROCS

    --- When VED reads in files it now sets -popmemlim- locally to
    popmemused + 1000000. This should largely cure the "run out of
    memroy" mishap problem when reading a large file.

    --- New POP-11 syntax -fast_repeat-, analagous to -fast_for- etc
    (no difference between -repeat- and -fast_repeat- unless -times-
    specified).


Feb 14 (John Gibson)
    --- The standard empty string previously called -vednullstring- is
    now called -nullstring- (the old name remains as an autoloadable
    synonym).

Feb 12 (John Williams)
    -- LIB INSPECT now defines -inspect1-, a procedure that displays
    an object in the standard -inspect- format, without entering an
    interactive loop.

Feb 6 (Aaron Sloman)
    --- (UNIX ONLY) Extended LIB VED_SEND as follows (see HELP * SEND):
    User definable variable -vedinsert_From- (default TRUE) controls
    insertion of Unix-like "From" line above message sent.

    User defineable variable -vedmailrc- allows mail aliases to be
    read from a different place from Unix mail. Default is value of
    environment variable $MAILRC if set, otherwise $HOME/.mailrc.

    Various minor bugs fixed. E.g. if message starts with a space or
    tab it no longer gets confused with the header.

Jan 31 (David Young)
    --- Installed LIB SHOWARRAY for easy printing of arrays as tables of
    values or blocks of 'grey-level' characters, and LIB READARRAY to
    allow files of characters or turtle pictures such as LIB GREYPIC to
    be read into ordinary arrays.
    See TEACH * SHOWARRAY and TEACH * READARRAY.

Jan 29 (A Sloman)
    --- UNIX only. Fixed ved_stop so that on returning to a window that
    was previously the upper window it makes it the right size for the
    lower window.

Jan 23 (A Sloman)
    --- Fixed VEDWORDCOUNT_TEXT so that it (and VED_WC) copes
    properly with underlined words. See HELP * WC

Jan 7 (John Gibson)
    --- A new integer variable -popminmemlim- controls the minimum
    number of words at which the system should maintain the combined
    heap/user stack memory area (cf -popmemlim- for the maximum value).
    See REF *SYSTEM for details.

Jan 5 (John Williams)
    --- Tracing facilities extended as follows.
    1. Trace output is printed even if the procedure is entered or
    exitted in an 'abnormal' fashion. These abnormal entry/exit statuses
    are indicated by replacing the `>` and `<` that occur in normal
    trace output by one of the following characters:
        R       entry due to process resume
        S       exit due to process suspend
        X       any other abnormal exit

    2. The new variable POPMAXTRACEINDENT (default 40) controls whether
    trace printing uses rows of exclamation marks to indicate depth of
    procedure calls or a number in brackets. The latter can be forced in
    all contexts by assigning 0 to POPMAXTRACEINDENT, producing trace
    printing of the form:
        [   3]> addup 1         ;;; depth of recursive call is 3
        [   4]> addup 0         ;;; depth is 4
        [   4]< addup 0         ;;; exiting call of depth 4
        [   3]< addup 1

    For full details see HELP * TRACE.
    HELP * POPVARS updated

Jan 5 (Aled Morris)
    --- Added vars procedure -vedvedquitfile- which is called when a
    file is quit. HELP * VEDPROCS updated.

Jan 3 (Aaron Sloman)
    --- LIB * VEDEMACS has been extensively revised, as described in
    HELP * VEDEMACS. The main changes are
    a. A useable version is available for VMS with alternatives to the
    control characters ^S, ^Q, ^Y
    b. Several discrepancies between LIB VEDEMACS and standard UNIX
    EMACS have been removed. E.g. capitalisation of initial letter of
    words, tracking end of line, etc. work. Other discrepancies remain,
    however. Other changes are listed in the HELP file.

    --- LIB * VEDCAPWORD
    This procedure, required for LIB VEDEMACS, capitalises the initial
    letter of the current word, then moves right to next word. It can
    be assigned to a key if required.

Jan 2 (Aaron Sloman)
    --- LIB * VEDCONVERTWORD fixed so that it can move to left or to
    right (changing case). So <ENTER> ucw, and <ENTER> lcw can now be
    given negative arguments. E.g. to convert last three words to upper
    case, do
        <ENTER> ucw -3

1987
Dec 23 (Aaron Sloman)
    --- NEWS items introduced between V12 and V13 have been moved
    to HELP * NEWS.V13

    --- POPLOG VM procedures that previously had updaters that were
    not alterable by users have been changed to call the corresponding
    user-definable procedures. So the updater of sysPUSH now calls
    sysPOP, the updater of sysCALLQ calls sysUCALLQ the updater of
    sysCALL calls sysUCALL, the updater of sysCALLS calls sysUCALLS, the
    updater of sysPASSIGN calls sysUPASSIGN. See REF* VMCODE

Dec 8 (Aled Morris)
    --- New autoloadable -DEF- installed - see HELP *DEF

Nov 30 (John Gibson)
    --- The procedure -section_pathname- returns the full pathname of a
    section, as a string. See REF *SECTIONS.

Nov 24 (John Gibson)
    --- The procedure -identof- now has an updater, enabling (permanent)
    identifiers to be attached directly to words. Since -syssynonym- can
    now be defined simply as

            identof(word2) -> identof(word1)

    it has been moved out of the system into the autoloadable library.

Nov 20 (John Gibson)
    --- (Version 13.2004) Enhancements and bug fixes to the section
    mechanism (see REF *SECTIONS):

        1. Imports and exports specified in a -section- statement now
    take effect in all intermediate sections specified in a pathname,
    e.g.

            section $-tom$-dick$-harry xxx => yyy;
                ...
            endsection

    imports  -xxx- from  top-level down  through -tom-  and -dick-  into
    -harry-, and exports -yyy- from -harry- up through them to top-level

        2. -word_identifier- has been enhanced so that it can return
    'undeclared' word identifiers

            word_identifier(WORD, SECT, "undef") -> WORD_ID

    when WORD is not currently declared in SECT. The WORD_ID returned
    then will act as a vehicle for declaring WORD in SECT, in the sense
    that any later attachment of  an identifier to WORD_ID (e.g. with
    -sysSYNTAX-, -syssynonym-, etc), will simultaneously attach that
    identifier to WORD in section SECT (conversely, a later declaration
    of WORD in SECT will cause the new identifier to become attached to
    WORD_ID also).
        The new facility is now used by the procedure that reads
    identifier pathnames in POP-11 (-sys_read_path-), and this means
    that new sectioned identifiers can be declared or defined by
    pathname reference alone. For example,

        define $-foo$-xxx(); ... enddefine;

    previously produced a mishap unless -xxx- was already declared in
    section -foo-, but works in the new system (but note however that
    this mechanism will NOT create new sections -- any sections involved
    must have been created first by a -section- statement).
        The -cancel- syntax word now also uses -sys_read_path-, and so
    can be used to cancel sectioned identifiers.

Nov 13 (John Williams)
    --- New procedures that operate on lists added: -fast_subscrl- and
    -initl-. Also, -fast_ncdelete- moved from library to system. See
    REF * LISTS

Nov 12 (John Gibson)
    --- (Version 13.2003) In the interests of greater flexibility (and
    in particular the requirements of a PWM for VMS Poplog), -popdevraw-
    has now been replaced with two active variables containing separate
    read and write devices: -poprawdevin- and -poprawdevout- (when
    neither standard input nor output is a terminal, they both contain
    undef records).
        -popdevraw- is now just an autoloadable synonym for
    -poprawdevin-, but to maintain upward compatibility, output
    operations with -syswrite- and -sysflush- done on the device in
    -poprawdevin- will be automatically redirected to the device in
    -poprawdevout- (however, existing programs should be changed so as
    not to rely on this kludge).
        Also to maintain compatibility in Unix systems, a new procedure
    -sys_link_tty_params- is run on the two devices to make them share
    terminal characteristics, so that existing calls of -sys_io_control-
    on -popdevraw- will affect both devices simultaneously.
        This change will be retrofitted to Version 13. See REF *SYSIO
    for full details.

    -- The procedure -sys_purge_terminal- is now an autoloadable synonym
    for the new, more general, procedure -sys_clear_input-. See REF
    *SYSIO.

Nov 10 (Aaron Sloman)
    --- HELP * DEFINE had seriously misleading information about
    definitions specifying negative precedence. This has been corrected.

Nov 5 (Aaron Sloman)
    --- New versions of the following TEACH files have been installed.
        BUFFERS  DATABASE  DEFINE  LMR   MARK   MATCHES   MOREVED RIVER
        RESPOND  SWITCHWINDOW   TEACH   TEACHFILES   VARS   VED  VEDPOP

    The main change is that these files are now TERMINAL INDEPENDENT:
    It is assumed that the learner has a keyboard map and VED keys are
    referred to by logical names as in the VED User Guide. In addition
    The files make use of "load marked range" rather than <ENTER> x (i.e
    all compilation is now done from the edit buffer). The recommended
    initial teaching sequence is therefore:
        TEACH, WINDOW, MARK, SWITCHWINDOW, BUFFERS, LMR, VEDPOP,
        MATCHES, RESPOND, DEFINE, VARS, MOREMATCHES, DATABASE, MOREVED.
    TEACH * TEACHFILES adds more information.

Nov 4 (John Williams)
    --- New syntax words -returnif- and -returnunless- added.
    See REF * SYNTAX and REF * POPSYNTAX

Nov 4 (Roger Evans)
    --- A new PWM help file *PWMWINIO has been added, discussing how to
        achieve character-stream I/O on PWM user windows.

Nov 2 (John Williams)
    --- The routine that signals a RECURSION LEVEL EXCEEDED error
        now locally assigns -setpop- to -interrupt-. This means
        that user-defined interrupt handlers no longer run the risk
        of crashing POPLOG by exceeding operating system stack space
        limits.

Nov 1 (John Gibson)
    --- A new macro

        #_INCLUDE 'filename'

    enables the stream of items from a file to be 'included' in (spliced
    into) the current -proglist-. See REF * PROGLIST.

Nov 1  (John Williams)
    --- A bug in -newanyarray- has been fixed - it is now possible to
    create 0-dimensional arrays by specifying an empty -boundslist-.
    However, this means that is no longer possible to directly specify
    -nil- as the initial element of an array, because -nil- will
    now be interpreted as a -boundslist-.

Oct 28 (Roger Evans)
    --- A bug which caused VED commands qhelp, qref, etc. to mishap
    sometimes if they could not find the requested file has been removed
    --- VED's strategy for deciding what file to edit after a quit has
    been simplified - it now simply goes back to the previous file
    edited.

Sept 29 (John Williams)
    --- New VM flag -VM_NO_CHECK_GO_ON_INT- added.
    See REF * VMCODE/sysGO_ON

    --- The macros -cd- and -pwd- now plant code in -proglist-, rather
    than executing immediately.

Sept 28 (John Gibson)
    --- Version 13.2. The garbage collector now has an alternate
    algorithm, which comes into play when there is insufficient memory
    for the normal copying algorithm to operate (and which can also be
    selected explicitly by assigning false to -pop_gc_copy-). As a
    result, the system can no longer die with the mishap 'CANNOT
    ALLOCATE GC WORKSPACE', and -popmemlim- can be set as large as
    desired. (There is also now a clear distinction in mishap messages
    between merely exceeding -popmemlim- and actually running out of
    memory -- the latter can still happen, of course.) See REF *SYSTEM.

    -- The new (active) variable -pop_pr_level- controls the depth to
    which components of datastructures are printed. See REF *PRINT.

Aug 17  (Aled Morris)
    --- Short (16 bit signed) vectors ("shortvec") added to
    complement "intvec". See REF *INTVEC.
    --- A set of ``fast'' procedures for accessing integer vectors in a
    consistent way has been added - see REF *FASTPROCS.

Aug 17  (John Gibson)
    --- Version 13.1 of POPLOG for Unix systems has the segmented heap
    and garbage collector already in Version 13.0 of VMS POPLOG.
        This means that the system now copes with the segmentation of
    its heap space that results when external procedures allocate
    dynamic memory at run-time (e.g. through -sbrk- or -malloc- etc).
    External procedures can now allocate memory freely, and no prior
    provision need be made for this (as a result, the optional 4th
    argument to -external_load- that previously specified the amount of
    memory required is now redundant -- and, if given, is ignored).

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

--- C.all/help/news.v13_6
--- Copyright University of Sussex 1989. All rights reserved. ----------
