HELP NEWS

               Prolog users should also see * ________PLOGNEWS
                 Lisp users should also see * ________LISPNEWS
                   ML users should also see * _______PMLNEWS
                    X users should also see * _____XNEWS

         For additions to * _______CONTRIB see $popcontrib/contrib.news
     --------------------------------------------------------------
              System managers - update ___LIB * _______POPHOST please

1997

May 13 (John Williams)
    --- New auto-loadable library procedure sysfileowner, for getting
        or changing the ownership of a disk file.

May  1 (John Williams)
    --- vedfindbracket now uses the new user-assignable property
        vedfindbracket_quotes to determine the quote characters for the
        subsystem associated with the current file.


1996

Oct  7 (Robert Duncan)
    --- Initial release of Poplog 15.5.

Sep 18 (John Gibson)
    Improvements to ___LIB * ________SHOWCODE:

    --- Pair labels produced by sysNEW_LABEL are now retained and
        printed as temporary names via a property (substituting the
        pairs with words was a bug since it changed their scope).

    --- VM instructions executed by code-planting procedures given to
        other instructions are now printed with extra indentation.

    --- pop_show_code is now locally set false when inside
        subsystem_libcompile (so that code is not printed while
        compiling a library).

Sep 16 (John Gibson)
    --- ___LIB * _________SLOWPROCS has now been superseded by an improved
        mechanism. There is now a * compile_mode flag :vm +nofast which
        can be used (either globally or in individual files or
        procedures) to make references to 'fast' permanent identifiers
        be compiled as their 'slow' equivalents. (The translation is
        effected through the autoloadable procedure pop_nofast_trans.)

        +nofast also disables the "fast" flag on Pop-11 syntax
        constructs such as exacc and XptVal.

        Loading ___LIB _________SLOWPROCS is now the same as compiling

                compile_mode global :vm +nofast;

        Note that this does not give quite the same behaviour as the
        old ___LIB _________SLOWPROCS, since all :vm flags are turned off while
        compiling libraries. +nofast therefore only affects compilation
        of user code, and not code that is autoloaded or loaded with
        uses.

Aug 29 (John Gibson)
    --- Poplog can now be run with a sequence of layered saved images by
        specifying just the last one, e.g. instead of

            basepop11 +startup +prolog +foo

        you can now use any of

            basepop11 +foo
            pop11 +foo
            prolog +foo

Aug 20 (John Gibson)
    --- The procedure * external_defer_apply now allows arguments to be
        specified for the procedure being applied.

    --- New procedure * sys_grbg_closure enables reuse of closures.

Aug  8 (John Gibson)
    --- Added Ved command <ENTER> strip to produce a plain ASCII
        equivalent of the current buffer, by removing all character
        attributes, Ved special characters and embedded data. See
        * ved_strip.

Aug  1 (John Gibson)
    --- New library ___LIB * ____ODBC is a Pop-11 interface to Microsoft's
        ODBC (Open DataBase Connectivity) API. See ___REF * ____ODBC for
        details.

Apr 25 (John Gibson)
    --- (Unix Only) Fixed a Ved bug which (in some circumstances) caused
        lines over 4096 chars in length to have their beginning chopped
        off.

May 9 (John Williams)
    --- (Unix Only) Ved command _______<ENTER> man now accepts section numbers
        in two formats:
            man _______section _____topic
            man _____topic(_______section)
        Both work in all versions of Unix. See ____HELP * ___MAN.

Apr 29 (John Gibson)
    --- (Unix Only) * sysexecute can now be told to use ____UNIX * execvp
        instead of execve (i.e. search the PATH environment variable),
        by supplying the ____file argument inside a reference.

Apr 26 (John Gibson)
    --- There is now a new improved version of the Pop-11 go_on
        statement -- see ____HELP * go_on.

