HELP V13.CHANGES                                       A.Sloman Aug 1987


This file lists major changes for POPLOG Version 13. HELP * NEWS.V13 has
the information in chronological order. This file uses a more structured
organisation. HELP * LISPNEWS and HELP * PLOGNEWS provide details for
Prolog and Common Lisp.

For more recent CHANGES see HELP * NEWS

CONTENTS

 --  Overview of changes
 --  Run-time or "delivery" mechanism
 --  Mixed language programming
 --  The POPLOG environment
 --  Documentation
 --  New, extended or modified POP-11 facilities
 --  Mishaps
 --  New Virtual Machine facilities
 --  Access to the operating system
 --  VMS only
 --  UNIX only
 --  The editor, VED
 --  Libraries
 --  New or substantially modified identifiers or words in system
 --  Withdrawn words or identifiers
 --  BUGS

NOTE ON FILENAMES:
In some of the examples below, UNIX file name format is used. VMS users
should do the corresponding translation. E.g.

        UNIX version                    VMS version
        ------------                    -----------
   $usepop/pop/lib/psv/eliza.psv    USEPOP:[POP.LIB.PSV]ELIZA.PSV
   $usepop/pop/com/poplog           USEPOP:[POP.COM]POPLOG.COM

The addition of ".COM" is required only for command files. Apart
from this, the UNIX format may be used in VMS POPLOG programs. They will
automatically be translated. See the section on "File Specifications" in
DOC * SYSSPEC


Overview of changes
-------------------
1.POPLOG Common Lisp is now complete (as defined by the Steele manual),
and has been speeded up and provided with an improved "break" package.
For further information about Common Lisp enhancements,
    see HELP * LISPNEWS

2. As threatened in V12, the old Lisp system, LIB LISP, has been removed.

3. The Prolog parser and compiler have been substantially re-written
with resulting improvements in performance and robustness. Programs
using very large numbers of unit clauses will consume far less space.
The VED interface for Prolog users has been improved.
See HELP * PLOGNEWS

4. POP-11 has several new features including "dynamic local
expressions", active variables, better access to identifiers, extensions
to the class mechanism, a generalised hashing facility, and user
modifiable procedure calling stack size. These items are described more
fully below.

5. There has been a massive overhaul of online documentation. The REF
files have been reorganised and now provide a complete description of
the main facilities in POP-11 and the Poplog virtual machine. See
 REF * REFFILES

6. The Poplog window manager (PWM) has been totally revised, with a host
of new facilities, on SUN workstations. It can be used remotely, i.e. to
drive the screen on a workstation connected to POPLOG running on a more
powerful remote machine. New features include mouse tracking facilities;
raster saving and loading; colour map support; invisible windows; more
convenient handling of bit-images. We apologise to users who built
software on the rapidly produced temporary window manager supplied with
version 12 and who now will need to convert their programs.
 See HELP * PWM  DOC * PWM

For other workstations (HP, Apollo, VAXstation) modified versions of the
PWM will be available.

For version 14 it is likely that POPLOG will follow many other hardware
and software systems and convert to X-windows, in order to be machine
independent. As far as possible software built using the version 13 PWM
will be supported with minor changes.

7. The "EXTERNAL_LOAD" interface, for linking in programs in (e.g.) C and
Fortran, including NAG libraries, has been much improved.
See HELP * EXTERNAL

8. New printed user manuals and a Poplog administrator's guide have been
produced by Systems Designers.


Run-time or "delivery" mechanism
--------------------------------

POPLOG V.13 includes the first of a planned series of "delivery"
systems, making it possible for POPLOG-based products to run in a saved
image with a "run-time" licence.

If you plan to create a product based on POPLOG and wish to use the new
mechanism you need to create a saved image. It can then be distributed
with a special Poplog image that will only run a saved image. End users
then receive only this image, your saved image, and any additional files
used by your system. They therefore do not need a full POPLOG licence.

For further details please consult your supplier.


Mixed language programming
--------------------------
1. Some new facilities for mixed language programming have been added.

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

See HELP * PLOG_GOALS, HELP * PLOGINPOP, PLOGHELP * LISPINPLOG and
the Lisp HELP file PROLOG.


The POPLOG environment
----------------------
1. In order to provide more flexibility in setting up saved images and
supporting different groups of local libraries the environment
variables used by Poplog have been altered slightly and $poplocal
introduced as explained below.
 See DOC * SYSSPEC for an overview of the POPLOG directories and
