Search Top Index
HELP V13_6.CHANGES A.Sloman Oct 1988 This file lists the main changes for POPLOG Version 13.6. This version is an intermediate release providing some new facililities, adaptation for SunOS V4.0 and VMS V5.0 and a range of bug fixes. The next major release will be Version 14 including an interface to X windows Version 11, and other major new features. HELP * NEWS has the information presented below, but in chronological order, and in some cases with more detail. This file uses a more structured organisation. HELP * LISPNEWS and HELP * PLOGNEWS provide details for Prolog and Common Lisp. However, it should be noted that changes to POP-11 (e.g. new data types or new primitive operations on them) are available to users of Poplog Lisp or Prolog via calls to Pop-11. CONTENTS - (Use <ENTER> g to access required sections) -- Ports to new machines -- Standard ML -- Re-building Poplog -- Access to operating system -- Store Manager and Garbage Collector -- External load and LIB EXTERNAL -- Lisp Changes -- Prolog Changes -- Pop-11 syntax -- New procedures, data-types, global variables, etc -- Words, identifiers and sections -- Documentation changes -- Errors and tracing -- New virtual machine instructions -- VMS only -- UNIX only -- LIB FLAVOURS -- Changes to the editor, VED -- Poplog Window Manager (PWM) -- KEATS - the knowledge engineering apprentice tool system -- Miscellaneous -- NOTE ON FILENAMES -- Ports to new machines ---------------------------------------------- Poplog is now available on SUN-4 (SPARC) Poplog is now available on Sequent Symmetry computers (multiple 80386 machines running a version of Berkeley Unix). Both provide the new "mmap" system call mentioned in conection with SunOS-4. This allows saved images (e.g. prolog lisp) to be shared between processes. The port to Sun386i will shortly be complete. Poplog on MC68020 systems (i.e. Sun-3 and Bobcat) now uses the extended arithmetic facilities of that processor. This implies a general speedup in both simple and big integer multiplication and division operations. Poplog now runs on Orion 1/05 (Clipper processor plus Unix 4.2 Bsd), but is not a fully supported product. It is available only direct from Sussex University. Whether it becomes fully supported will depend on demand. -- Standard ML -------------------------------------------------------- PML is an implementation of Standard ML version 1 that is available as an optional extra in Poplog. An implementation of the new standard may be available later. The current version is being used in a number of computer science departments for teaching and research. If you need PML please consult your Poplog supplier or Sussex University. (See HELP * POPLOG) -- Re-building Poplog ------------------------------------------------- For system administrators:- As a step towards the provision of a fully fledged "delivery" mechanism, the process of linking poplog has been changed. Instead of large numbers of object files the system comes with more compact object libraries. However, this change should make no difference to users. Anyone intended to re-link poplog is advised to examine the newpop command file (newpop.com on VMS) in the directory $usepop/pop/src Please also see the Poplog Installation Guide and the Poplog Administartor's Guide. -- Access to operating system ----------------------------------------- A new general interrupt handling (signal handling) facility is now available, documented in REF *SIGNALS. The user can control the handling of most of the asynchronous interrupts ('signals' in Unix terminology) defined by the operating system (how many, and exactly which, varies from system to system - see REF *SIGNALS) and add new synchronous interrupts. Principal new procedures are: sys_signal_handler - access to handler procedures for signals sys_signal_flag - access to enable flags for signals sys_raise_signal - invoking a signal handler sys_signal_queue - queue of yet to be handled signals sys_max_signal - largest currently defined signal A user library LIB SIGDEFS defines constants for the operating- system-defined signals available in the current system. A new library LIB SYSDEFS defines constants useful for identifying local system dependencies in #_IF control statements. (eg UNIX, VMS as used in #_IF DEF UNIX). See HELP *SYSDEFS, HELP *DEF New procedures -sys_file_move- and -sys_file_copy-. See REF *SYSUTIL Sun Poplog:- availability of new "mmap" system call in SunOS-4 means that the constant parts of Poplog saved images created with -sys_lock_system- can be shared among all users (e.g. implies that most of the Common LISP and PROLOG images will be shared). This facility has been available on VMS for several years. This "mmap" facility is available on Sequent Poplog also. Three new active variables added to make it possible to access standard I/O channels more easily: -pop_charin_device- -pop_charout_device- -pop_charerr_device- See REF * SYSIO/pop_charin_device In the interests of greater flexibility (and in particular the requirements of a PWM for VMS Poplog), -popdevraw- has now been replaced with two active variables containing separate read and write devices: -poprawdevin- and -poprawdevout- (when neither standard input nor output is a terminal, they both contain undef records). -popdevraw- is now just an autoloadable synonym for -poprawdevin-, but to maintain upward compatibility, output operations with -syswrite- and -sysflush- done on the device in -poprawdevin- will be automatically redirected to the device in -poprawdevout- (however, existing programs should be changed so as not to rely on this kludge). Also to maintain compatibility in Unix systems, a new procedure -sys_link_tty_params- is run on the two devices to make them share terminal characteristics, so that existing calls of -sys_io_control- on -popdevraw- will affect both devices simultaneously. See REF * SYSIO The procedure -sys_purge_terminal- is now an autoloadable synonym for the new, more general, procedure -sys_clear_input-. See REF *SYSIO. Changes to the handling of O/S process arguments by Poplog (see REF *SYSTEM for full details): 1. A new variable -poparglist0- contains a complete list of the arguments passed to Poplog, starting with the name under which the process was invoked. -poparglist- is effectively unchanged, but will now be a trailing sublist of -poparglist0- (i.e. excluding those arguments processed by the system on startup). 2. The character `+` can now be used to flag a saved image to restore, in both Unix and VMS systems. The characters `-` in Unix and `/` in VMS are recognised as before, but not AFTER `+` has been used, i.e. pop11 -prolog -mysave pop11 -prolog +mysave pop11 +prolog +mysave will all restore "prolog" and then "mysave", but pop11 +prolog -mysave will only restore "prolog". This allows programs based on saved images to take Unix-style arguments beginning with `-`. 3. (VMS only) The translation of the DCL foreign command line to arguments in -poparglist0- is now the same to that performed by VMS C programs (see REF *SYSTEM). In particular, arguments containing uppercase letters, spaces etc can be quoted with double quotes ", which are then stripped off. For this reason, " at the beginning of the first argument to flag POP-11 code to compile is now replaced by : (colon) as in Unix. Note that since DCL recognises : immediately after the command name as flagging a label, this will normally need quoting (also as in Unix), e.g. pop11 ":3+4=>" -- Store Manager and Garbage Collector -------------------------------- From Version 13.1 POPLOG Unix systems have had the segmented heap and garbage collector already in Version 13.0 of VMS POPLOG. This means that the system now copes with the segmentation of its heap space that results when external procedures allocate dynamic memory at run-time (e.g. through -sbrk- or -malloc- etc). External procedures can now allocate memory freely, and no prior provision need be made 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). The garbage collector now has an alternate algorithm, which comes into play when there is insufficient memory for the normal copying algorithm to operate (and which can also be selected explicitly by assigning false to -pop_gc_copy-). As a result, the system can no longer die with the mishap 'CANNOT ALLOCATE GC WORKSPACE', and -popmemlim- can be set as large as desired. (There is also now a clear distinction in mishap messages between merely exceeding -popmemlim- and actually running out of memory -- the latter can still happen, of course.) See REF *SYSTEM. A new integer variable -popminmemlim- controls the minimum number of words at which the system should maintain the combined heap/user stack memory area (cf -popmemlim- for the maximum value). See REF *SYSTEM for details. For Lisp users New module, "storeutils", added. This provides a Lisp interface to POPLOG Storeage Management facilities. See HELP * STOREUTILS. Note: the variable *GC-TIME* is now part of the "storeutils" module; it is only defined if this module has been loaded. Also, the macro TIME will only print GC time statistics if "storeutils" is loaded. -- External load and LIB EXTERNAL ------------------------------------- LIB EXTERNAL now returns a ddecimal when given a ddecimal in call-by-references using an identifier. New 'external-type' keys allow the creation of 'external class' data objects, containing references to external (non-Poplog) data structures and treated specially by -external_apply-. See REF *EXTERNAL, REF *KEYS, HELP *RECORDCLASS The LIB EXTERNAL package is intended to simplify the use of external_load. The package has been extended to cope with more of the syntax of Fortran 77. For the moment the extended version and the old version are both provided in case there are problems of upward compatibility. From V14 he old version will be withdrawn. The new version is LIB *NEWEXTERNAL documented in HELP *NEWEXTERNAL and associated with LIB * NEWFORTRAN_DEC. To use the new version it is necessary to do lib newexternal or uses newexternal explicitly before using the "external" commands described in the help file. -- Lisp Changes ------------------------------------------------------- See HELP *LISPNEWS There are several new facilities including improved support for Lisp in the editor VED and some useful new modules. Lisp performance has been improved. See also HELP *POPLISP -- Prolog Changes ----------------------------------------------------- Improvements have been made to the database handling mechanism. The predicates assert/1, retract/1 and clause/2 (and their derivatives) now all work substantially faster than previously. Certain inconsistencies in behaviour have also been removed. There have also been improvements in the error handler, several minor bug fixes, and a number of new utilities (e.g. new predicte declarations) improved VED support for Prolog, and improved documentation. See HELP *PLOGNEWS for information about additional changes. -- Pop-11 syntax ------------------------------------------------------ A new macro #_INCLUDE 'filename' enables the stream of items from a file to be 'included' in (spliced into) the current -proglist-. See REF * PROGLIST. Improved facilities for defining new syntactic forms. The syntax for "define" has been extended to allow users to define new syntactic forms enclosed by "define" and "enddefine", e.g. define :class name ... enddefine; Using define and enddefine as openers and closers enables a collection of standard VED utilities to be used without change, e.g. ved_mcp, ved_lcp, ved_gsp. For full details see HELP * DEFINE_FORM. REF * POPSYNTAX has not yet been updated to accommodate the new syntax. HELP * DEFINE had seriously misleading information about definitions specifying negative precedence. This has been corrected. New POP-11 syntax -fast_repeat- speeds up loops of the form fast_repeat <expression> times <actions> endfast_repeat ;;; or endrepeat New syntax words -returnif- and -returnunless- added. See REF * SYNTAX and REF * POPSYNTAX The quoted word syntax has been extended to allow a string between the word quotes. Thus the following are now legal Pop-11: vars s1 = "'a string !!'"; if pdprops(proc) == "'foo/3'" then The syntax words that can occur between "define" and a procedure name have been listed in the list -define_headers-, and those which can occur after the procedure call pattern in the header are in the list -define_terminators-. Both are used by ved_f and the former by -ved_tidy-. -- New procedures, data-types, global variables, etc ------------------ Short (16 bit signed) vectors ("shortvec") added to complement "intvec". See REF *INTVEC. A set of ``fast'' procedures for accessing integer vectors in a consistent way has been added - see REF *FASTPROCS. -newanyarray- now checks that the arrayvector is big enough for the maximum arrayvector bound. -arrayvector- now has an updater pop11_comp_procedure(CLOSER, P_NAME, PROPS) -> P; Compiles a procedure from just before the argument list up to CLOSER (a word or list of words e.g. "end" "enddefine" "endprocedure"). P_NAME is the name of the procedure or false, -radix_apply- allows printing with a new radix. E.g. to print N in octal radix_apply(N,pr,8) See REF * LISTS /sysconslist_onto A bug in -newanyarray- has been fixed - it is now possible to create 0-dimensional arrays by specifying an empty -boundslist-. However, this means that is no longer possible to directly specify -nil- as the initial element of an array, because -nil- will now be interpreted as a -boundslist-. New facility -sys_destroy_action- allows users to assign a procedure to be run when a data object becomes garbage. This enables tidying up to be done (e.g. notifying a remote window manager that a certain window is no longer needed). See REF *PROPS The procedure sys_= now returns true for two closures if their pdparts are =, they have the same number of frozvals, and their corresponding frozvals are =. See REF * KEYS ISSUBSTRING has been altered: the second argument (integer) is now optional and defaults to 1. Two new string procedures in library * ISMIDSTRING(s1,s2), * HASMIDSTRING(s2,s1). See REF * STRINGS The procedure * ISSTARTSTRING has been moved from the library into the system and re-defined to be more efficient. * HASSUBSTRING has been modified so that it accepts an optional integer argument analogous to * ISSUBSTRING The new procedure -consclosure- constructs closures without requiring the frozvals to be in a list. Format is consclosure(P, FROZ_1, FROZ_2, ..., FROZ_N, N) -partapply- has been moved out of the system to the autoloadable library; it is now just: consclosure(P, destlist(FROZ_LIST)) See REF * PROCEDURE Added -fast_frozval-, non-checking version of -frozval-. A new procedure -property_active- allows the active default procedure for a property to be accessed or updated (in particular, the updater can be used to give an active default to a property constructed with -newproperty-). See REF * PROPS The library procedure -datafile- can now save ordinary -newproperty- style properties. See HELP * DATAFILE. A new procedure -ident_declare- declares permanent variables. This is basically the same as -sysSYNTAX- (with the same arguments), except that -ident_declare- has no interaction with lexical declarations. See REF * IDENT, REF * VMCODE. The fast arithmetic operators -fi_div- and -fi_rem- are now in the core system rather than the autoloadable library. See REF * FASTPROCS The standard empty string previously called -vednullstring- is now called -nullstring- (the old name remains as an autoloadable synonym). New procedures that operate on lists added: -fast_subscrl- and -initl-. Also, -fast_ncdelete- moved from library to system. See REF * LISTS, REF * FASTPROCS The new (active) variable -pop_pr_level- controls the depth to which components of datastructures are printed. See REF *PRINT. The variables -popfilename- and -poplinenum- are now set correctly during non-interactive compilation from a VED buffer. This means that error messages resulting from 'lmr' compilation will now display source file name and line number. The macro -uses- now plants a call to a new procedure -useslib-, rather than executing immediately. See REF * LIBRARY/uses Discovered and fixed a serious (and ancient) bug in concatenating words with the <> operator. When one or other word was empty (i.e. 0 length), the result returned was garbage, and the heap was corrupted. New procedure match_wordswith described in HELP * WORDSWITH. -match_wordswith- takes a string and matching procedure, or else a string pattern and returns a sorted list of all matching words in the Poplog dictionary. (Used in a new VED facility) LIB NCREV speeded up by a factor of about 4 on non-dynamic lists. See HELP NCREV -- Words, identifiers and sections ------------------------------------ The procedure -section_pathname- returns the full pathname of a section, as a string. See REF *SECTIONS. The procedure -identof- now has an updater, enabling (permanent) identifiers to be attached directly to words. -Syssynonym- can now be defined simply as identof(word2) -> identof(word1) Enhancements and bug fixes to the section mechanism (see REF *SECTIONS): 1. Imports and exports specified in a -section- statement now take effect in all intermediate sections specified in a pathname, e.g. section $-tom$-dick$-harry xxx => yyy; ... endsection imports -xxx- from top-level down through -tom- and -dick- into -harry-, and exports -yyy- from -harry- up through them to top-level 2. -word_identifier- has been enhanced so that it can return 'undeclared' word identifiers word_identifier(WORD, SECT, "undef") -> WORD_ID when WORD is not currently declared in SECT. The WORD_ID returned then will act as a vehicle for declaring WORD in SECT, in the sense that any later attachment of an identifier to WORD_ID (e.g. with -sysSYNTAX-, -syssynonym-, etc), will simultaneously attach that identifier to WORD in section SECT (conversely, a later declaration of WORD in SECT will cause the new identifier to become attached to WORD_ID also). The new facility is now used by the procedure that reads identifier pathnames in POP-11 (-sys_read_path-), and this means that new sectioned identifiers can be declared or defined by pathname reference alone. For example, define $-foo$-xxx(); ... enddefine; previously produced a mishap unless -xxx- was already declared in section -foo-, but works in the new system (but note however that this mechanism will NOT create new sections -- any sections involved must have been created first by a -section- statement). The -cancel- syntax word now also uses -sys_read_path-, and so can be used to cancel sectioned identifiers. -- Documentation changes ---------------------------------------------- HELP * LISPNEWS and HELP * PLOGNEWS have been updated. There have been a number of improvements to old documentation (e.g. some of the teach files improved), and a considerable amount of new documentation, e.g. HELP * DICTIONARY explaining some aspects of the structure and function of the Poplog dictionary, and REF * SYSTEM describing system startup and reset, exit, interrupts, etc. A number of HELP and TEACH files have been improved, with cross references brought up to date: HELP *DEVICE *DEVNAME *HELPFILES *INPUT *INPUTOUT *IO *NEXTCHAR *OUTPUT *POPDEVRAW *POPRAWDEVIN *POPRAWDEVOUT *RAWOUTFLUSH *SYSTRMDEV *FILL *DL *EXPLODE HELP * DOCUMENTATION, * VEDSYSFILE, * VEDGETSYSFILE TEACH * PERCENT, HELP * PARTAPPLY, * PERCENT, * CLOSURES HELP * VEDVARS substantially improved. Broken down into different sections, with clearer information for anyone tailoring VED to a new terminal. HELP * VEDCOMMS reorganised and clarified. Now includes information on VED command line processing. New versions of the following TEACH files have been installed. BUFFERS DATABASE DEFINE LMR MARK MATCHES MOREVED RESPOND SWITCHWINDOW TEACH TEACHFILES VARS VED VEDPOP The main change is that these files are now TERMINAL INDEPENDENT: It is assumed that the learner has a keyboard map and VED keys are referred to by logical names as in the VED User Guide. In addition The files make use of "load marked range" rather than <ENTER> x (i.e all compilation is now done from the edit buffer). The recommended initial teaching sequence is therefore: TEACH, WINDOW, MARK, SWITCHWINDOW, BUFFERS, LMR, VEDPOP, RIVER, MATCHES, RESPOND, DEFINE, VARS, MOREMATCHES, DATABASE, MOREVED. Online HELP and VED_?? documentation on *FILL, *DL and *EXPLODE did not mention that FILL could take records as well as vectors, and that DL and EXPLODE now have updaters. Now fixed. A new PWM help file *PWMWINIO has been added, discussing how to achieve character-stream I/O on PWM user windows. -- Errors and tracing ------------------------------------------------- Tracing facilities extended as follows. 1. Trace output is printed even if the procedure is entered or exitted in an 'abnormal' fashion. These abnormal entry/exit statuses are indicated by replacing the `>` and `<` that occur in normal trace output by one of the following characters: R entry due to process resume S exit due to process suspend X any other abnormal exit 2. The new variable POPMAXTRACEINDENT (default 40) controls whether trace printing uses rows of exclamation marks to indicate depth of procedure calls or a number in brackets. The latter can be forced in all contexts by assigning 0 to POPMAXTRACEINDENT, producing trace printing of the form: [ 3]> addup 1 ;;; depth of recursive call is 3 [ 4]> addup 0 ;;; depth is 4 [ 4]< addup 0 ;;; exiting call of depth 4 [ 3]< addup 1 For full details see HELP * TRACE. NOTE Abnormal exits due to -setpop- are not displayed Abnormal exit tracing can be turned on/off -- New virtual machine instructions ----------------------------------- New VM instructions sysSUBSCR and sysUSUBSCR for planting fast in-line vector subscriptor code (for arbitrary vector types). Also sysEXT_FIELDVAL, sysUEXT_FIELD_VAL, sysEXT_SUBSCR, sysUEXT_SUBSCR, for planting accesses to data pointed to by external class data objects. See REF *VMCODE, REF *EXTERNAL POPLOG VM procedures that previously had updaters that were not alterable by users have been changed to call the corresponding user-definable procedures. So the updater of sysPUSH now calls sysPOP, the updater of sysCALLQ calls sysUCALLQ the updater of sysCALL calls sysUCALL, the updater of sysCALLS calls sysUCALLS, the updater of sysPASSIGN calls sysUPASSIGN. See REF* VMCODE New VM flag -VM_NO_CHECK_GO_ON_INT- added. See REF * VMCODE/sysGO_ON -- VMS only ----------------------------------------------------------- Conversion to VMS version 5.0 -- UNIX only ---------------------------------------------------------- There are new handlers for the 'suspend' and 'continue' signals, and as a result VED's default behaviour on suspension is more sensible. See HELP * STOP, REF*SIGNALS The -syssleep- procedure now exits only in response to the timer or ctrl-C interrupts, not other signals. A collection of utilities for multiplexing and communication between Poplog and sub-processes via pseudo-teletypes has been added to the unsupported library. This includes a more sophisticated 'shell-in-ved-buffer' interface - like IMCSH only more useful as it can be used for interactive programs. See HELP *PTYFORK, HELP *MUX, HELP *VSH. A new collection of autoloadable facilities for running Unix commands and reading the output back through a pipe includes VED commands for running processes and reading the output into a temporary VED buffer. See HELP * PIPEUTILS for an overview. The new procedures and VED commands include: pipein(C,A,B) -> R run a command with specified arguments and return a device or repeater to access the pipe. vedpipein(C,A,F,P,B,H) run a command and read the output into a temporary ved file F with header and formatting controlled by P, B, and H. vedgenshell(C,H) Run a shell command, read output into a VED file with header H. <ENTER> sh <command> <ENTER> csh <command> <ENTER> rsh <machine> <command> <ENTER> rved <machine> <file> Compile and run C or Fortran programs using <ENTER> ccomp and <ENTER> fcomp. See HELP CCOMP, HELP FCOMP The procedure -sysfileparse-, on Unix POPLOG systems only, can be given an optional second argument specifying the host name delimiter character. See HELP * SYSFILEPARSE -- LIB FLAVOURS ------------------------------------------------------- Various bug fixes to this object oriented programming library are recorded in HELP NEWS. -- Changes to the editor, VED ----------------------------------------- LIB * VEDEMACS has been extensively revised, as described in HELP * VEDEMACS. The main changes are a. A useable version is available for VMS with alternatives to the control characters ^S, ^Q, ^Y b. Several discrepancies between LIB VEDEMACS and standard UNIX EMACS have been removed. E.g. capitalisation of initial letter of words, tracking end of line, etc. work. Other discrepancies remain, however. Other changes are listed in the HELP file. Unix only: There is also a "dired" -like extension to VED partly inspired by the EMACS dired. ved_dired enables you to read a directory listing into a VED buffer then very easily delete, copy, rename, or edit individual files. If one of the files is itself a directory dired can be used to read in a listing for that directory. The facility is extendable by users, who can define new dired options to operate on the file named in the line containing the VED cursor. See HELP * DIRED for full details. Improved VED support for Lisp users is described in HELP*LISPNEWS Added -ved_capword- for convenient invocation in VED <ENTER> capword N will capitalise N words. See HELP * VEDEMACS/Capitalise, HELP * VEDPROCS/vedcapword, HELP * VEDCOMMS/ved_capword LIB * VEDCONVERTWORD fixed so that it can move to left or to right (changing case). So <ENTER> ucw, and <ENTER> lcw can now be given negative arguments. E.g. to convert last three words to upper case, do <ENTER> ucw -3 User-definable procedure -vedvedquitfile- which is called when a a VED file is quit. VED's strategy for deciding what file to edit after a quit has been simplified - it now simply goes back to the previous file edited instead of trying to be clever about selecting the last file of the same type (e.g. TEACH, HELP, etc). VED_W (<ENTER> w) and VEDWRITEFILES altered so that empty VED files will be written if they already exist on disk. -vedstatusbufferlimit- (default 60) is now user assignable, to allow more <ENTER> commands to be stored in the VED status buffer. There are new VED commands for manipulating list expressions in the editor. Various bugs have been fixed in the search mechanism, and it can now handle patterns and non-embedded during backward search as well as forward. In particular <ENTER> `string` will search backwards for non-embedded occurrences of 'string'. VED re-search for previous string generalised. <ESC> \ and <ESC> / now no longer merely remember the last search string used, they also remember whether the search was embedded or not. The full state of the last search is represented by the following global variables. vvedanywhere - search not constrained to item boundaries vvedoldsrchdisplay - original search string, including patterns etc. vvedsrchstring - copy of vvedoldsrchdisplay modified for efficient matching vvedsrchsize - length of vvedoldsrchdisplay <ENTER> s no longer inserts leading spaces when lines become too long. I.e. it behaves like <ENTER> gs. <ENTER> s no longer calls -vedscreenbell- at the end of the search. Some bugs concerned with searches including patterns and starting beyond the end of the file have been fixed. The help file, HELP * VEDSEARCH has been updated and clarified. -ved_f- now uses the two lists -define_headers- and -define_terminators- It also now copes with section pathnames in procedure headers, e.g. <ENTER> f grum will now find define $-foo$-baz$-grum(x,y); It also now works with new "define:" formats, e.g. define : <type> name -ved_mep- (mark to end of procedure) now works if called in the middle of a procedure. Finding words in the dictionary (apropos) <ENTER> wordswith <string or string pattern> Prints into a VED buffer all words in the dictionary that contain the string or match the pattern. See HELP * WORDSWITH New procedure -vedteststartsearch- takes a string and searches for line in current VED buffer starting with the string. Returns line number or false. ved_indexify and ved_g both use -vedteststartsearch- so that users can be less restricted in choice of ved_g_string. See HELP * ENTER_G. There are new facilities for appending the marked range to a disk file without reading the file into the editor. They are therefore faster than ved_to and ved_mo. <ENTER> wappr <file> Write and append current range to file. Much faster than ved_mo or ved_to, since it uses discappend and not VED. <ENTER> wappdr <file> Writes the range, appending it to file, and deletes it from the current file. See HELP * VEDCOMMS/ved_wappr The standard empty string previously called -vednullstring- is now called -nullstring- (the old name remains as an autoloadable synonym). Some internal VED procedures for refreshing parts of the screen are documented in HELP VEDCOMMS and made available to users. vedrefreshtail(boolean, wline, wcol, index, string) Refresh line to right of window line wline column wcol For details see HELP * VEDCOMMS/vedrefreshtail vedrefreshline(boolean, wline, string, <boolean or char>) Refresh whole of window line wline For details see HELP * VEDCOMMS/vedrefreshline vedrefreshstatus() Refresh status line The new procedure -is_ved_lmr_stream- recognises character repeaters given to -popcompiler- by -ved_lmr-. <ENTER> @ options extended to allow all the following, described in HELP * VEDCOMMS <argument> <line to go to> a first line of file z last line of file m marked range start e end of marked range <integer> go to line number <integer> +<integer> go forward by <integer> lines -<integer> go back by <integer> lines Bug in -vedappfiles- fixed: it now correctly restores the original VED environment if an error occurs during execution. VEDEXPAND file name option modified. ^f will now expand to file name EXCLUDING trailing comma or period. See TEACH * VEDEXPAND VED debugging aid * VEDDEBUG altered so that it makes the cursor wiggle at the current line and column, and if popready is invoked it now restores the screen properly. VEDWRITERANGE can now accept a device instead of a file name. Tab conversion (with VEDNOTABS false) is now done for all VED files read or written, whether a disk file is involved or some other device. See HELP * VEDPROCS/vedwriterange *VEDVARS/vedreadintabs <ENTER> ?? with no argument, no longer puts the default argument (next item in VED buffer) onto the command line. Instead it puts the expanded command on the previous line in the command line buffer. See HELP * VED_WHAT New VED procedure VEDENDRANGE jumps to end of marked range, just as VEDMARKFIND jumps to beginning. SHOWLIB * VEDENDRANGE When VED reads in files it now sets -popmemlim- locally to popmemused + 1000000. This should largely cure the problem of running out of memory while reading in a large file. -- Poplog Window Manager (PWM) ---------------------------------------- Most of the work has been consolidation and bug fixing, as the major effort has gone into work to provide support for the X Windows System Version 11. The X-11 extensions to Poplog will be made available later, and a PWM compatibility package provided. A new PWM help file *PWMWINIO has been added, discussing how to achieve character-stream I/O on PWM user windows. -pwm_window_label- and -pwm_icon_label- now update internal representations of label (used by event printing routines etc.) DOC *PWM has been updated. -- KEATS - the knowledge engineering apprentice tool system ----------- This is a system developed originally by the Open University and British Telecom on a symbolics computer. Part of KEATS has been ported to Sun Poplog running under the X Window System Version 10.4. This will be made available initially only to UK academic institutions. However, if there is sufficient demand it may be made more widely available. Please consult your Poplog supplier. -- Miscellaneous ------------------------------------------------------ LIB SHOWTREE no longer calls vedsetup if it is being compiled by a non-interactive process. The structure browser LIB INSPECT now defines -inspect1-, a procedure that displays an object in the standard -inspect- format, without entering an interactive loop. See HELP * INSPECT LIB SHOWARRAY for easy printing of arrays as tables of values or blocks of 'grey-level' characters, and LIB READARRAY to allow files of characters or turtle pictures such as LIB GREYPIC to be read into ordinary arrays. See TEACH * SHOWARRAY and TEACH * READARRAY. The Unix LIB VED_SEND facilities have been extended. SEE HELP * SEND -- NOTE ON FILENAMES -------------------------------------------------- In some of the examples in this file and elsewhere, UNIX file name format is used. VMS users should do the corresponding translation. E.g. UNIX version VMS version ------------ ----------- $usepop/pop/lib/psv/eliza.psv USEPOP:[POP.LIB.PSV]ELIZA.PSV $usepop/pop/com/poplog USEPOP:[POP.COM]POPLOG.COM The addition of ".COM" is required only for command files. Apart from this, the UNIX format may be used in VMS POPLOG programs. They will automatically be translated. See the section on "File Specifications" in DOC * SYSSPEC --- C.all/help/v13_6.changes --- Copyright University of Sussex 1988. All rights reserved. ----------