HELP NEWS.6

Sept 20th 1982
    ENTER CUT fixed

    RAWOUTFLUSH used to output a null character. It no longer does.

    Dynamic lists:
        More informative error message now given when procedure returns wrong
    number of results.

    Updater of VEDCURRENTCHAR fixed so as not to move cursor.
Sept 17th
    VEDTABRIGHT (ESC-TAB) fixed. It did not work immediately to left of
    TAB position.

    In VED ESC-C now invokes VED_LCP, i.e. load (compile) current procedure.
    LCP no longer alters the marked range.

    The output file used for VED_LMR now has the default name 'output'
    rather than 'doit'.

    A deep bug in handling of screen, which only rarely caused trouble, has
    been identified and removed. (It occasionally caused VED to think it was
    in the wrong window.)

    ESC /  now causes VED to search forward using last search string.

Sept 15
    SYSFILETYPE(string)->string
    If the input is a file name, returns the file TYPE (extension).
Sept 14
    HELP *MARK gives information about marking ranges in VED
    HELP *LMR gives more information about LMR.

    VED_PRINT has at last been cured. One can ENTER PRINT to print the file
    currently being edited. (Arts Users only at present.)
    HELP PRINTING has been updated.

Sept 10
    When returning to an old file, VED no longer shifts the window if the
    cursor is in the window, e.g. after "PRESS RETURN TO CONTINUE"

    The VMS bug which caused output to be lost from $ commands when SET
    CONTROL = T was enabled has now been surmounted.


Sept 7th
    For more adventurous users of VED the variable VEDNAMESTRING, used for
    message about currently edited file is exported and can be altered by
    the user.

    Some variables are now no longer local to VEDPROCESS, for the same
    user(s): VEDMESSAGE, VEDCOMMAND, VEDPRINTINGDONE

    Error handling in VED CMR streamlined slightly.

Sept 2nd 1982
    CMR like LMR now traps simple syntax errors and gives a short message on
    status line, instead of full error message.

    If a variable is declared as of type procedure, then if it is used
    subsequently whether declared as procedure or not, it is still a
    procedure variable and assigning a non-procedure to it will cause
    a mishap. This is to protect already compiled code. Cancel a variable
    first if you want to change its type.

    ENTER CMR will not complain if marked range goes beyond end of text

    VED files now have an extra field: POPCOMPILER, which usually has the
    value COMPILE. But for files ending in .PL it is RPOLOG_COMPILE. The user
    procedure VEDVEDDEFAULTS can over-ride this.

    VED_LMR and VED_CMR will use PROLOG_COMPILE if the file name ends
    in '.PL'
    So will ENTER X, ENTER C, etc.

    An experiment:
    Default value of VEDLMR_PRINT_IN_FILE will be 'doit'. I.e.
        ENTER LMR and CTRL-D will work like ENTER CMR and ESC D.
    You can override this and return to previous version with
        TRUE -> VEDLMR_PRINT_IN_FILE;

    VED ENTER NDIR <filespec>
    Is an experimental faster version of VED ENTER DIR. It takes as
    <filespec> the same options as as the DCL DIRECTORY command, except that
    only one file-spec is allowed. But it can include directories and
    wild-cards.
    At present it cannot be used with VED_DEL.

    COMMANDS LEFT and RIGHT replace TURN in lib VTURTLE to avoid confusion
    with TURN in LIB TURTLE.

AUG 26th:
    LIB VTURTLE changed to use more predictable drawing algorithm.

AUG 25th:
    HELP * VEDCOMMS tidied and brought more up to date.

    VED_CLEAR: objections have been received to the proposoal to make it ask
    for confirmation of vedchanged is true. So it will be left as it was.

    * FOR now works properly with negative increments, e.g.
        FOR x FROM 10 BY -1 TO 1 DO ... ENDFOR;
    The following is now also allowed:
        FOR x TO 10 DO ... ENDFOR
    where the the FROM value defaults to 1.

    The termination expression is no longer evaluated each time round the
    loop.

    Declarations may specify a type, then all identifiers of that type in
    parentheses,e.g.
        * VARS PROCEDURE(PROC1,PROC2,PROC3) 5 (++, OP2), X, Y;
    similarly with 'constant' instead of 'vars'.
    Types may also now prefix procedure inputs and outputs, e.g.
        DEFINE FOO(X, PROCEDURE P, 5 ++) -> PROCEDURE Q; ...