HELP * INITIAL, *INITIALISATION for information on setting up the user
environment.

2. The environment variable $poplocal is defined to locate the base
of the local directory tree. This allows the local tree to be outside
the main POPLOG tree. Local directories should then be sub-directories
of $poplocal/local (or on VMS POPLOCAL:[LOCAL]).

In order to maintain compatibility with earlier POPLOG systems, the
default value for $poplocal is $usepop/pop in UNIX and USEPOP:[POP] in
VMS. This default is assigned in $usepop/pop/com/poplog
(USEPOP:[POP.COM]POPLOG.COM on VMS) if a value has not already been
assigned to it. So to override the default simply assign an alternative
value in the login file at the same time as defining $usepop. (On
Berkeley Unix the login file is .login, on System V Unix it is .profile,
and on VMS it is LOGIN.COM).
 See DOC * SYSSPEC and HELP * INITIAL

3. The default value of environment variable $popsavelib is now
$usepop/pop/lib/psv in UNIX and USEPOP:[POP.LIB.PSV] in VMS (it was
previously $usepop/pop/lib). Locally generated saved images should no
longer be stored in $usepop/pop/lib. The best place for them is in
$poplocalbin, which defaults to $poplocal/local/bin. For more on this
see HELP * INITIAL


Documentation
-------------

1. Documentation for all three languages has been considerably improved
and extended. There are very many new HELP and REF files, including a
REF file describing support in the virtual machine for Prolog.

2. HELP * DOCUMENTATION gives an overview of the various means
of accessing online documentation.

3. HELP * INITIALISATION gives a much improved account of how individual
users can tailor the POPLOG environment.

4. A new online HELP facility using the commands <ENTER> ? and <ENTER ??
is available in the editor, for rapidly accessing information about
procedures and global variables. (Not yet for LISP or PROLOG)

    <ENTER> ?? <name1> <name2> ....

gives summary help information on named identifiers in a temporary VED
buffer.

    <ENTER> ? <name1> <name2> ....

gives very brief help information on named identifiers. (Format of
procedure calls only). If only one name is given, then it prints
information on the VED command line.

Because of problems of file names containing "?" VED_WHAT is used in
documentation as a synonym for VED_? and VED_WHATS for VED_??

See HELP * VED_WHAT


5. A new version of VEDSYSFILE causes the commands using it, i.e.
HELP, TEACH, REF, DOC and SHOWLIB to default to use the *VED_?
mechanism. So the HELP command will return information in many more
instances than it did previously. See HELP *NEWVEDSYSFILE.

6. There are online versions of the new VED Userguide and the Poplog
administrator's guide. See DOC * DOCFILES

7. Suggestions for standards for online documentation produced by
users for libraries, etc. are given in
 HELP * STANDARDS, HELP * LOGICAL_KEYS

8. The file HELP * ENTER_G describes commands for creating and using
indexes in online documentation files.

9. The following files provide 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,
    *INITIALISATION, *IO, *LISTS, *POP, *PROGRAMMING, *VED,
    *PWMFILES

    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

10. HELP * EFFICIENCY has been expanded. It includes advice on avoiding
garbage collections caused by unwittingly producing ratios when dividing
integers using "/".

11. The main Poplog REF files in $usepop/pop/ref/ have been completely
overhauled, and from Version 14 will provide the basis for the HELP
mechanism.

REF COMPILE and REF SYSCOMPILE have been replaced by:

  REF *CHARIO     - character stream input/output procedures
  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

REF * NUMBERS gives a complete account of arithmetic facilities in
POPLOG.

Major new features are described in REF * VMCODE, REF * IDENT,
REF * INTVEC

REF * POPSYNTAX has been completely overhauled and now gives a complete
account of the syntax of POP-11.

See REF * REFFILES for an overview of the REF files.


12. 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.

13. Several introductory TEACH files have been improved. See HELP NEWS
for details.


New, extended or modified POP-11 facilities
-------------------------------------------

1. Processes may be constructed in such a way as not to die when
exited normally. See REF * PROCESS

2. The POP-11 compiler procedures have been re-named in a more meaningful
and consistent fashion (all beginning "pop11_"),
              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

 See REF *POPCOMPILE.

3. There are two new user definable procedures used by the compiler,
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.

The two variables * POPDEFINECONSTANT and * POPDEFINEPROCEDURE are
now local to the compiler, and interpreted by the procedure
POP11_DEFINE_DECLARE.
 See: HELP * POPDEFINECONSTANT  HELP * POPDEFINEPROCEDURE
 REF * POPCOMPILE
 REF * POPCOMPILE/pop11_define_declare