Apr 22 (John Gibson)
    --- There is now a new mechanism for handling exceptions (mishaps
        and warnings, etc). See ___REF * _________EXCEPTION for full details.

        (These changes should be completely transparent to existing
        programs, except in one respect: a redefinition of the procedure
        interrupt that uses the test caller(1) == mishap to determine
        whether it is being called from mishap rather than Ctrl-C will
        no longer work (interrupt is now called from
        sys_exception_handler). However, this test is no longer
        necessary, since a program requiring different behaviour in the
        Ctrl-C case can simply redefine * keyboard_interrupt separately
        from interrupt.)

Apr 17 (John Gibson)
    --- XVed now has a "nextWindow" and "defaultWindow" resource called
        * autoGeometry, which enables windows to be auto-sized on the
        basis of the number of lines in the buffer and/or the maximum
        length of any buffer line.

    --- The procedure * sys_parse_string now allows an optional argument
        to specify a separator character other than the default
        whitespace.

Apr 13 (John Gibson)
    --- The procedure * printf now allows a new field specifier %M to
        print the last operating system error message. (As a result,
        the procedure sysiomessage is now redundant.)

Apr 12 (John Williams)
    --- New library ___LIB * _________________PROFILE_GRAPHICAL added. This library
        modifies ___LIB * _______PROFILE so that its results are presented
        as a horizontal bar chart in a Ved window. For details,
        see ____HELP * _________________PROFILE_GRAPHICAL.

    --- New library ___LIB * ___________VEDBARCHART added, for drawing bar
        charts in Ved. See ____HELP * ___________VEDBARCHART.

Apr 11 (John Gibson)
    --- The words "close" and "end" are no longer Pop-11 syntax words by
        default. They will only be recognised as closers for loops and
        defines, etc if declared as syntax (this is done by ___LIB * ____POP2).

Mar 27 (John Gibson)
    --- The Ved procedure * vedcharinsert was incorrectly treating a
        carriage-return character `\r` as equivalent to a newline `\n`.
        It now treats it as an ordinary character.

Mar 26 (John Gibson)
    --- The Poplog VM procedure * sysLOCAL now allows local identifiers
        or expressions to be declared at execute-level (i.e. when
        planting code outside of a procedure). This makes the
        identifier, etc local to the current compilation stream (that
        is, to the current call of sysCOMPILE).

        As a result, Pop-11 * dlocal statements are now valid at execute
        level.

Mar 15 (Robert Duncan)
    Improvements to ___LIB * _______PROFILE:

    --- A bug in the profiler's counting algorithm has been fixed,
        giving much-improved reliability over the last release

    --- A new option profile_count_all causes the profiler to count all
        active procedures at each interrupt instead of just the one
        currently executing

    --- Profile output now includes cumulative totals

    The profiler is fully described in a revised ____HELP * _______PROFILE.

Mar 11 (John Gibson)
    --- The default bindings for XVed mouse buttons have changed (except
        with Openlook XVed); the new bindings are described in
        ____HELP * _________XVEDMOUSE. The old bindings can be recovered by setting
        the application resource * UseOldMouseBindings true (this
        defaults to true with Openlook, and false otherwise).

Mar  6 (John Gibson)
    --- The variable * pop_debugging now has default value true (rather
        than "undef").

        In addition, the semantics of a true value have changed. Rather
        than coercing permanent constant declarations to variable
        declarations (as previously), it now leaves the declarations
        alone, but instead makes the Poplog VM instructions sysPUSH,
        sysCALL and sysUCALL treat (non-system) permanent constants as
        variables. (In other words, compiled references to them will
        indirect through the identifier, rather than using the constant
        value.)

        This behaviour is cleaner, in that it gives the same degree of
        flexibility with respect to tracing etc, but without changing
        the 'assign-once-only' semantics of constants.

        (Note that ___LIB * _______MKIMAGE sets pop_debugging to "undef" by
        default, and will therefore compile programs in the same way as
        before.)

Feb 20 (John Gibson)
    --- New variable * poplineprefix enables automatic prefixing of
        lines output via charout and charerr.