Aug 24th
    * POPGCTIME contains the total of CPU time for garbage collections.
    * POPMEMUSED contains the total memory (in words) used at the last
    garbage collection.

    * SYS_LOCK_HEAP() tells the system to 'lock' the heap at its current
    endpoint. The effect of this is that all structures in the heap before
    this point will automatically be treated as non-garbage, considerably
    reducing the amount of work needed to be done on them during a garbage
    collection. Structures created after SYS_LOCK_HEAP() will be treated
    normally. SYS_UNLOCK_HEAP() undoes the effect.

20 Aug
    LIB VTURTLE has been fixed. See TEACH VTURTLE.
    The command LIB VTURTLE; makes available a version of the turtle in which
    all drawing etc is done in a file called 'picture'.

    See HELP HELPFILES, and HELP MENUSTART
    For use with an experimental MENU of HELP files VED has been extended as
    follows:
        <ESC> N = search for an asterisk (indicates help file name follows)
        <ESC> H = Get help file for word to right of cursor
        <ESC> <DEL> = Quit current file. Same as ENTER Q
19 AUG
    New PROLOG. Much faster compilation, and slightly faster execution.
    CTRL-C returns you to prolog. Use ^Z or ^G to get back to POP-11.

    VED ENTER HK
    will give you Help re a Key. I.e. you press the key, and VED will tell
    you the name of the procedure, if any associated with the key.
    If you get no response then go on pressing more characters...

17 August:
    CONTROL CHARACTERS (apart from space, newline, tab, CTRL-C) are now
    treated as items by the itemiser. So one can now, for example, define
    CTRL-V as a macro to invoke ved, and CTRL-T as a macro to do
    TIMEDIFF()=>

    * SYS_FILE_STAT(file,vector) -> false or vector
        will put into the vector information about the file, depending on the
        number N of fields in the vector. See the help file, or REF SYSPROCS.

    VED ENTER DIR now gives size and date of files in a reasonable format.
15 August
    Several more VED system procedures are 'non-exported'. This saves space
    in the dictionary. Entries in help files will be deleted.

    VED_M (move marked range) is now much cleverer about refreshing screen.
    VED_YANK and procedures which use it are now much more efficient.

    VEDBUFFEREXTEND altered so as to shrink current buffer when appropriate
    (to save space).

13 August
    VED ENTER DIR extended
    If an argument string is provided, every file whose name contains it
    as a substring will be listed. E.g.
        ENTER DIR FOO
    will list information on files FOO.P FOOL. BEFOOLED.DAT etc.

12 August Version 5.4
    VEDLINEABOVE()
    Now takes account of VEDLEFTMARGIN

    VEDLEFTMARGIN can be a procedure which returns an integer >= 0.

    Itemiser character types are now user-assignable with the procedure
    ITEM_CHARTYPE - see REF ITEMISE and HELP ITEM_CHARTYPE
    (CHARTYPE will be withdrawn)

    SUBSCR_STACK(number)
        treats the stack as a vector. It has an updater

    ISCONSTANT(word)
    TRUE if word has been declared as a constant.

    ISASSIGNABLE(word)
    Returns true if the word can be assigned to.

6 August Version 5.2
    VED ENTER PCMR
    = 'Prolog Compile marked range' for use with Prolog

    See REF SYSPROCS for the following:
        SYSSEEK(device, pointer, mode)
        SYSTRANSLATE(string with logical name)
        SYSIOMESSAGE()  (gets VMS message after false SYSOPEN or SYSDELETE)
        new option SYSWRITE(device, startbyte, structure, number of bytes)
        (similarily SYSREAD). The second argument defaults to 1.

    RECURSIVE_FRONT
    given a pair, this digs out the front, and if that's a pair, goes on
    digging, till an atom is found.

    Printing of procedures changed so that if PDPROPS is a pair, then the
    RECURSIVE_FRONT of the PDPROPS is taken as the print name.

    DEST_CHARACTERS(item)
    Puts on the stack all the characters which would hve been printed by
    SYSPR(item)