3. New facilities are provided for building generalised associations
between POPLOG objects, dependent on their contents rather than their
identity (i.e. address in the machine). These are based on SYSHASH

SYSHASH takes an item and produces a hash code for that item that
depends on its structure and contents. It has a default mode of
operation that can be modified by users for particular data types, since
KEYS and classes have been extended to include a CLASS_HASH field
containing a user updatable procedure used by SYSHASH.
 See HELP * SYSHASH  HELP * CLASSES   REF * KEYS

4. NEWMAPPING uses SYSHASH and * NEWANYPROPERTY to create an association
between structured objects and other objects. Thus two lists with the
same contents will be mapped on to the same thing. (This is not true of
* NEWPROPERTY, which ignores contents of datastructures.) LIB VIEWS
described below illustrates an application of these mechanisms.
 See HELP * NEWMAPPING

5. Several new "fast_" procedures have been provided, to avoid run-time
checking. These include fast procedures for accessing property elements.
 See REF * FASTPROCS and HELP * EFFICIENCY.

6. Formatted printing is facilitated by PR_FIELD, which gives a simple
way of printing any item in a fixed length field, either left-justified,
right-justified or centred.
 See REF *PRINT.

7. The POP-11 syntax for iteration has been extended, including provision
for simultaneous iteration over several lists, e.g.

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

and iteration over a structure, e.g.

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

See HELP * FOR

The "fast" non-checking version of FOR is now built into the system.


8. TRACE facilities in POP-11 have been generalised to facilitate
user-defined variants, and to enable the mechanism to be used for
user-defined languages:

    POPTRACEINDENT is a 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" trace printing. called by the default SYSTRACE_PROC

    If TRACING has the value 1, then syntax words can be traced.

    Updaters of traced procedures work properly now.

    The variable * CUCHARTRACE if non-false allows trace printing to go
    to a different character consumer from normal printing.

See HELP * TRACE (now much expanded) for details

9. NEW string procedures have been added, to complete the following
family:
    ISSTARTSTRING,  ISSUBSTRING,  ISENDSTRING,
    HASSTARTSTRING, 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.

10. Updaters for multi-valued structure accessors.

The procedures 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

The updater of EXPLODE therefore works like * FILL except that the
latter treats lists as pairs.

*APPLIST and *MAPLIST also have updaters, described in their help files
and in REF *LISTS.

These updaters are useful in connection with "dynamic local
expressions", described in the section on new virtual machine facilities
below. E.g. the value of "explode(list)" can be saved on entry to a
procedure and restored on exit.

11. FILL, MAPDATA and NCMAPDATA now work on all structures for which
APPDATA does.

12. The random number generator previously built into the system was
flawed and has been improved considerably. See HELP * RANDOM.

13. New datatype added: signed integer vectors
See REF * INTVEC

14. * UPPERTOLOWER and * LOWERTOUPPER now can be used with words or
strings as well as characters.

15. A new infix arithmetic operator is provided: ==#

    X ==# Y
Is true if X is identical to Y; or if X and Y are numbers of the same
representational type and numeric value.


Mishaps
-------
New features in 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.

3. 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.


New Virtual Machine facilities
------------------------------

1. Active identifiers - which run procedures when accessed or updated,
and allow a variable to store multiple values, are described in
HELP * ACTIVE, REF * IDENT and REF * VMCODE

The following are now active identifiers.
    * CURRENT_SECTION

    * CURRENT_DIRECTORY (* SYSDIRECTORY is defunct - defined in library)

    * POP_CALLSTACK_LIM - size of procedure calling stack
        (Default 90000)

    * POPDEVERR * POPDEVIN * POPDEVOUT * POPDEVRAW

DLOCAL_PROCESS, DLOCAL_CONTEXT are active variables used in
conjunction with dynamic local expressions. (See below.)

2. POPLOG now supports 'dynamic local expressions': arbitrary
expressions whose values are to be saved on entry to a procedure and
restored on exit. A new syntax word DLOCAL is used for this.

This facility makes it possible to specify 'exit actions' for a
procedure - actions to be run no matter whether the procedure exits
normally or abnormally. This is analogous to UNWIND-PROTECT in Common
Lisp, but is more general.