Feb 16 (John Gibson)
    --- New procedure variable * keyboard_interrupt introduced. This,
        rather than interrupt, is now the standard action of the SIG_INT
        signal (normally produced by typing Ctrl-C). The default value
        of keyboard_interrupt just calls interrupt (which means that the
        action of Ctrl-C is the same as before, providing
        keyboard_interrupt is not been redefined).

Jan 15 (John Gibson)
    --- 'Anonymous' variable _ (underscore) introduced. This active
        variable returns pop_undef when accessed, and discards any value
        assigned to it. See ___REF * _.

    --- "undef" records in Poplog are no longer an ordinary record
        class. It was always a mistake that they were, because it meant
        that generic component-extracting procedures such as appdata,
        datalist, explode, etc happily worked on them instead of
        mishapping.

        Hence the above procedures will now mishap when given an undef
        record. Other effects of the change are that isrecordclass on an
        undef now returns false, as does class_field_spec(undef_key).
        The procedures consundef and undefword are available as before
        (but not via class_cons or class_access applied to undef_key).

Jan 12 (John Gibson)
    --- The matching facilities previously provided by the Pop-11
        procedure matches are now available in a completely new and
        improved form.

        New-style matching is done with the = and /= operators, by
        simply incorporating "matchvar" records into the second argument
        structure (or, a matchvar itself can be the second argument).

        There are four new Pop-11 syntax words that compile to matchvars
        (corresponding to the old ?, ??, = and == recognised by matches
        inside lists):

            =?________variable
            =??________variable
            =*
            =**

        The advantages of the new system are that (1) it works with all
        kinds of identifiers (both lexical and permanent), and (2)
        matchvars may be incorporated into any structure (not just
        lists).

        (However, note that =?? and =** are still confined to matching
        segments of lists. For speed reasons, the matching algorithm
        used by = is the same as matches, and so is not completely
        non-deterministic when dealing with repeated =?? variables. For
        this reason, a new operator equals is also available, which
        can be used instead of = when full backtracking is required.)

        For details, see the section _______Pattern ________Matching ____With = at the end
        of ____HELP * _____EQUAL. Matchvar records and associated procedures are
        also described in the _________Matchvars section of ___REF * _______RECORDS.

    --- The foreach and forevery syntax forms have new equivalents that
        use = instead of matches (and thus work with the new matchvars):

            for ___var equalto _______pattern [in ____list] do ... endfor
            for ___var allequalto ____________pattern_list [in ____list] do ... endfor

        See ____HELP * equalto, * allequalto.

    --- There are also new versions of the Pop-11 database procedures
        using the new matching facilities; these are called by the
        existing names prefixed by database_ (e.g. database_add). See
        ___REF * ________DATABASE.

Jan 11 (John Williams)
    --- Change to the way the REF command operates: if the argument to
        REF is an identifier name (not a file name), and there is more
        than one entry for that name in any one REF directory, then a
        list of the entries will be displayed in cross-reference format
        in a temporary Ved buffer. Try _______<ENTER> ref ^ ________<RETURN> for a
        demonstration.

Jan 3 (John Williams)
    --- The following library files are obsolete, and have been moved
        into popobsoletelib:

            LIB ACTIVE, ACTIVEMODE, HAND, HANGMAN, and V200GRAPH.

        They are considered obsolete because they only work on Visual
        200 terminals.

1995

Dec 12 (John Williams)
    --- ___LIB * ________DATAFILE now copes with arrays whose arrayvector is not
        a full vector.

Dec  7 (John Gibson)
    --- A new Ved command <ENTER> ftp enables editing of a file on a
        remote host via ftp. See ___REF * ved_ftp.

Dec  4 (John Gibson)
    --- New procedure lmember_= is similar to lmember, but using = for
        equality testing instead of ==. The (variable) procedure member
        is now autoloadable, and defined as

                lmember_=(____item, ____list) and true


