Search                        Top                                  Index
HELP NEWS.V13                                          A.Sloman Dec 1987

For most recent news please see HELP * NEWS

For a summary of changes introduced in V.13 please see

August 1987

Aug  10 (Aaron Sloman and John Gibson)
    --- In order to make the VED_?? work without autoloading it has
        been moved into the core system. See HELP * VED_WHAT

    --- LIB NEWVEDSYSFILE has been withdrawn and instead the system
        procedure * VEDSYSFILE has been changed so that it invokes
        the VED_?? mechanism if a search is unsuccessful. Its behaviour
        can be controlled by two new variables VED_TRY_??
        and VED_?_EXPLAIN. Making the first one false suppresses the
        mechanism. Making the second one false reduces the verbosity
        of VED_??.

        Various HELP files have been updated accordingly.

Aug  7 (Aaron Sloman)
        Added HELP * V13.CHANGES, which pesents the information from
        this file in a more structured way.

July 30 (Andrew Law)
    --- DOC *VEDUSERGUIDE formatted, on-line, extensive intro to VED
        DOC * PAG  on-line version of 'The Poplog Administrators Guide'
        including info. on installation, disc space, site and terminal
       DOC *PWM technical details of the PWM

July 29 (John Gibson)
    --- A new procedure, -pr_field-, gives a simple way of printing any
    item in a fixed length field, either left-justified, right-justified
    or centred. See REF *PRINT.

July 23 (John Gibson, Andrew Law, Simon Nichols, Robert Duncan)
    --- The REF files for Version 13 POPLOG have been considerably extended
    and revised, and there are the following new files:

            REF *REFFILES
                For an overview of REF files

            REF *ARRAYS
                    Arrays and array procedures
            REF *CHARIO
                    Character stream input and output
            REF *IDENT
            REF *LIBRARY
                    POP-11 Library Mechanisms (e.g autoloading)
            REF *MISHAPS
                    POPLOG mishap handling
            REF *POPCOMPILE
                    POP-11 compiler procedures
            REF *PRINT
                    Printing procedures, etc
            REF *PROLOG
                    Prolog Virtual Machine support in POPLOG
            REF *PROGLIST
                    The input stream used in POPLOG by many system modules
                    including the POP-11 compiler
            REF *STACK
                    The POP-11 stack and procedures for operating on it
            REF *SYSTEM
                    Various POPLOG system control procedures
            REF *TIMES
                    Data and Time and Timer procedures

        In addition, REF *MISC is now defunct (the procedures formerly in it
    having been dispersed to the new files). REF POPVARS is also in the
    process of being made redundant.

July 22 (Aaron Sloman)
    --- Added complex_key to autoloadable library, by analogy with
    pair_key, word_key, etc. SHOWLIB * COMPLEX_KEY

July 14 (David Young)
    --- LIB * GAMMA provides the Gamma function, a higher transcendental
    function useful for some mathematical work. See HELP * GAMMA.