The mechanism also allows actions to be performed whenever a process is
run or resumed, or whenever it is suspended. This now makes it possible
for a process to ensure that its environment is set correctly whenever
it runs, and that the previous environment is restored whenever it is
suspended (or another process resumed). (See REF * PROCESS for details
of the process mechanism.)

For example a process that runs Prolog might ensure that it does it
inside a particular section. So different Poplog processes could run
Prolog with different databases.

HELP * DLOCAL gives a brief introduction to the new mechanism.
HELP * ACTIVE_VARIABLES includes examples using "active" identifiers.
REF * VMCODE describes the mechanism more fully.

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. A new VM instruction is provided: 'sysSWAP'. It plants code to
interchange two items on the user stack. See REF * VMCODE

5. Two new VM instructions sysFIELD_VAL and sysUFIELD_VAL provide
fast access/update to data structure field values - i.e. avoiding
run-time type checking.
 See REF * VMCODE/sysFIELD_VAL


Access to the operating system
------------------------------
Access to the Operating System has been improved. The new procedures are
defined as POP-11 procedures but can be invoked from LISP or PROLOG in
the usual way.

The procedure SYS_INPUT_WAITING generalises SYS_INPUTON_TERMINAL
(the latter remains as an autoloadable synonym). SYS_INPUT_WAITING can
be applied to any kind of device, but 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 number.

SYSMODTIME gives the time of last modification of a file.
See HELP * SYSMODTIME

For an overview see REF * SYSUTIL and REF * SYSIO


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 details):

Shareable Images are now fully handled, either when explicitly specified
in the EXTERNAL_LOAD input file list or when implicitly extracted from
a shareable image library.

The processing of EXTERNAL_LOAD Input File List is summarised in HELP *
NEWS and described fully in REF * EXTERNAL. The list of strings
specifying the input files to EXTERNAL_LOAD may now also include VMS
linker command qualifiers.

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. External
procedures can now allocate memory freely, and the user need make no
prior provision for this. (This facility will be extended to UNIX
for V.14).

Saved images using VMS shareable images now work.

For compatibility with Unix POPLOG systems, the VMS version of
SYS_FILE_STAT returns 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_CONVERT_DATE. So that

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

gives the behaviour of the old SYS_FILE_STAT.

Note that similar remarks apply to SYS_FILE_MATCH, which uses
SYS_FILE_STAT.

See HELP * DCL_COMPILE for a new facility.

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.


UNIX only
---------
The Virtual fork mechanism in Berkeley Unix has been found to be
unreliable. SYSVFORK should no longer be used. Instead use SYSFORK.
See HELP * SYSFORK

SYSGETPASSWDENTRY is a procedure for interrogating the entry in the
password file corresponding to a user's login name or user-id
(integer)

Extended VED-based front end for Unix mail. HELP * VED_MAIL

VED_IMCSH and related facilities for communicating with a CSHELL process
via a pipe or via VED (using immediate mode) are now made available in
Unix SystemV POPLOG as well as Berkeley Unix POPLOG, since /bin/csh is
often available in System V.
 HELP * IMCSH  * CSH_COMPILE  * IMSH

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'.
 See HELP * POP_FILE_MODE

A new autoloadble library procedure * SYSFILEINODE when given a file
name returns the inode number.

(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 inadequate.)


The editor, VED
---------------
This has many minor enhancements. Search for "VED" in HELP * NEWS.

1. HELP *IM explains how to use "immediate mode" in VED to interact with
your programme.

2. VEDSEARCHLIST is a variable whose value should be [] or a list of
directories. If it is a list of directories the VED command will search
in those directories for the file given, just as HELP searches a list
of directories.

3. LIB SUBSYSTEM now copes better with VED immediate mode. Doing
    <ENTER> IM <filename>
now runs POP-11 in a '.p' file, Lisp in a '.lsp' file, Prolog in a '.pl'
file, etc.
See HELP *IM

4. Online browsing facilities have been extended. HELP * VEDGETSYSFILE
is enlarged to explain browsing mechanisms used by <ESC> h, <ESC> n,
<ESC> u

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

6. <ENTER> cdiff
A new VED utility for comparing files character by character, but
ignoring tabs, spaces, newlines, etc. See HELP * CDIFF, *DIFF.

7. LIB VEDBLOCKS makes available a family of VED ENTER commands for
manipulating blocks of text, e.g. inserting, deleting, copying, moving
or blanking out rectangular text blocks.
 See HELP * VEDBLOCKS