Dec  1 (Robert Duncan)
    --- The objectclass package has at last been upgraded from prototype
        status and moved to the standard library directory. To load the
        whole of objectclass, do

            uses objectclass

        or if you just want to browse the documentation:

            uses objectclass_help

        For anyone who hasn't tried the prototype system already, the
        objectclass library provides an object-oriented extension to
        Pop-11 which is particularly well integrated into the language.
        It supports multiple inheritance and multiple dispatch
        (multi-methods) similar in style to the Common Lisp Object
        System (CLOS). See ____HELP * ___________OBJECTCLASS for an overview.

        Users who have developed programs under the prototype system
        should note the following changes which may require
        modifications to their code:

          # You can no longer include declarations for method arguments
            within the argument list itself, i.e. instead of

                define :method m(dlocal x);

            you must write the more conventional

                define :method m(x); dlocal x;

            The old-style declarations will be ignored with a warning.

          # Method arguments without explicit declarations default to
            lvars as before. However, this is now achieved by turning
            off the *compile_mode +oldvar flag during compilation of
            method definitions, so enforcing the new Pop-11 standard
            behaviour. This is a stronger condition than previously,
            since it will also affect procedures defined locally to a
            method.

          # The inheritance algorithm has changed from depth-first
            search to topological sort. This may affect programs using
            multiple inheritance in which the inheritance is ambiguous,
            since topological sort will typically generate a different
            linearization of the inheritance graph than would a
            depth-first traversal. The new algorithm is discussed in
            _____TEACH * ___________INHERITANCE and ___REF * ___________OBJECTCLASS.

          # There can be no more than one method wrapper for each
            distinct method. Compiling a second wrapper will replace the
            earlier one rather than augment it.

Nov 18 (John Gibson)
    Changes to Ved and XVed:

    --- The  concept of 'character' in Ved has  been extended  to
        include  not only 'character-with-attributes'  but also
        'character-with-attributes-plus-associated-data'.

        That is, any line in a Ved buffer may now have an arbitrary data
        item associated with each integer character (________embedded ____data).
        Moreover, embedded string and word data (only) can be written to
        Ved files.

        See ___Ved _______Buffers and ___Ved ____File ______________Representation in ___REF * ________VEDPROCS,
        __________Vedstrings in ___REF * _______STRINGS, and ___Ved __________Characters ____with __________Associated
        ____Data in ___REF * _______ITEMISE.

    --- There is now a new character attribute, 'active'. This serves
        two purposes: (a) it modifies the colour attribute, selecting
        colours 0A - 7A instead of 0 - 7;  (b) it delineates 'active
        segments' in text.

        See ________Changing _________Character __________Attributes in ___REF * ________VEDCOMMS and
        ___Ved _________Character __________Attributes in ___REF * _______ITEMISE.

    --- The new facilities above have made possible the implementation
        of ____text _______actions (a.k.a. ___hot _____links) in Ved, i.e.  commands
        embedded in text that can be  fired  off  by  an appropriate
        mouse or keyboard event such  as clicking  on the text. See
        ________Embedded ____Text _______Actions in ___REF * ________VEDPROCS and _______Setting _a ____Text
        ______Action in ___REF * ________VEDCOMMS.

        (Note: At the time of writing, the XVed procedure which executes
        text actions (vedmouse__do_text_action) is not actually bound to
        any mouse button in the standard setup (since they are all used
        for other functions). You can attach it with (e.g)

            vedset mouse do_text_action = click btn1 endvedset;

        but the general issue of button allocation remains to be
        resolved.)

    --- XVed can now use any fonts at all for its font, boldFont,
        altFont and boldAltFont resources. However, while they may have
        different widths, all fonts are actually drawn to the maximum
        spacing required by any of them. See ___REF * ____XVED.


Nov 10 (John Gibson)
    --- In Version 15+, all PWM code has been removed from all versions
        of the system (including the variable popunderpwm and the
        environment variable poppwmlib).

Sep 6 (John Williams)
    --- (Unix Only) New library ___LIB * _____LOCKF added. This provides an
        interface to the C file locking utility _____lockf. See ____HELP * _____LOCKF.