July 10 (John Gibson)
    --- (Sun Only) When using the Suncore library routines, the initialisation
    function -_initialize_core- redefines the handling of the SIGCHLD signal
    in a way that invalidates the use of -syswait- in POPLOG, causing it to
    give a 'NO CHILDREN' mishap (the Suncore routine preempts -syswait- by
    waiting on any children the process creates).
        To get round this problem (at least) for -sysobey-, that procedure now
    sets SIGCHLD to be ignored while waiting for the child process it creates.
    (There is really no general solution: the -wait- mechanism in Unix is just

July 10 (A. Sloman)
    --- Fixed a bug in LIB VED_MAIL (Unix only). Stopped it occasionally
    reading new mail into the VED command buffer.

July 4  (John Gibson)
    --- The procedure -explode- now has an updater, i.e. it fills the given
    structure with elements from the stack. This works on all structures for
    which -explode- works (except for words and properties); on lists, it uses
    the updater of -dl- (also newly added), e.g.

            [0 0 0 0] -> list;
            4,5,6,7 -> dl(list);
            list =>
            ** 4 5 6 7

    In addition, -fill-, -mapdata- and -ncmapdata- now work on all structures
    for which -appdata- does (the only difference between the updater of
    -explode- and -fill- is that the latter treats lists as pairs).

June 21 (A. Sloman)
    --- Added new help file * ISACTIVE, updated * ACTIVE_VARIABLES

June 20 (Aaron Sloman)
    --- Bug in -tree_printable- in LIB * SHOWTREE fixed.

    --- LIB * VED_WHATS fixed to cope with entries terminated by
        a blank line.

June 15 (John Williams)
    --- (UNIX ONLY)
    POPLOG no longer interferes with 'umask'. Hence the permissions of
    files created by POPLOG (using -syscreate- or VED) will be the
    result of masking -pop_file_mode- with 'umask'.

June 11 (John Gibson)
    --- Inadequacies in -random0- and -random- have been cured: they now
    generate much more uniformly distributed numbers than previously, with no
    excessive correlation between one value and the next. For simple integers
    and single floats, the cycle length of the sequence generated (i.e. how
    many are produced before the sequence will start to repeat) is now 2**30
    on all systems (for big integers and double floats it will be at least
    2**29). HELP * RANDOM updated

June 7 (John Gibson)
    --- The fix (Dec 19 1986 Version 12.4) for a bug in sections that caused
    non-global identifiers associated with system words (or words locked into
    the system with -sys_lock_heap-) to be imported into every section was
    incorrect: it prevented non-global identifiers locked with -sys_lock_heap-
    from being imported into sections into which they were explicitly imported
    (or implicitly imported by being exports). The fix has now been corrected.

May 29 (Andrew Law)
    --- HELP *IM added, giving an overview of "immediate mode"

    --- LIB *NEWVEDSYSFILE added. This redefines *VEDSYSFILE to default
    to use the *VED_WHAT mechanism. It makes the HELP command return
    information in many more instances than it does at present. See

May 29 (Aaron Sloman)
    --- READSTRINGLINE - a procedure that reads arguments for macros like
        HELP, TEACH, SHOWLIB, has been made available to users.

    Various teach files have been reformatted and updated, and some
    missing ones re-instated, e.g. TEACH SOLVEMS, TEACH RESOLVEEXERCISE

May 28 (John Gibson)
    --- (VMS only) In Version 13 of VMS POPLOG the external load
    facilities have been re-implemented and considerably improved. The
    principal changes are as follows (see REF *EXTERNAL for full

    Shareable Images
        These are now fully handled, either when explicitly specified in
    the -external_load- input file list or when implicitly extracted
    from a shareable image library.
        A shareable image is specified explicitly in the input file list
    to -external_load- by postfixing its name with the normal linker
    qualifier '/shareable' (or a valid abbreviation, e.g. '/share').
    Note that the name specified is NOT a filename, but a shareable
    image name as used by the VMS image activator -- that is, the name
    of a system image in SYS$SHARE or a logical name referencing a
    private image file. E.g.

      'vaxcrtl/share'    ;;; system image VAXCRTL
      'myshare/share'    ;;; where MYSHARE is a logical name for a file

    Processing of -external_load- Input File List
    The list of strings specifying the input files to -external_load-
    may now also include VMS linker command qualifiers. These are
    recognised by an initial / character in a string, and are extracted
    and added to the "link" command run to link the input files into
    POPLOG. You should not, however, attempt to use any qualifiers other
    than '/nosyslib', '/nosysshr' and '/nouserlib' (and their
    abbreviations) in this context.
        The remainder of the strings in the list are passed to the
    linker as separate lines in a linker options file: this means that
    you can use any of the standard positional qualifiers on filenames,
    like '/library' etc. It also means you can specify special options,
    although of these only 'symbol', 'psect_attr', 'collect' and
    'cluster' are safe to use ('cluster' must NOT specify a base

    Dynamic Memory Allocated by External Procedures
        One of the major changes in VMS POPLOG Version 13 is to allow the
    system to cope with the segmentation of its heap space that results when
    external procedures allocate dynamic memory at run-time (either through
    the system service -sys$expreg- or the library routine -lib$get_vm-, etc).
    External procedures can now allocate memory freely, and the user
    need make no prior provision 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).

    Saving and Restoring the System
    Restoring a POPLOG saved image will reactivate any shareable images
    loaded when the system was saved (as usual in VMS, names of
    shareable images not in SYS$SHARE must be defined as logical names
    at the time of restoring).

May 21 (Aaron Sloman)
    This procedure refreshes the status line on the screen in the current
    VED window.

    --- SET_GLOBAL_VALOF(<item>,<word>)
    A new autoloadable library procedure for setting the valof word in
    all currently active contexts. See REF * IDENT/set_global_valof

    --- ISDLOCAL(<word|identifer>,<procedure>)
    returns true if the word or identifier corresponds to a dynamic
    local variable of the procedure. See REF * IDENT/isdlocal

    are now local to the compiler, and interpreted by the user definable
    procedure POP11_DEFINE_DECLARE. See:
    REF * POPCOMPILE/pop11_define_declare

    Because these are local to the compiler, SET_GLOBAL_VALOF is needed
    to assign to them in the user's initialisation file, 'init.p'

May 20 (Aaron Sloman)
    --- Procedures for manipulating blocks of text have been added
    to the VED library:
    * LIB VEDBLOCKS makes available a family of VED ENTER commands
        for inserting, deleting, copying, moving or blanking out
        text blocks. These make use of the following more primitive
    * VEDCUTBLOCK - delete or copy an arbitrary rectangular block of
        text from the VED buffer, and return a vector of strings.
    * VEDYANKBLOCK - yank a vector of strings into a rectangular
        block of text in the VED buffer
    * VEDREFRESHBLOCK - refresh an arbitrary rectangular block
        of the screen
    * VEDFILLBLOCK - fills a rectangular block with a character
    For full details see the help files. These will be used to
    define a set of interactive commands for manipulating text blocks.

May 12 (Andrew Law)
    -- HELP *DOCUMENTATION added, explaining means of accessing
    on-line sources of information in POPLOG

    -- The following files added providing annotated overviews of
    domains covered by POPLOG documentation:

    Overviews of HELP files; HELP *HELPFILES (separately for
    pop/lisp/help, pop/plog/help and pop/help/), HELP *FLAVOURS,

    Overview of DOC files; DOC *DOCFILES

    Overview of library files; HELP *LIBFILES

    Overviews of TEACH files; TEACH *TEACHFILES, (added separately for
    pop/plog/teach and pop/teach

    Overview of REF files; REF *REFFILES

May 11 (Andrew Law)
    -- Reformatted REF files to be 72 columns. Made all REF entries
    lower case and added their identifiers. Added cross references
    to the ved_what datafiles.

Apr 30 (John Williams)
    -- Some new facilities for mixed language programming have been
    added. These are:

        POP11 libraries:        LIB PLOG_GOALS     LIB PLOGINPOP
        Prolog libraries:       LISPINPLOG
        Lisp modules:           PROLOG

    the Lisp help file PROLOG.

Apr 30 (Aaron Sloman)
    --- A bug in VEDEXCHANGEPOSITION has been fixed. It used to crash if
    a stacked position was in an initial segment of the buffer that had
    been deleted.

    --- DOC * AAREAD.ME was once the Poplog installation guide. This has
    been made redundant by the printed installation guide and Poplog
    User Guide, and has been removed.

    --- HELP * EXTERNAL describes a new interface to EXTERNAL_LOAD
    making it far more convenient for programmers used to C or
    FORTRAN, or wishing to use the NAG library. The facilities are
    provided in a library package: LIB * EXTERNAL. The more basic
    and general facilities are described in REF * EXTERNAL

Apr 28 (Aaron Sloman)
    The Poplog User Guide refers to two files TEACH * POEM and
    TEACH * POEM_BIT. These have now been installed!.

Apr 28 (Richard Bignell)
    --- Environment variable $poplocal now defined to locate the base of
    the local tree. This allows the local tree to be based outside the
    POPLOG tree. The default value for $poplocal (which is $usepop/pop to
    maintain compatibility with previous systems) is assigned in
    $usepop/pop/com/poplog if a value has not already been assigned to it;
    hence defining this variable at the same time as defining $usepop will
    override the default. (see DOC * SYSSPEC).

Apr 26 (John Williams)
    --- VED_LMR now trims trailing spaces from each line compiled

Apr 19 (Aaron Sloman)
    --- LIB * LOGIC revitalised. This library is a program for teaching
    elementary boolean logic using truth-tables. It used to depend on a
    collection of files in a sub-library which was deleted making
    LIB LOGIC useless. The files from the sub-library have been
    re-instated in the single file LIB LOGIC, whose use is described
    in HELP * LOGIC. A command file for creating a saved image
    MKLOGIC (MKLOGIC.COM on VMS) has been provided in $usepop/pop/com

Apr 13 (John Williams)
    --- Two new features of MISHAP messages:
     (1) Successive calls of the same procedure are grouped together
         in the DOING part of the message (eg seven recursive calls of
        'foo' would be indicated by foo(*7)
     (2) A new variable, POP_MISHAP_DOING_LIM, if given an integer value
         limits the number of callers printed. Its default value is
         FALSE, specifying that all callers should be displayed.

Apr 12 (Aaron Sloman)
    --- New sections added to HELP * EFFICIENCY (accessible from PROLOG
        as REF * EFFICIENCY). The new sections include advice on
        avoiding garbage collections caused by unwittingly producing
        ratios when dividing integers using "/".

    --- Information about "/" and ratios clarified in several POP-11
        and Prolog help files, i.e. HELP * MATH and

Apr 11 (John Gibson)
    --- Fixed a bug which caused the function -abs- in MC68000 POPLOG systems
    (e.g. Sun) to mishap when applied to floating-point complex zero. It now
    correctly returns 0.0.

Mar 23 (A Sloman)
    --- LIB VED_SEND on UNIX systems used a procedure SYSMODTIME which
    had previously been only in Sussex Library. Now added to
    autoloadable library. See HELP * SYSMODTIME

Mar 23 (John Williams)
    --- Recogniser procedure for sections, ISSECTION, added to the
    autoloadable library

Mar 2 (John Gibson)
    --- Fixed a bug in the operator // which caused it to give an incorrect
    remainder result when one of the arguments was a complex number
    (similarily for REM).

Mar 1 (A. Sloman)
    --- Documentation of arithmetic facilities corrected and extended:
    HELP * MATH now summarises REF * NUMBERS. It points out that various
    operators previously restricted to integers are no longer
    restricted, e.g. // * REM, * DIV, * MOD

    The operators MOD and REM have been different since Version 12, but
    the HELP files said they were synonyms. Now corrected.

    --- New fast integer procedures added to the library and documented
    in REF * FASTPROCS, namely fi_rem fi_mod fi_div

    --- NEW string procedures added, to complete the following
    HASSUBSTRING, HASENDSTRING. The 'IS-' versions take the substring
    as first argument, the 'HAS-' versions take it as last argument.
    So, the HAS- versions can be partially applied to sub-strings.
    See REF * STRINGS for details.

Feb 17 (A. Sloman)
    --- VEDREADINTABS introduced a bug that caused the search mechansim
    to remember the wrong search string. Now fixed.

    --- VEDBACKLOCATE(<string>) bug fixed. It now copes properly with
    strings at beginning of file.

    --- VEDEXPAND bug fixed: it used not to behave properly with '^^'.
    Simultaneously expanded built in expand options.

Feb 5 (John Gibson)
    --- A bug in the POPLOG Virtual Machine compiler has been fixed. Under
    certain circumstances this caused incorrect code to be generated for
    procedures that used non-local lvars and were also given as argument to a
    system 'app' procedure (e.g. -applist-). (The symptom was that the 'app'
    procedure actually got passed a <SYSTEM OBJECT> instead of the correct
    lexical closure.)

Feb 3 (Ben Rubinstein)
    --- * CHECKINTEGER added to autoloadable library.

Feb 2 (John Gibson)
    --- (VMS Only) A bug that prevented POPLOG from being able to read Indexed
    Sequential files is now fixed. For the time being, they can be read
    (sequentially), but not created or written.

Jan 30 (John Gibson)
    --- The information in the REF files COMPILE and SYSCOMPILE has been
    reorganised and considerably expanded to create 3 new files (which replace
    the former two):

            REF *CHARIO     - Describes character stream input/output
                              procedures (e.g. -discin-, -discout-)

            REF *PROGLIST   - Describes -proglist-, item-reading
                              and macro expansion procedures (like -itemread-)

            REF *POPCOMPILE - A full description of the POP-11 compiler and
                              its associated procedures and variables

       In producing REF POPCOMPILE, it became glaringly obvious just how
    inadequate the existing names of the POP-11 compiler procedures were, both
    in terms of their consistency and their meaningfulness; the occasion of
    documenting this area properly seemed the ideal time to put things right.
        The whole set have therefore been renamed (all beginning "pop11_"),
    in a way that makes sense for REF POPCOMPILE and is consistent with REF
    POPSYNTAX. A complete list of the new procedures and their old equivalents
    is shown below.

              NEW                     OLD

        pop11_comp_stream           syscompile

        pop11_exec_stmnt_seq_to     systxsqcomp_exec

        pop11_comp_stmnt_seq        sysxsqcomp(%true%)
        pop11_comp_stmnt_seq_to     systxsqcomp

        pop11_comp_expr_seq         sysxsqcomp(%false%)
        pop11_comp_expr_seq_to      (no equivalent)

        pop11_comp_expr             sysxcomp
        pop11_comp_expr_to          systxcomp

        pop11_comp_prec_expr        sys_expr_comp

        pop11_EMPTY                 sysDUMMY_PREOP
        pop11_FLUSHED               sysDUMMY

        pop11_comp_constructor      sysstructure
        pop11_comp_declaration      sys_read_vars

        pop11_need_nextitem         sysneed
        pop11_try_nextitem          systry
        pop11_try_nextreaditem      sysnmtry

        pop11_loop_start            sysloop
        pop11_loop_end              sysloopend

    There are also two new variable procedures, -pop11_define_declare- and
    -pop11_define_props-, which are used by -define- respectively to declare
    identifiers, and to supply default -pdprops- values for procedures being
    defined. See REF *POPCOMPILE.

    [N.B. The prefix "pop11_" on the -pdprops- of a procedure in the calling
    chain is now treated by -sysprmishap- like "sys" and "ved", i.e. the call
    is not included in the DOING list unless -popsyscall- is true.]

Jan 29 (Ben Rubinstein)
    --- Bug in -Vedthisfilename-, which was causing <ESC> H to hang
    on an empty line or line tail, fixed.

Jan 29 (John Williams)
    --- Recogniser for single precision decimals, *ISSDECIMAL, added to
    autoloadable library.

Jan 27 (Aaron Sloman)
    --- New autoloadble library procedure (UNIX only) * SYSFILEINODE.
    Given a file name returns the inode number.

Jan 21 (Ben Rubinstein)
    --- Environment variable POPSAVELIB moved to $usepop/pop/lib/psv
    (previously was $usepop/pop/lib).  DOC * SYSSPEC updated.

Jan 19 (John Williams)
    --- New non-autoloadable library LIB *INT_PARAMETERS added. This
    defines constants POP_MAX_INT and POP_MIN_INT denoting the largest
    and smallest simple integers. See REF * NUMBERS for more details.

    --- New autoloadable procedure *CONSUNDEF, for constructing undef
    records, added to the system. Also, HELP * UNDEF updated.

Jan 12 (John Gibson)
    --- The procedure -sys_input_waiting- has replaced -sys_inputon_terminal-
    (the latter remains as an autoloadable synonym). Although
    -sys_input_waiting- can be applied to any kind of device, it is
    particularly intended for use with 'interactive'-type devices (i.e.
    terminals and UNIX pipes/VMS mailboxes) to test whether input is
    available to read. See HELP *SYS_INPUT_WAITING.

    --- A new procedure, -device_os_channel- can be applied to a device record
    to obtain the underlying operating system 'channel' number associated with
    it (an integer). In Unix, this is the file descriptor; in VMS, the channel

Jan 3  (Aled Morris)
    --- -uppertolower- and -lowertoupper- modified to accept words, in
    which case a new word is built from the string resulting from
    applying the case-converter procedure to the given word's string.

Dec 19 (John Gibson)
    --- A bug in sections that caused non-global identifiers associated
    with system words (or words locked into the system with
    -sys_lock_heap-) to be imported into every section, has been fixed,
    from Version 12.4.

    --- A bug which prevented autoloading during compilation of variable
    initialisation expressions has been fixed. (This used occasionally
    to cause spurious syntax errors, e.g. because a macro wasn't

Dec 16 (A. Sloman)
    --- The built in random number generator used by RANDOM is fast but
    does not have a sufficiently uniform distribution for some purposes.
    A slower but statistically superior version is available as
    LIB *NEWRANDOM. Both are described in LIB *RANDOM

    --- Five new non-checking aids to efficiency introduced, one for
    words, two for accessing properties and two for lists. They are
    For details see REF * FASTPROCS

    --- A new VED variable VEDREADINTABS, default FALSE, can be set
    TRUE, to tell VEDREADIN, the procedure that reads in VED files from
    disc, that tabs should be preserved no matter what the value of
    VEDNOTABS is. This gets over the problem that it is too late AFTER
    the file has been read in to override the default for VEDNOTABS.

    If VEDREADINTABS is TRUE, and VEDNOTABS is FALSE, then if the file
    read in contains any tabs at all, then VEDNOTABS will be switched to
    FALSE for that file, so that the tabs are preserved on output.
        (See also HELP * VEDFILETYPES)

Dec 12 (A. Sloman)
    --- HELP files updated:
    --- LIB PIPEOUT changed to avoid using SYSVFORK even on 4.2Bsd
    POPLOG - a source of too many problems

Dec 11 (John Williams)
    --- LIB SUBSYSTEM now copes better with VED immedate mode. Doing
    <ENTER> IM <filename> now runs POP-11 in a '.p' file, Lisp in a
    '.lsp' file, Prolog in a '.pl' file, etc.

Dec 6 (Aaron Sloman)
    --- Some documentation files concerned with the POP-11 itemiser,
    and compilation have been updated, namely

Dec 1 (Aaron Sloman)

    --- LIB *FINGER improved, and TEACH * FINGER clarified. LIB FINGER
    now works interactively in VED.

    --- A new collection of facilities linked to *NEWANYPROPERTY:
    LIB * VIEWS and LIB * CURRENT_VIEW provide utilities for
    manipulating values of objects relative to a context, where contexts
    inherit values from ancestors, documented in TEACH * VIEWS and

    An earlier version has been generalised and speeded up.

Nov 30 (John Williams)
    --- New autoloadable procedure *ISSTARTSTRING defined

    --- Clisp's VED command <ENTER> WIGGLE moved to main autoloadable
    library area. See HELP * VED_WIGGLE

    --- Two new VM instructions 'sysFIELD_VAL' and 'sysUFIELD_VAL'
    introduced. These provide fast access/update to data structure field
    values. See REF * VMCODE/sysFIELD_VAL

Nov 27 (Aaron Sloman)
    --- VED <ENTER> ?? <name1> <name2> ....
    Invokes VED_WHATS to give summary help information on named
    identifiers. See HELP * VED_WHAT

    --- VED <ENTER> ? <name1> <name2> ....
    Invokes VED_WHAT to give very brief help information on named
    identifiers. (Format of call only). If only one name given, then
    prints information on the VED command line. See HELP * VED_WHAT

    --- Moved VEDJUMPTO from library to system. Changed various VED
    system procedures to use it.

Nov 22 (John Williams)
    --- UNIX only. *SYSGETPASSWDENTRY now accepts user-id numbers, as
    well as user names.

Nov 21 (John Gibson)  **** VMS ONLY -- IMPORTANT ****
    --- For compatibility with Unix POPLOG systems, the VMS version of
    SYS_FILE_STAT will, from Version 12.3, return an integer file date
    rather than an ASCII string; regrettably, programs using the
    procedure will therefore have to be changed.  The integer returned
    is a Unix date, i.e. a of number seconds since 00:00 January 1 1970;
    it can be converted to a VMS-format date string with

            sys_file_stat(filename, vector) -> vector;
            sys_convert_date(vector(2), true) -> vector(2)

    will give the behaviour of the old SYS_FILE_STAT.
        Note that similar remarks apply to SYS_FILE_MATCH, which uses

Nov 21 (Aaron Sloman and John Gibson)
    --- Identifiers defined as "active" from POPLOG V12.3

        (*SYSDIRECTORY is defunct, but remains as a library procedure).


        *POP_CALLSTACK_LIM - Size of Procedure Calling Stack
            (Default 90000)


Nov 17 (Aaron Sloman)
    --- <ENTER> cdiff - New VED utility for comparing files character by
    character, but ignoring tabs, spaces, newlines, etc. See
    HELP * CDIFF, *DIFF. (Previously in Sussex local library)

    --- *APPLIST and *MAPLIST now have updaters, described in their
    help files and in REF *LISTS. (Useful with DLOCAL)

    --- HELP *SYSOBEY and *SYSOBEY on VMS were out of date, now
    updated. For full details see REF * SYSUTIL.

    --- Bug fixed in *VEDGETSYSFILE - a previous change had stopped
    it noting the documentation file type in some cases.

    --- VED_INDEXIFY used for creating a table of contents and VED_G
    used for browsing now copes with headings underlined with hyphens.
    See HELP * ENTER_G

Nov 10 (Aaron Sloman - for John Gibson: provisional)
    --- POPLOG VERSION 12.3 New features:
    1. DLOCAL - specifies 'dynamic local expressions' arbitrary
        expressions whose values are to be saved on entry to a procedure
        and restored on exit. This makes it possible to specify 'exit
        actions' for a procedure - actions to be run no matter whether
        the procedure exits normally or abnormally.

    2. Active variables - which run procedures when accessed or updated.
        These are defined using DEFINE ACTIVE or VARS ACTIVE.

    3. Identifier records are now fully supported for use by users; a
        new POP-11 syntax word IDENT will produce the identifier
        associated with a word, and there are new procedures IDVAL,
        IDENTOF, etc for run-time manipulation of identifiers.
        See REF *IDENT.

    4. processes may be constructed in such a way as not to die when
        exited normally.

    --- New/revised REF files:
        REF * IDENT, REF * VMCODE/Dynamic * VMCODE/active
        REF * VMCODE/dlocal * VMCODE/sysLOCAL *VMCODE/dlocal_context

    --- New Help files:
        HELP *LEXICAL summarises lexical identifiers
        HELP *DLOCAL summaries use of Dynamic Local Expressions


Nov 9 (A. Sloman)
    --- HELP * PARAMETERS substantially revised. More nearly complete
    now, along with *POPCOMPPATH, *POPSAVEPATH

    --- HELP *DEFINE totally re-written.

    --- Revised REF files * DATA, * STRINGS, * POPSYNTAX

Nov 5 (A. Sloman)
    --- * PLOGHELP * PLOGTEACH and * PLOGSHOWLIB fixed so that they can
    work with <ESC> h in documentation files, once loaded.

    --- HELP * STANDARDS describes conventions for online documentation
    and library programs

    --- HELP * LOGICAL_KEYS describes logical names for VED keys.

Nov 5 (John Williams)
    --- The variable *POP_PR_RATIOS, formerly provided by a library
    package, has now been incorporated into the POPLOG system core

Nov 5 (Aaron Sloman)
    --- HELP * NEWS truncated to include only new items for POPLOG V.13.
    Older items in HELP * NEWS.V12 and * NEWS.V11

Nov 5 (John Williams)
    --- New hashing procedure * SYSHASH: applied to any POPLOG item it
    returns an integer. Designed for use with * NEWANYPROPERTY to build
    hash tables mapping complex data-structures to values on the basis
    of their contents. Controlled by POP_HASH_LIM

    --- New property constructor * NEWMAPPING introduced, for building
    hash tables mapping structures into values, using SYSHASH and
    * NEWANYPROPERTY with "=" as the equality test.

    --- KEYS extended to include a CLASS_HASH field containing a user
    updatable procedure used by SYSHASH

Nov 1 (Aaron Sloman)
    --- A collection of new utilities for handling mail inside VED has
    been installed on Unix versions of POPLOG.
    LIB * VED_MAIL and LIB *MAIL for reading new mail in VED.
    LIB * VED_SEND a new version with more facilities. See HELP * SEND
    LIB * VED_MDIR, * VED_GM - for building and using an index to a Unix
        file of saved messages. See HELP * VED_MDIR
    LIB * VED_REPLY - for replying to a unix mail message inside VED.
        See HELP * VED_REPLY
    LIB * VED_MCM - Mark Current Message - in a unix mail file.

    LIB * POPHOST has been extended to include a field for the site's
        mail name, pophost(sitemailname) used e.g. by VED_REPLY

    For an OVERVIEW see HELP *SEND, *VED_MAIL (Unix only)

Oct 31 (Kathryn Seifert)
    --- The PROLOG HELP files have been thoroughly revised and updated.

Oct 25 (Aaron Sloman)
    --- VEDALIGNSCREEN altered to ensure that if cursor is near window
    boundary, then window moves horizontally to show some context.

    --- Two new variables enable users to control VED scrolling within
    procedure VEDCHECK (see HELP * VEDPROCS/vedcheck), called by the top
    level VED loop.  The variables are VEDMAXSCROLLHOR VEDMAXSCROLLVERT,
    each capable of having value FALSE, an integer or a procedure.
    If the value is FALSE (the default) or FALSE is returned by the
    procedure then behaviour is as previously. If value is a procedure
    it should return an integer or FALSE when run. The integer value is
    used to control scrolling vs refreshing. If the number of lines of
    vertical scrolling, up or down, required to make the cursor location
    visible is more than the integer value of VEDMAXSCROLLVERT, then
    VEDALIGNSCREEN (see HELP * VEDPROCS) is run instead of scrolling.
    Similarly for horizontal scrolling and VEDMAXSCROLLHOR. If the value
    is FALSE or the procedure returns FALSE then VEDMAXSCROLLVERT
    behaves as if the value were vedwindowlength, and VEDMAXSCROLLHOR as
    if the value were 10.

    If the values are set to 0, then scrolling never occurs. Small
    values are useful for big screens on which scrolling is much slower
    than refreshing the whole screen.

    --- Further cross-references added to various HELP FILES

    TEACH files updated with indexes : *PROLOG *LISTSUMMARY *EXPERTS

Oct 13 (John Williams)
    --- New VM instruction 'sysSWAP' implemented. Plants code to
    interchange two items on the user stack. See REF * VMCODE for more

Oct 12 (Ben Rubinstein)

    --- In response to long-standing requests, VEDENTER and
    VEDREDOCOMMAND are no longer assigned directly to appropriate keys:
    instead they are the default value of two procedure variables,
    "vedenterkey" and "vedredokey", which are mapped to key sequences.
    The VED configuration and library files for which this has been
    done, in addition to the inbuilt configurations for Visual 200 and
    VT100 terminals, are as follows:
        TVI.P   OLDVEDSUN.P  L5000.P    L4004.P  L4000.P  EMACS.P
        BBCVT100.P  BBC.P  VT52.P  V550.P  V55.P  V500.P  TVI925.P

Oct  7 (John Williams)
    --- New library package LIB *RANDOM_STATES added.

Oct  4 (Aaron Sloman)
    --- HELP * NEWANYPROPERTY updated with example using complex keys.


Oct  3 (John Williams)
    --- New library package LIB *BITVECTORS added.

Sept 30 (Aaron Sloman)
    --- LIB * TABIFY and LIB * VED_TABIFY added, to convert spaces to
    tabs in a file, controlled by VEDINDENTSTEP. See HELP * TABIFY

Sept 29 (Kathryn Seifert)
    --- Auto-loadable macros prolog_vars and prolog_lvars added.
    Provides nice syntax for constructing prologvars in POP-11 and
    assigning to VARS or LVARS identifiers.

Sept 21 (Ben Rubinstein)
    --- PWM version 1.4 installed.  New features include mouse tracking
    facilities; raster saving and loading; colour map support; and
    invisible windows, as well as several minor fixes/improvements.

    --- LIB * PWMRASTER added for more convenient handling of
    bit-images, in a (relatively) future proof manner;
    LIB * SUNRASTERFILE added to support these and the PWM filing
    functions; see HELP * PWMRASTERS (for both).

Sept 19 (Ben Rubinstein)
    --- users can no longer accidentally kill a ved PWM window;

    --- a bug under PWM which was manifested by qved'ing to a file
    already being edited is fixed;

    --- the procedure designated for catching input on a user window can
    now be specified by a procedure variable, as well as a procedure;

Sept 18 (Aled Morris)
    --- A new variation on the vectors theme added. See REF * INTVEC for
    details of a new built-in vectorclass (non-full vectors for holding
    signed 32 bit integers) "intvec", and the associated procedures for
    constructing, destructing, and subscripting-into them.

Sept 18 (Ben Rubinstein)
    --- LIB VEDMICE generalised to provide a mechanism for easy user
    recustomisation.  See SHOWLIB * VEDMICE

Sept 17 (Aled Morris)
    --- New procedure for creating vectors with a user-specified default
    slot value.  See HELP * INITVECTORCLASS

Sept 16 (Aaron Sloman)
    --- HELP * VEDGETSYSFILE enlarged to explain browsing mechanisms
        used by <ESC> h, <ESC> n, <ESC> u

    --- <ESC> h (See HELP * VEDGETSYSFILE) generalised to cope with
    names including file extensions. So HELP * INITIAL.EX, and similar
    cross-references should work now.

    --- Procedures for <ESC> n and <ESC> u (vednexthelp and
    vedprevioushelp) now redefine vedchartype locally in case altered
    for LISP etc. This ensures "*" is found. Also bug fixed in
    vedprevioushelp - it did not cope with several asterisks on same
    line. (See HELP * VEDGETSYSFILE)

Sept 9 (Kathryn Seifert)
    --- * PLOGHELP facility extended so that it can accept symbols (e.g.
    "+" and "=..") as arguments.

    --- PLOGTEACH command added. Will access Prolog teach files when
    Prolog not loaded. See HELP * PLOGTEACH.

    --- New VED command <ENTER> PLOGSHOWLIB added. Enables access to
    Prolog library files irrespective of whether Prolog is loaded. See
    HELP * PLOGSHOWLIB for details

Sept 5 (Aaron Sloman)
    --- The procedure VEDNOGRAPHICS had been defined to compile a
    library file 'vednographics.p'. However the library file was called
    'vednographic.p'. The procedure has been changed.

    --- CANCEL had been redefined to check for protected words. As a
    result some use of CANCEL in libraries stopped working, e.g.
    LIB * TVI925 and LIB * VEDWYSE - now fixed.

Aug 31 (Aaron Sloman)
    --- TRACE facilities in POP-11 generalised to facilitate
    user-defined variants, and to enable the mechanism to be used
    for user-defined langauges.
    POPTRACEINDENT is a variable with integer variable representing
      current depth of tracing.
    SYSTRACE_PROC is a user-definable procedure called by SYSTRACE to
      effect trace printing.
    SYSTRACE_PR is a user-defineable procedure that does the "before"
    and "after" printing. It is called by the default SYSTRACE_PROC
    If TRACING has the value 1, the syntax words can be traced.

    See HELP * TRACE (now much expanded) for details

    BUGS in TRACE fixed: updaters of traced procedures work properly now.

Aug 26 (Aled Morris)
    --- New version of VED_WHAT installed - now covers most POP-11
    procedures. See HELP * VED_WHAT for details

Aug 24 (John Gibson)
    --- A serious bug in VAX Version 12 POPLOGs has been uncovered and
    fixed. The bug caused references to -lvars- operands after the 32nd
    lvar in a procedure to be compiled incorrectly, leading to garbage
    results and memory corruption.

Aug 22 (Aaron Sloman) UNIX ONLY
    --- VED_IMCSH and related facilities for communicating with CSHELL
    process via a pipe made available in Unix SystemV POPLOG as well as
    Berkeley Unix POPLOG, since /bin/csh is often available.
        (See HELP * IMCSH and HELP * CSH_COMPILE for details)

    --- Added versions that work with /bin/sh instead of /bin/csh
    See: HELP * IMSH (Immediate Mode SHELL in VED) HELP * CSH_COMPILE

Aug 20 (Ben Rubinstein)
    --- Large line numbers (> 9999) on VED Command line no longer cause

Aug 20 (Aaron Sloman)
    --- HELP files expanded/updated: *KEYS, *CLASSES, *CONSKEY

    --- LIB * FINDJUNCS (demonstration program) optimised and
    generalised as described in comments in the file.

    --- HELP * ECHOLOAD updated

Aug 13 (John Williams)
    --- POPLOG Version 12.2 released internally, with the features
    described below.

Aug 13 (Aled Morris)
    --- Some enhancements to the 'external load' facilities have been
    added, making it easier to receive floating point results from
    external procedure calls. See REF * EXTERNAL for more details

Aug 10 (Aaron Sloman)
    --- UNIX ONLY: * SYSGETPASSWDENTRY is a procedure for
    interrogating the entry in the password file corresponding to a
    user's login name has been generalised. For full details see the
    help file, now updated.

    --- LIB * SYSGETUSERNAME now uses this. On SUNS it should now work
    with YP-network software.

    --- HELP * POPPROCS updated

Aug  8 (Aaron Sloman)
    --- VMS only: a facility previously available in experimental
    undocumented library files now has a help file HELP * DCL_COMPILE
    The procedures described therein enable DCL commands to be given
    interactively in a VED window, with the results spliced back into
    the file. This is analogous to the IMCSH facility available on UNIX
    POPLOG systems.

Aug  7 (Aled Morris)
    --- New version of -ved_hkey- installed, see HELP *VED_HKEY.  It has
    been improved to use the updated -ved_what- documentation of VED
    procedures. Old -ved_helpkey- has been removed.

Aug  6 (John Williams)
    --- A VED command line textual substitution facility, previously
    only available at Sussex (as LIB VEDEXPAND) has now been built into
    POPLOG. See TEACH *VEDEXPAND for details.

Aug  4 (John Williams)
    --- The old Lisp system provided by LIB LISP and associated files
    has been removed from POPLOG. This should not affect Common Lisp

July 31 (John Williams)
    --- Bug in Prolog that made it impossible to load LIB PROLOG while
    running Common Lisp is now fixed.

July 30 (Aled Morris)
    --- The redundant VED library file 'buffers.p' has been removed.
    It was superceded by VEDFILESELECT.

July 27 (Aaron Sloman)
    --- LIB VED_VCALC (VED-based spreadsheet program) re-implemented,
    generalised, made more efficient. Help file HELP * VCALC rewritten.

    --- HELP files clarified and/or updated:
    HELP * WORDS  * SYNTAX  * ITEM_CHARTYPE (now mentions item_newtype)

July 24 (John Williams)
    --- New equality operator ==# added. It returns true if its
    arguments are identical, or are two numbers of the same type and
    value. See REF * NUMBERS for more details. HELP * SYSWORDS updated.

July 20 (Aaron Sloman)
    --- HELP * VEDFILETYPES considerably expanded. Other HELP FILES

    --- HELP * VEDVARS updated with information about variables
    associated with each VED file.

July 16 (Aaron Sloman)

    --- REF * FLAVOURS (by Mark Rubinstein) describes the implementation
    of the FLAVOURS package

    --- REF * POPSYNTAX has been substantially corrected and updated.

July 16 (Richard Bignell)
    --- LIB FACETS slightly modified to allow flavours to be loaded in
    conjunction with it. Action was sysunprotect("self").

July 10 (Aaron Sloman)
    --- previous bugfix in VED caused problem when inserting a character
    in long line in 'break' mode. After automatic line break, new
    character was inserted in the wrong place. Now fixed.

July 8 (John Williams)
    --- Common Lisp Version 0.94 installed. See HELP * LISPNEWS for more

July 2 (John Gibson)
    --- Version 12.1 has an improved garbage collector (20-30% faster), which
    also fixes the long-standing bug to do with deeply-nested structures. The
    symptoms of this bug were that in trying to trace a deeply-nested
    structure, e.g. as produced by

                repeat conspair(x, x) -> x endrepeat,

    the garbage collector fell foul of the Unix-imposed stack limit, and
    crashed with an 'Illegal Instruction' error (or something similar). It
    now uses only a bounded amount of control stack space, so this will no
    longer happen.

June 22 (Aaron Sloman)
    --- Various documentation files updated or improved, and references
    to SOURCEFILE removed, since system sources are no longer
    distributed. Files changed: *LOOPS *NEXTLOOP *QUITIF *QUITUNLESS



June 13 (Aaron Sloman)
    --- Bug in LIB * OUTCHARITEM fixed. A previous edit had stopped it

June 12 (Mark Rubinstein)
    --- LIB * MATRIX tidied up and the name of the procedure "boundslist"
    has been changed to "bounds_list" to prevent clash with the system

June 11 (Aaron Sloman)
    --- FOR ... ENDFOR extended to allow simultaneous iteration over
    several lists and iteration over structures. New forms allowed:

    for V1 V2 ... Vn in L1, L2,...,Ln do <actions> endfor

    for V1 V2 ... Vn on L1, L2,...,Ln do <actions> endfor

    for <variable> in <structure> using_subscriptor <procedure> do

    See HELP * FOR

    --- FAST_FOR built into the core system. No longer a library utility.

June 10 (Mark Rubinstein)
    --- Further changes to LIB FLAVOURS.  See HELP * FLAVOUR_NEWS for

June 9 (John Williams)
    --- The POP2 utility LIB GOON has been moved into LIB POP2.

June 2 (Mark Rubinstein)
    --- Two changes to LIB FLAVOURS.  See HELP * FLAVOUR_NEWS for details.

May 30 (John Williams)
    --- The procedures *ALLBUTFIRST and *ALLBUTLAST have been extended to
    cope with arguments of any vector type.

    --- New improved versions of *UPPERTOLOWER and *LOWERTOUPPER, that
    work on strings as well as ASCII codes. See the HELP files for more

May 28 (John Williams)
    --- New variable CUCHARTRACE introduced. If non FALSE, its value
    should be a character consumer procedure, to which trace output is
    sent. See HELP *CUCHARTRACE for more details.

    --- Some ancient and now redundant VED utilities have been

         VED_CCP         (same as VED_LCP)
         VED_CMR         (same as VED_LMR)
         VED_LP          (same as VED_LCP)

    The variables VEDDOITFILE and VEDDOITLIMIT, which in fact had no
    effect on anything whatsoever, have also been withdrawn.

May 27 (Aaron Sloman)
    --- * COPYDATA revised to cope with large numbers, prologvars
    and single-level circularity. HELP file updated.

    --- VED_TIDY, VED_JCP and related procedures now able to cope with
    words like "global" and "constant", and "procedure" in procedure
    headers. More fully documented in HELP * MARK.

    --- VEDVARSKEYWORDS, used by VED_TIDY made available to users,
    initial value [lvars dlvars vars lconstant constant global]

    --- Updated files * VEDVARS,  * VEDCOMMS, * MARK

May 21 (Aaron Sloman)
    --- VEDFILETYPES is a new facility for initialising VED files,
    by specifying "condition-action" rules. This supplements

May 20 (Aaron Sloman)
    --- Bug in VED character insertion with VEDLEFTMARGIN > 0, which
    used to cause looping, now fixed by Colin Shearer.

    --- VEDPATHNAME this new variable asscotiated with each VED file
    holds the full pathname for the file.

    --- VEDEDITOR and VEDGETFILE have been generalised so that instead
    of a string they can take a VED file structure as second argument,
    e.g. the result of VEDOPEN. See HELP * VEDPROCS

   --- RECURSIVE_VALOF - this new procedure can take a word and
   recursively gets its VALOF, until the VALOF is not a word.
   See HELP * POPPROCS /recursive_valof

May 15 (Mark Rubinstein)
    --- An enhanced version of LIB SHOWTREE, for printing tree
    structures into the editor buffer, has been installed.
    Please see HELP * SHOWTREE for differences.

    --- LIB SEETREE provides an interface to SHOWTREE.

May 13 (Mark Rubinstein)
    --- LIB GRAPHCHARSETUP now effectively exports the variable
    -grapcharsetupdone- and the procedure -Grapcharsetup-.
    There is a new user assignable procedure -graphcharsetuptrap-.

    --- LIB DRAWLINE and LIB RUBOUT, previously local libraries, now
    made public.  See HELP * DRAWLINE.

May 11 (John Gibson)
    --- A VED bug that caused a text line to be split in the wrong way
    when inserting a character in the middle of the line with the left
    margin other than 0 is now fixed.

May  7 (Mark Rubinstein)
    --- UNIX ONLY.  LIB VEDEMACS is a new library which modifies the
    terminal and VED's key mappings to simulate the UNIX EMACS editor.

May  4 (Aaron Sloman)
    --- Maximum number of status-line commands recorded by VED increased
    to 60.

    --- Errors or interrupts in VED invoking SETPOP used occasionally to
    upset cursor behaviour on command line, and could confuse command
    file with ordinary VED buffer. Now fixed by extra checks on re-entry
    to VED.

    --- LIB * ASSOC made faster, and now removes entries assigned the
    value FALSE

    --- <ENTER> IMCSH, <ENTER> CSHFILE, can have optional file name.

    --- HELP files updated:

May 1 (Mark Rubinstein)
    --- VMS SYSTEMS.  A restriction on the maximum length of the line of
    arguments that is read into POPARGLIST when invoking poplog has been
    expanded from 128 characters to 256.  There is no such restriction
    on UNIX systems.

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

--- C.all/help/news.v13 ------------------------------------------------
--- Copyright University of Sussex 1987. All rights reserved. ----------