8. There is a much improved EMACS emulation in the editor library.
 See HELP * VEDEMACS

9. The VED variable VEDPATHNAME associated with each VED file holds the
full pathname for the file. By contrast VEDCURRENT holds only the name
that was given as an argument to VED.

10. TEACH * VEDEXPAND explains a facility for textual substitution in the
VED command line.

11. 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

12. SHOWTREE has been enhanced, and supplemented with SEETREE
 HELP * SHOWTREE, * SEETREE

13. VEDFILETYPES is a user-assignable list of condition-action rules that
simplifies the specification of different defaults for different kinds
of files.
 See HELP * VEDFILETYPES

14. VEDFILESELECT is a procedure allowing rapid selection of files from
VEDBUFFERLIST.
 HELP * VEDFILESELECT

15. 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.

16. <ENTER> WIGGLE can be used to tell VED to wiggle on pairs of opening
and closing brackets. See HELP * VED_WIGGLE

17. Two new variables VEDMAXSCROLLHOR VEDMAXSCROLLVERT, each capable of
having value FALSE, an integer or a procedure control scrolling in VED.
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 the screen is
refreshed instead of scrolled. Similarly for horizontal scrolling and
VEDMAXSCROLLHOR. 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.

18. VEDREADINTABS
This new VED variable , 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.


Libraries
---------
1. The FLAVOURS system has been extended and with new documentation and
a REF file added. Note that the FLAVOURS system is provided for user
convenience, but is not supported.
 See HELP * FLAVOUR_NEWS, TEACH * FLAVOURS, REF * FLAVOURS.

2. Various facilities originally left in POP-11 to support POP2 users
have been moved to LIB POP2 See HELP * POP2

3. NEWANYPROPERTY is the basis of a demonstration library showing how to
implement a "viewpoint" mechanism in POP-11.
 See TEACH * VIEWS and HELP *VIEWS.

4. LIB NEWRANDOM gives a slower but statistically more sophisticated
random generator than RANDOM, the one built in to the system. See HELP *
RANDOM

5. New library package LIB *RANDOM_STATES added.
See HELP * RANDOM_STATES

6. New library package LIB BITVECTORS added.
 See HELP * BITVECTORS

7. LIB * POPHOST has been extended to include a field for the site's
mail name, pophost(sitemailname) used e.g. by VED_REPLY
N.B. the followin file should be edited by the system manager for
each site:

    $usepop/pop/lib/auto/pophost.p
or on VMS:
    USEPOP:[POP.LIB.AUTO]POPHOST.P


8. LIB *INT_PARAMETERS defines constants POP_MAX_INT and POP_MIN_INT
denoting the largest and smallest simple integers. See REF * NUMBERS

9. CONSUNDEF is a new procedure for constructing undef records.
See HELP * UNDEF

10. LIB * LOGIC (for teaching elementary propositional logic) has been
made to work again. See HELP * LOGIC. A command file for creating a
saved image MKLOGIC (MKLOGIC.COM on VMS) has been provided in
the $popcom directory.

Note: libraries can be explored in sub-directories of

    $usepop/pop/lib

See DOC * SYSSPEC


New or substantially modified identifiers or words in system
------------------------------------------------------------
NB. Some of these are words used by system procedures but do not
    correspond to identifiers.
    Many (e.g. words beginning with "Lisp_") are system identifiers of
    no use to users. Information on those which are can be found by
    putting the VED cursor to the left of the word and giving the
    command:  <ENTER> ??