Aug 29 (John Gibson)
    --- (Unix Only) * sys_file_match now accepts the C-shell pattern
        matching syntax {_____patt1,_____patt2,...} for alternative patterns in
        filenames.

Aug 25 (John Gibson)
    --- In Unix systems, the list sys_os_type now has extra information
        added at the end. See ___REF * sys_os_type.

Aug 21 (John Gibson)
    --- In Version 15, random number generation by random and random0
        has been slightly improved. (A given starting value of ranseed
        will produce the same sequence of ranseed values as before;
        however, the actual numbers generated by random and random0 from
        any seed value may be different.)

Jul 25 (Robert Duncan, Julian Clinton)
    Changes to the Poplog User Interface:

    --- The main control panel has been modified: the menu structure
        has been changed to provide a more standard organisation, the
        panel takes up less space on screen and there are easier routes
        to on-line documentation for new users.

    --- A Project Tool has been added which allows users to group files
        that make up a program into a single project, allowing faster
        access to a program's source files than using the file selection
        dialog. The Tool can re-create the desktop layout between
        different sessions and can build saved images of the project.
        See ____HELP * __________________POP_UI_PROJECTTOOL

    --- The Properties Tool now allows values set in the tool to be
        saved to the user's init.p or vedinit.p files. In previous
        versions, changes were only effective for the current session.

    See ____HELP * _______________POP_UI_OVERVIEW

Jun  7 (Robert Duncan)
    Changes to the interactive search-and-substitute command in Ved --
    <ENTER> s -- restoring old behaviour lost in the changeover to
    regular-expression matching in Version 14.5.

    --- Searching now starts from the current cursor position rather
        than from one character beyond it (provided, of course, that the
        cursor is within the specified search region); this means that
        if the cursor is already positioned at the start of some
        matching text, that will be offered as the first substitution

    --- Each possible substitution should now be offered exactly once,
        with nothing missed out and nothing offered for a second time
        which has already been rejected (patterns which match the empty
        string may still be problematic, but are typically not useful)

    --- On completion of the command, the cursor stays where it is
        instead of popping back to the last substitution point

May 30 (John Gibson)
    --- The procedures caller_valof and isdlocal now work properly with
        active variables. There is also a new procedure
        nonactive_caller_valof for accessing/updating the nonactive
        value of a (variable) active variable.

        Note also that valof now works on identifiers as well as words.

        See ___REF * _____IDENT for full details.

May 23 (John Gibson)
    Version 14.53: Changes to Pop-11 defaults.
    --- The Pop-11 compiler now

          # defaults undeclared procedure formal argument and result
            variables to lvars rather than vars;

          # defaults undeclared nested defines to lconstant rather than
            vars;

          # produces a warning message for any vars statement inside a
            procedure.

        However, the old behaviour can be recovered in all cases by
        using

                compile_mode :pop11 +oldvar;

        (that is, setting the bit POP11_OLD_VARS in pop_pop11_flags.)

        Note that the new behaviour makes the compile_mode option :pop11
        +varsch redundant (except for the case of a vars statement in a
        procedure, which will continue to mishap with +varsch rather
        than issuing a warning).

    --- In define updaterof ..., the keyword active is no longer
        required when defining the updater of an active variable, i.e.

                define active foo;
                    ...
                enddefine;

                define updaterof foo;
                    ...
                enddefine;

        will now work as expected.

    --- The compile_mode construct can now take an initial keyword
        global to mean change the given mode(s) globally throughout the
        system, rather than just in the current file. (But compilation
        of libraries is not affected.) For example, global makes it
        possible to specify

                compile_mode global :pop11 +strict;

        or

                compile_mode global :pop11 +oldvar;

        in your init.p; this will then apply to all files you compile.

    --- The define ____name = ... form may now include a with_props or
        with_nargs clause, e.g.

            define foo with_props baz with_nargs 6 =
                identfn(%1,2,3%)
            enddefine;


