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 HELP * V13.CHANGES 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 customisation. 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 Identifiers 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 inadequate.) 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'. See HELP * POP_FILE_MODE 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 HELP *NEWVEDSYSFILE. 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 details): 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 address). 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) --- VEDREFRESHSTATUS 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 --- The two variables * POPDEFINECONSTANT and * POPDEFINEPROCEDURE are now local to the compiler, and interpreted by the user definable procedure POP11_DEFINE_DECLARE. See: HELP * POPDEFINECONSTANT HELP * POPDEFINEPROCEDURE 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 facilities: * 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, *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 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 See HELP * PLOG_GOALS, HELP * PLOGINPOP, PLOGHELP * LISPINPLOG and 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 PLOGHELP * DIVIDE * DIV * EFFICIENCY 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 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. 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. See TEACH * VEDEXPAND 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 number. 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. 1986 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 autoloaded.) 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 FAST_SUBSCRW, FAST_GET_PROP_ENTRY, FAST_PROP_ENTRY_VALUE, SYS_GRBG_DESTPAIR, SYS_GRBG_LIST 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: * VALOF, *AUTOLOAD, *POPLIBLIST, *POPUSESLIST --- 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 REF * ITEMISE, HELP * PROGLIST, * INCHARITEM Dec 1 (Aaron Sloman) --- TEACH *SCHEMATA replaces HELP SCHEMA and HELP SOMESCHEMA --- 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 HELP * VIEWS (See also * SYSHASH, *NEWMAPPING) 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_CONVERT_DATE, e.g. 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 SYS_FILE_STAT. Nov 21 (Aaron Sloman and John Gibson) --- Identifiers defined as "active" from POPLOG V12.3 DLOCAL_PROCESS, DLOCAL_CONTEXT See HELP * DLOCAL, REF * VMCODE *CURRENT_DIRECTORY (*SYSDIRECTORY is defunct, but remains as a library procedure). *CURRENT_SECTION *POP_CALLSTACK_LIM - Size of Procedure Calling Stack (Default 90000) *POPDEVERR *POPDEVIN *POPDEVOUT *POPDEVRAW 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 * INTVEC REF * WORDS, REF * PROCESS/ABKILL 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 HELP *ACTIVE_VARIABLES --- Revised HELP files: *IDENTPROPS, *IDENTFIERS, *CONSTANT * SECTIONS, *SYSWORDS 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. (See * VEDGETSYSFILE) --- 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. SEE HELP * PLOGNEWS 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 HELP * PRINT * POPVARS * POPPROCS *CONTENTS * CONTROL * DECIMALS * CLASSES * VEDCOMMS and REF * SYNTAX * POPSYNTAX * NUMBERS 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 details. 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 VEDWYSE.P VEDSUNKEYS_SUNVIEW.P VEDSUNKEYS_NOSUNVIEW.P VEDREADLINE.P KEYPAD.P Oct 7 (John Williams) --- New library package LIB *RANDOM_STATES added. Oct 4 (Aaron Sloman) --- HELP * NEWANYPROPERTY updated with example using complex keys. --- Also updated: HELP * NEWSPARSE, * NEWANYSPARSE, * PROPERTIES, * NEWPROPERTY, * ARRAYS 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. See TEACH * PROLOGINPOP, HELP * PROLOG_VARS, HELP * PROLOG_LVARS. 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. See HELP * PWMWINDOWS, * PWMGRAPHICS, * PWM_TRACKMOUSE. --- 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 LIB * VED_IMSH LIB * SH_COMPILE LIB * VED_SHFILE LIB * VED_KILLSH Aug 20 (Ben Rubinstein) --- Large line numbers (> 9999) on VED Command line no longer cause problems. 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 users. 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) * POPPROCS 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 updated: * INITIAL * INITIAL.EX * VEDNONBREAKFILES * VEDNOTABS * VEDPROCS * VEDVEDDEFAULTS --- 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 details. 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 *SYSCOMPILE *SYSDECLARE *SYSLOOP *SYSLOOPEND *SYSNEED *SYSNMTRY *SYSSTRUCTURE *SYSTRY *SYSTXCOMP *SYSTXSQCOMP *SYSXCOMP *SYSXSQCOMP New HELP files *NEXTIF *NEXTUNLESS REF files updated: REF * COMPILE, REF * SYSCOMPILE, REF * SYNTAX June 13 (Aaron Sloman) --- Bug in LIB * OUTCHARITEM fixed. A previous edit had stopped it working. 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 identifier. 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 <actions> endfor 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 details. 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 details. 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 withdrawn: 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 VEDVEDDEFAULTS, and VEDINITFILE. See HELP * VEDFILETYPES 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. See HELP * SEETREE. May 13 (Mark Rubinstein) --- LIB GRAPHCHARSETUP now effectively exports the variable -grapcharsetupdone- and the procedure -Grapcharsetup-. There is a new user assignable procedure -graphcharsetuptrap-. See HELP * GRAPHCHARSETUP --- 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. See HELP * VEDEMACS. 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: * ASSOC * NEWASSOC * IMCSH * VECTORCLASS * RECORDCLASS 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. ----------