==#
Cons_rt_idents
Lisp_catch
Lisp_setstacklength
Lisp_symbol_function_token
Lisp_symbol_value_token
Lisp_throw
actions
allbutfirst
allbutlast
array
base
byte_struc
character
checkinteger
checkpwmcmsid
checkpwmcursid
checkpwmfontid
checkpwmmenuid
checkpwmsurfid
checkpwmuserwin
checkpwmwinid
class_hash
closed
consident
consintvec
copydata
cuchartrace
current_directory
datastructure
destintvec
device_os_channel
dlocal_context
dlocal_process
elevator
fast_get_prop_entry
fast_idval
fast_kill_prop_entry
fast_lmember
fast_prop_entry_value
fast_subscrw
field_specifier
filename
getpwmreport
gfx
identof
idval
initintvec
initvectorclass
input
integral
isactive
isarray_by_row
isdlocal
isident
isintvec
ispwm_id
issdecimal
issection
label
lex
lextoken
mousexit
move
newmapping
nonactive_idval
nonactive_valof
number
open
opened
pas_FIELD_VAL
pas_LEX_CLOSURE
pas_NL_GOTO
pas_NO_OP
pas_SWAP
pas_UFIELD_VAL
pas_UPASSIGN
pas_declare_perm
pas_ident_token
pattern
perm
ploghelp
plogshowlib
plogteach
pop11_EMPTY
pop11_FLUSHED
pop11_comp_constructor
pop11_comp_declaration
pop11_comp_expr
pop11_comp_expr_seq
pop11_comp_expr_seq_to
pop11_comp_expr_to
pop11_comp_prec_expr
pop11_comp_stmnt_seq
pop11_comp_stmnt_seq_to
pop11_comp_stream
pop11_define_declare
pop11_define_props
pop11_exec_stmnt_seq_to
pop11_forloop_test
pop11_loop_end
pop11_loop_start
pop11_need_nextitem
pop11_try_nextitem
pop11_try_nextreaditem
pop_callstack_lim
pop_enable_interrupts
pop_hash_lim
pop_mishap_doing_lim
pop_pr_ratios
poptraceindent
pr_field
press
proglist_macro_pair
prolog_lvars
prolog_vars
pwm_close_window
pwm_gfxkillfont
pwm_gfxkillpage
pwm_icon_label
pwm_id
pwm_killcursor
pwm_killmenu
pwm_open_window
pwm_win_internalsize
pwm_win_openstate
pwm_window_label
pwm_windowheight
pwm_windowwidth
pwmalwaysflush
pwmensureprompt
pwmeventhandler
pwmflushmessage
pwmgfxcursor
pwmgfxsurface
pwmgotreport
pwmidinfo
pwmnewcmsid
pwmnewcursorid
pwmnewfontid
pwmnewinputsource
pwmnewmenuid
pwmnewpageid
pwmnxtwin
pwmquitwindow
pwmsendmessage
pwmstdcursor
pwmstdfont
pwmsun_gfxkillcms
pwmtextwindow
pwmtxtcursor
pwmuserwinevent
pwmwaitinevent
pwmwindowscan
quitrequest
readstringline
recursive_valof
reference
release
resized
sequence
set_global_valof
set_process_entry_term
structure
subscrintvec
sysFIELD_VAL
sysIDENT
sysPLOG_ARG_PUSH
sysSWAP
sysUFIELD_VAL
sys_current_ident
sys_grbg_destpair
sys_grbg_list
sys_input_waiting
syshash
syshash
systrace_pr
systrace_proc
tabify
text
tracing
tryunderpwm
vax
vectorclass
ved_?
ved_??
ved_do_what
ved_file_structure
vedcheckwinresized
vedenterkey
vedjumpto
vedmaxscrollhor
vedmaxscrollvert
vedmousetrap
vednographics
vedpathname
vedpwmdefaultheight
vedpwmdefaultwidth
vedpwmmousetraps
vedpwmscreenxy
vedreadintabs
vedredokey
vedredokey
vedrefreshstatus
vedvarskeywords
vedvt52screenxy
vedwinresized


Withdrawn words or identifiers
------------------------------

apppwmwindows  - Replaced by pwmwindowscan
pas_UPOP
pas_apply
pas_syntax
poppwmwindows
pwm
pwm_closewindow
pwm_currentmenu
pwm_handleinputevent
pwm_icon_title
pwm_invokemenu
pwm_makememwin
pwm_makemenu
pwm_newinputsource
pwm_normalcursor
pwm_openwindow
pwm_select
pwm_textcursor
pwm_win_charsize
pwm_window_title
pwmmousequitbase
pwmmousequitved
pwmreadsequence
pwmreportinput
sysDUMMY
sysDUMMY_PREOP
sysFORtest
sys_expr_comp
sys_expr_comp
sys_inputon_terminal
sys_read_vars
sys_read_vars
syscompile
syscompile
sysdirectory
sysloop
sysloopend
sysneed
sysnmtry
sysstructure
systry
systxcomp
systxsqcomp
systxsqcomp_exec
sysxcomp
ved_ccp         (same as ved_lcp)
ved_cmr         (same as ved_lmr)
ved_hkey
ved_lp          (same as ved_lcp)
veddoitfile
veddoitlimit
vedmidscreen
vedpwm_doinputsource
vedpwm_donewsize
vedusepwm


BUGS
----
Many bugs have been fixed in all the languages, the editor, and the
libraries.


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