5th August
    NEW DECLARATION SYNTAX. A variable or constant can be declared to be of
    type 'procedure', e.g.
        CONSTANT PROCEDURE FOO; VARS PROCEDURE FOO;
    This will cause POP11 to complain if you later try to assign anything but
    a procedure to it. Using FOO in other procedures will be more efficient
    if it has previously been declared to be of type procedure.
    (N.B DEFINE FOO()... now declares FOO as type PROCEDURE).

    VEDGETCOMMAND changed, so that on command line:
        TAB key will insert VEDINDENTSTEP spaces.
    In search strings, itemiser rules for control characters will operate,
    e.g.
        \^A will put CTRL-A into string. To search for the string '\^A'
        you'll have to use '\\^A', e.g. two back-slashes.

    VEDAUTOWRITE will be made false during LMR and CMR
    VEDERROR changed to call MISHAP if VEDEDITING is FALSE.

    SYSPRMISHAP CHANGED to save only the last mishap message, if POPMISHAPS is
    not false.

    VEDSETKEY does more checking. Also vedsetkey('abcde','foo'); will behave
    more sensibly if you type 'abcdf' thereafter.

4 August
    repeated upscreen, downscreen, or similar button pushes will not cause
    the screen to be refreshed repeatedly. VED looks ahead and only does the
    refresh when there's no more input on th eway.

    SYS_INPUTON_TERMINAL(device)
    Returns true if there is input waiting on the device.

    VEDSETWINDOW (ESC-W)
    Will force contraction of large window even if VEDSTARTWINDOW is 24

3rd AUGUST
    VED reading and writing files speeded up enormously (about 3 fold
    increase in speed).

2nd AUGUST 1982
    VEDTESTSEARCH(string, boolean) -> boolean
    Search for an occurrence of the string (like ENTER / or ENTER ").
    If the boolean is TRUE accept any occurrence. If its FALSE insist that
    the found string start and end on text item boundaries (like ENTER ").
    Returns TRUE if an occurrence is found, otherwise false.

    VEDLOCATE(item);
    if item is a word or integer will insist that it isn't embedded.
    Strings work as before.

    POP_SYNTAX_ONLY
    If set TRUE stops the compiler generating code. So will do syntax
    checking. PROGLIST is altered, so difference between old and new can be
    used to tell what items have been read in.

    MOVE_BYTES(loc1,structure1,loc2,structure2,number)
    For copying non-pointer fields of one structure to another. See HELP
    MOVE_BYTES.

    KEYS: New field specifiers have been added for records and vectors.
        "decimal" and "ddecimal".
    See REF KEYS. Together with MOVE_BYTES this makes DCONVERT16 redundant,
    and it will be withdrawn shortly.

    New field types for vectors and records

    VED now marks right edge of window if there's more text off the screen

    VEDAUTOWRITE uses VEDCHANGED to count changes to individual files.
    VEDCHANGED is incremented every time a change is made to a file. Deleting
    or substituting a string e.g. using VEDCLEARHEAD, VEDWORDRIGHTDELETE,
    VED_S, etc counts as one change. Global substitutions count the number of
    replacements. During type-in, each character typed or deleted counts as
    one change. When VEDCHANGED for a file exceeds VEDAUTOWRITE, then that
    file, and only that file, is saved. A tolerable value for VEDAUTOWRITE is
    probably around 800.

    VEDPOSITIONPUSH has been altered to record row number in the current
    window as well as line and column. The elements of VEDPOSITIONSTACK are
    now 3-element vectors.

    VEDPOPKEY
    This procedure is now the default associated with the 'POP' position key.
    It is like VEDPOSITIONPOP except that if the restored position is not in
    the current window, it restores the position so that it occupies the same
    row in the window as when the position was saved. VEDPOPSITIONPOP is
    unchanged. E.g. if you save a position with the procedure starting at the
    top of the screen, then when it is POPped the procedure will again start
    at the top. Previously restored positions were put in the middle of the
    screen.

1982

FOR OLDER NEWS see HELP NEWS.5