May 22 (Robert Duncan)
    --- The eliza and logic saved images are no longer supplied by
        default in popsavelib, but you can still install them for
        yourself with the commands

            $popsrc/newpop -eliza -logic only       ;;; Unix
            @popsrc:newpop -eliza -logic only       ;;; VMS

        See ____HELP * ______NEWPOP.

May 20 (John Gibson)
    --- Version 14.52 Poplog is now available for Alpha OSF1.

        This is the first 64-bit implementation of Poplog, and allows
        simple integers to range up to 61 bits signed (rather than 30 as
        in other systems). In addition, simple decimals are machine
        double floats minus 3 bits of precision (rather than single
        floats minus 2 bits as in other systems).

    --- The procedure conskey, as well as the syntax constructs
        defclass, exacc, _x_typespec, etc, now accept two new field types
        "word" and "uword".  These represent signed/unsigned integers
        held in a field the size of a Poplog word. (Note that "int" and
        "uint" are no longer reliable for this purpose, since in Alpha
        OSF1 Poplog they remain as 32-bit types in conformance with the
        C compiler.)

May 19 (Robert Duncan)
    Modifications to the behaviour of *vedfilecomplete:

    --- it allows selection by typing a single character, even when the
        options are displayed in a separate file

    --- the completion string is delimited by any non-printing or other
        special character, or by either of the common quote characters
        (' or ")

    --- the variable vedcomplete_exclude can be used to restrict the set
        of matching files; by default this excludes Unix backup files

May 10 (Robert Duncan)
    --- A revised _____TEACH * ______PRIMER provides an introduction to programming
        in Pop-11.

Apr 28 (John Williams)
    --- The library ___LIB * ______PREFIX is now considered obsolete and has been
        moved from the main autoloadable library directory ____________$popautolib/
        to *popobsoletelib.

Feb  2 (John Gibson)
    --- The procedure sys_lock_system will now mishap if any necessary
        call to the writeable operator during compilation has been
        ineffective owing to pop_record_writeable being false.

        Since calls of writeable occur in many places in system and
        library code, pop_record_writeable should therefore almost
        always be set true before commencing compilation of a program to
        be saved with sys_lock_system.

Jan 25 (John Gibson)
    --- (VMS Only)
        The Unix-style command symbols (like "cd", "pwd", etc)
        previously defined by popcom:popenv.com are now defined
        separately by

                popcom:unixcomm.com

        (Poplog does not run this automatically: if you want the
        symbol definitions you must run it in your login.com.)

Jan 20 (John Gibson)
    --- When vedreadintrailspaces is true, Ved now also preserves
        trailing blank lines at the end of a file (i.e. in addition to
        trailing spaces at the ends of lines). This is effected by
        replacing the last blank line with one containing a single
        'trailing newline' character. See ___Ved _______Special ___________Characters:
        _______Special ______Spaces ___Etc in  ___REF * ________VEDPROCS.

Jan 13 (John Williams)
    --- (Unix only).
        Much improved version of ____HELP * ________________RUN_UNIX_PROGRAM installed.

1994
Dec 10 (John Gibson)
    --- (VMS Only)
        Version 14.51 Poplog is now available on Alpha machines. The
        principal (and only) difference from the VAX system concerns
        external loading: on Alpha, you can only externally load
        shareable images. See the Alpha-specific sections in
        ___REF * ________EXTERNAL for full details.

    --- Previously, external function closures deposited their frozen
        argument in the external variable pop_exfunc_arg; this location
        should now be referenced from C code indirectly through the
        pointer

            POPOBJ *pop_exfunc_closure_arg

        Except in Alpha VMS, existing code using pop_exfunc_arg will
        continue to work; in Alpha VMS, the new pointer MUST be used.

Oct 28 (John Williams)
    (Unix only)
    --- Enhancement to ___LIB * _________VED_CCOMP - it is now possible to specify
        the name of the C compiler to use by setting the variable
        ccomp_command (it defaults to 'cc'). See ____HELP * _____CCOMP.

Oct 27 (John Williams)
    --- New _______<ENTER> chat scope option s (i.e. selected text, in Xved
        only). See ___REF * ________ved_chat.

Jul  4 (John Gibson)
    (Unix Only)
    --- A new library ___LIB * ____________UNIX_SOCKETS provides a Pop-11 interface to
        Unix communications sockets. See ___REF * _______SOCKETS.

    --- The new procedure * sys_device_wait provides an interface to the
        Unix select system call for multiplexing I/O on devices.

Apr 21 (John Gibson)
    --- <ENTER> dk in Ved now generates a Ved runtime action procedure
        for each vedsetkey command. This ensures that the commands are
        run after any standard settings for the keys have been performed
        (and immediately before vedinit is called).

Apr 20 (John Gibson)
    --- The procedures sysfork and sysvfork (Unix) and sysspawn (VMS)
        have been obsoleted by new versions sys_fork, sys_vfork and
        sys_spawn. The procedure syswait also has a new version sys_wait
        (similar in both Unix and VMS).

        The purpose of these changes is twofold: (1) to make it
        unnecessary to have to perform an explicit wait for a child
        process when a program's functionality does not actually require
        it (that is, to avoid the use of sys_wait to merely prevent
        the creation of Unix zombie processes), and (2) to enable an
        asynchronous trap procedure to be run when a given child process
        terminates.

        See ___REF * _______SYSUTIL for details.

Apr 10 (John Gibson)
    --- With the exception of SunOS 4 Poplog systems, all PWM code has
        now been removed from the system.

        (To enable program files to compile under other systems, PWM
        code that you still require for use under SunOS 4 can be guarded
        by the test

            #_IF DEF ispwm_id
                ...
            #_ENDIF

        etc.)

Apr  8 (John Gibson)
    --- (Unix Only) systmpfile and other parts of Poplog which create
        temporary files will now use the directory specified by the
        environment variable $TMPDIR in preference to /tmp if the former
        is defined.

Mar 22 (Robert Duncan)
    --- The procedure copy will now mishap if applied to a system
        procedure other than a closure or array. The copying of system
        procedures -- i.e., those for which isinheap returns <false> --
        has always been deprecated in ___REF * _________PROCEDURE because it cannot
        be made to work reliably on all architectures.

Mar 17 (John Gibson)
    Changes to Ved:

    --- Ved now has an explicit notion of 'pseudo file' buffer, that
        is, a buffer which does not correspond to an actual disk file.
        See _________Real-File ___and ___________Pseudo-File _______Buffers in ___REF * ________VEDPROCS.

    --- The procedures vededitor, vedgetfile and vedselect are now
        obsolete and have been replaced by a single new procedure
        * vededit.

    --- The procedures vededit and vedopen (and vedreadfile, which they
        call) can now take an enhanced file-specification argument
        to allow the creation of special kinds of Ved buffers. See
        _______filearg ________Argument __to vededit, vedopen ___and vedreadfile in
        ___REF * ________VEDPROCS.

Feb 12 (John Gibson)
    --- Motif and OpenLook versions of XVed can now have horizontal
        scrollbars at the bottom of each window. This is controlled by
        the (per-window) boolean resource "hscrollbarOn" -- similar to
        "scrollbarOn" for the vertical scrollbar (except that
        "hscrollbarOn" is false by default). See ___REF * ____XVED.

        In addition, menubars/scrollbars are no longer created for any
        particular window until or unless turned on for that window.
        (Previously, all bars were created, but not displayed unless
        on.) This makes window creation faster (and uses less resources)
        when one or more "-barOn" resources are false.

Jan 31 (David Young)
    --- New for-forms (see ____HELP * ________FOR_FORM) to allow iteration over
        data in arrays, and to replace where appropriate nested
        numerical for-loops. See ____HELP * in_array and ____HELP * in_region.
        In addition to in_array and in_region, these define the syntax
        words updating_last and of_dimension.

Jan 19 (Robert Duncan)
    Changes to Ved's treatment of paragraphs:

    --- A new procedure vedinparagraph is now used to determine whether
        the current line should be considered as part of a paragraph.
        This is redefinable to taste, or to suit different file types;
        the default definition is described in ___REF * vedinparagraph.

    --- The paragraph movement procedures vednextpara, vedprevpara,
        vednextparaend and vedpreparaend have been redefined in terms of
        vedinparagraph.

        vednextpara and vedprevpara now always position the cursor on
        the first character of the paragraph, while vednextparaend and
        vedpreparaend always position the cursor one place beyond the
        last character in the paragraph.

    --- A new procedure vedmarkparagraph marks the paragraph surrounding
        the current cursor position, or the previous paragraph if the
        cursor is not on a paragraph line. The extent of the paragraph
        is determined by calls to vedinparagraph.

        This procedure can be run from the command line by doing:

            <ENTER> mark paragraph

        See ___REF * ved_mark.

    --- ved_jp (for text files) and ved_jjp have been modified to use
        vedmarkparagraph to determine the extent of the paragraph to be
        justified. This makes the two consistent in the range of text
        affected.

    --- New default key bindings added:

            <ESC> }     vednextpara
            <ESC> {     vedprevpara

        See ____HELP * _______VEDKEYS.

Jan 17 (Robert Duncan)
    --- ved_r modified to use the same strategy for locating files as
        does ved_ved; in particular, it will now search directories
        specified in vedsearchlist.

Jan 17 (John Gibson)
    --- Fixed Ved bug where redoing a word (non-embedded) substitution
        with command alone (i.e. <ENTER> s or <ENTER> gs with no
        argument) caused the search to be embedded instead of
        non-embedded.

Jan 14 (John Gibson)
    Changes to XVed:

    --- XVed is now able to display several different text cursors, in
        different colours (and flashing if desired). See
        * vedscreencursoron for a description of the available cursors,
        and _______Special _________Character __________Variables: _______Cursors in ___REF * _______VEDVARS for
        details of cursor usage by Ved.

        The basic cursor colour in each window is controlled by the
        "cursorColor" resource -- see ___REF * ____XVED.

    --- The appearance of the status line in XVed has been improved: it
        is now surrounded by a 1-pixel border, and more distinctly
        separated from the rest of the window. Consequently, the padding
        with `-` characters is now unnecessary and has been removed.

        In addition, the status line may now be displayed at the ______bottom
        of the window instead of the top -- see the "StatusAtTop"
        application resource in ___REF * ____XVED.

    --- A new variable * vedscreenstatusnumattr allows character
        attributes to be set on the status line/column number display.
        The default is bold in colour 4 (which also affects terminal
        Ved, for terminals that display bold.)

    --- Using key input to merely move around a file in XVed no longer
        creates garbage.

Jan 14 (Robert Duncan)
    --- ved_wappr --- for appending the marked range to a file --- has
        been fixed to preserve character attributes in the text it
        writes. It also now puts a message on the status line to show
        when the file has been updated. See ___REF * ved_wappr.

    --- A new procedure vedappendrange has been added which is like
        vedwriterange but appends the range to an existing file rather
        than creating a new one. See ___REF * vedappendrange.


1993

Dec 24 (John Gibson)
    --- The ___LIB * external and * newexternal facilities now use the same
        external loading mechanisms as * exload.

        The principal consequence of the change is that external
        statements occurring inside the scope of an exload_batch will
        now respect the latter, i.e. will not actually load anything
        until the outermost endexload_batch is encountered.

        In addition, external require is now identical to external load
        while batching is operative. (In general, the use of require is
        now deprecated; use exload_batch ... endexload_batch instead.)

Dec 22 (John Williams)
    --- New procedure property_equal added, for testing `equality' of
        properties. See ___REF * property_equal.


For earlier news, see ____HELP _* __________NEWS.V14_5


--- _______________C.all/help/news
--- _________Copyright __________University __of ______Sussex _____1996. ___All ______rights _________reserved.
