Search Top Index
HELP NEWS.V14 John Williams, Jul 1992 For the most recent news, please see HELP * NEWS. -- VERSION 14.0 NEWS -------------------------------------------------- SEE HELP * V14.CHANGES for a summary of changes since V13.6 Feb 11 (John Williams) --- Two new PWM libraries (courtesy of Reading University) added. See LIB * PWM_MAKE_LABELITEM and LIB * PWM_MAKE_LISTITEM. Feb 6 (John Williams) --- Documentation on <ENTER> ? and <ENTER> ?? completed. See HELP * QUERY, HELP * MKREFINDEX, and REF * VEDCOMMS. Feb 4 (John Williams) --- Updated HELP *LIBWORDS, *POPPROCS, *POPVARS. HELP FASTPROCS deleted (see REF * FASTPROCS instead). Jan 31 (Aaron Sloman) --- ved_splice used to give an inappropriate error if invoked before ved_cut. Now fixed. See REF * ved_splice, * ved_cut --- ved_imsh (Unix Only) used sometimes to give no response to the first command, then, after each subsequent command, produce output to the previous command. Now fixed. See HELP * IMSH --- isendstring('','') previously gave an error. It now returns 1. (This has a justification as a limiting case). This fixes certain errors that occasionally caused VED to go badly wrong when given a file name with no file name part. --- HELP files for three obsolete procedures have been updated: HELP * POPCONSTRUCT, * POPDEFINECONSTANT, * POPDEFINEPROCEDURE For information on their replacements see REF * POPCOMPILE/pop_pop11_flags SHOWLIB * COMPILE_MODE. Jan 30 (John Williams) --- Improved documentation on libraries and search lists: see REF * LIBRARY HELP * AUTOLOAD HELP * POPLIBLIST HELP * POPUSESLIST HELP * SEARCH_LISTS (new file). Jan 26 (Roger Evans) --- Extra flexibility added to LIB * SHADOWCLASS (see REF * SHADOWCLASS, which now exists!). However this change is slightly non-upwardly compatible with the version provided in the v14-beta test system (shadowclass did not exist before then). Any existing shadowclass declarations which specify a 'props' attribute will have to be changed as follows. For a constant props attribute, formerly thus: shadowclass [myprops] .... the declaration should now be: shadowclass [props myprops] .... For a props attribute held in a variable, formerly thus: shadowclass [ #_< myprops >_# ] .... the declaration should now be: shadowclass #_< [props ^myprops] >_# .... Apologies to the (hopefully extremely few) users who are inconvenienced by this change. Jan 20 (Aaron Sloman) --- Corrected a number of errors and omissions in HELP * VEDKEYS Jan 15 (Aaron Sloman) --- A problem with VED and PWM fixed. Recent changes had caused too much mouse cursor motion if vedusepwmwindows was anything but []. This is now fixed, and true-> vedusepwmwindows is equivalent to [vedswapfiles vedfileselect ved_rb] -> vedusepwmwindows; See REF * vedusepwmwindows Jan 14 (John Williams) --- Version number changed to 14.0 Jan 12 (Aaron Sloman) --- Two new autoloadable library procedures added, * dupnum and * applynum, completing this table sysERASE erase erasenum sysPUSHS dup dupnum sysCALLS apply applynum -apply- and -applynum- have updaters. see REF * STACK, * PROCEDURE Jan 11 (Aaron Sloman) [UNDONE LATER. See June 15] --- Changed updater of vedusepwmwindows so that assigning true to it is equivalent to assigning [vedswapfiles]. [See above] Jan 10 (Aaron Sloman) --- Updated HELP * VEDSET and HELP * VEDSETKEY with warnings about putting customisation commands into vedinit.p file outside procedure -vedinit- Jan 4 (Aaron Sloman) --- REF * PROCEDURE updated with information about protected closures. HELP * CLOSURES has been re-written and expanded. --- HELP * EXTERNAL has been reorganised so that the whole table of contents is at the beginning. HELP * NEWFORTRAN_DEC now explains the fortran facilities in LIB * NEWEXTERNAL and LIB * NEWFORTRAN_DEC Jan 3 (Aaron Sloman) --- REF * VEDPROCS has been updated to indicate which procedures are user definable. Also various minor errors corrected. --- REF * VEDCOMMS has been reorganised, errors corrected, and a section added on commands for manipulating rectangular text blocks. See REF * VEDCOMMS/block Jan 1 (Aaron Sloman) --- Startup procedures for Lisp, Prolog and ML have been improved so that if they are run with an argument such as "ved <filename>" or "help <filename>" they will go straight into VED, and read in the appropriate file, as if the command had been given to VED. This is not done for Pop-11 (a) because it is inconsistent with the existing mechanism for giving a program file name as argument to Pop-11 (See REF * SYSTEM) and (b) because "ved", "help", "teach" etc are already defined as abbreviations for this purpose. 1990 ---- Dec 13 (Aaron Sloman) --- LIB * VED_DK has been extended to make the ENTER dk command far more versatile, so that it can be used to map a key sequence onto a known VED function or onto an ENTER command. For details See HELP * DK Dec 12 (Aaron Sloman) --- Several HELP files concerned with numbers improved: HELP * INTOF, HELP * FRACOF, and the section of HELP * EQUAL concerned with comparing numbers Dec 6 (Roger Evans) --- Batching mechanism for -exload_batch- improved, and a new user variable -exload_strict_batching- added. See REF *exload_batch Nov 27 (Aaron Sloman) --- Global variable -vedinputfocus- put in to fix bug in connection with immediate mode has had to be exported for use in things like LIB * WINDOWS Nov 21 (John Williams) --- Version 13.91 (beta-release V14). Nov 20 (Aaron Sloman) --- ENTER ljmr extended to cope with negative argument, and bug fixed. See REF * ved_ljmr Nov 16 (Aaron Sloman) --- LIB DIRED (Unix only) extended with "dired -dcd" command to delete current directory listing. See HELP * DIRED Nov 16 (John Williams) --- New documentation: HELP * VEDXTERM, which explains how to set up VED for use with the Xterm terminal emulator, and HELP * HPXTERMKEYS, which shows the VED key mappings for an HP 9000 under Xterm. --- LIB * VEDXGOTOMOUSE provided for using mouse to move VED cursor in an xterm window. Documentation is in HELP * VEDXTERM --- New (autoloadable) procedure -newprwarning- added. If assigned to -prwarning-, extra information (i.e. the current filename and line number) will be printed whenever a 'DECLARING VARIABLE' warning occurs. Nov 15 (John Gibson) --- A new (protected) variable trap procedure -pop_chario_trap- is now called by -charin-, -charout-, and -charerr-. See REF *CHARIO. Nov 14 (John Williams) --- LIB * MKREFINDEX, the utility for indexing REF files, is now documented in HELP * MKREFINDEX. The index files are also used by ved_?? --- New VED command <ENTER> COLS added. If called, VED will display the current column number on the status line, instead of the current line number. Uses the procedure *ved_cols and the variable *vedstatusshowcols. Nov 13 (John Williams) --- New standard device *pop_null_device added (as an autoloadable constant). --- The VED command <ENTER> HELPFOR has been considerably improved. See HELP * HELPFOR. Nov 9 (John Williams) --- Failed documentation requests now produce polite "not found" messages, instead of causing a MISHAP. It is now possible to trap failed requests by redefining the new procedure *vedsysfileerror. Nov 6 (John Gibson) --- A new procedure -consdevice- allows `user' devices to be constructed, which devices can then be used with standard I/O procedures such as -sysread-, -syswrite- etc to implement simulated I/O channels (there is also an associated new procedure -device_user_data-). The new facilities are described in REF *SYSIO (which has been overhauled, and the previously separate Unix and VMS versions combined into one). --- POP11 VED commands like "ved", "help", etc now work correctly in VED immediate mode compilation. Nov 4 (Aaron Sloman) --- Modified effect of vedusepwmwindows being true. It no longer transfers input focus when you quit a file. --- LIB * FMATCHES, described in HELP * FMATCHES makes available a version of the Pop-11 pattern matcher that can be used with in sections and with lexical variables. It can also find matches not found by the ordinary matcher. There are corresponding disadvantages, described in the help file. Oct 30 (Aaron Sloman) --- LIB * VEDFILECOMPLETE enables automatic filename completion in VED. See * HELP VEDFILECOMPLETE. --- HELP * NEWPROPERTY was out of date. It has been corrected. --- * EXTEND_SEARCHLIST extended to cope with a list as first argument. --- LIB * POPXLIB now extends each documentation search list with the "other" X documentation directories Oct 29 (John Williams) --- New library LIB * MKVEDIMAGE added. For building saved images that speed up VED startup. See HELP * MKVEDIMAGE for details. Oct 29 (Aaron Sloman) --- Fixed bug in -vedfileselect-. It previously got into trouble if a file had something like a list for vedfileprops Oct 27 (Aaron Sloman) --- Added "#|" to -vedopeners- "|#" to -vedclosers- --- Various documentation files updated, corrected, re-formatted. REF * SYSTEM has X startup information added. HELP * X brought up to date HELP * VEDKEYS had wrong entry for ESC 3, now fixed. --- Updated HELP * LOGICAL_KEYS, * VEDCOMMANDS, * VEDVEDDEFAULTS * VEDEMACS --- Updated REF * VEDPROCS, * VEDCOMMS --- New procedure * VEDCHECKSIZE to determined whether * VEDRESIZE should be invoked. --- The default * VEDFILETYPES now sets the variable -vedindentstep- so that if changed for one file it is not inherited for all other files. Users wishing to have a different default value should assign an appropriate list to vedfiletypes. Oct 25 (Aaron Sloman) --- Bug fixed in LIB SHUFFLE. It used to remove repeated elements from the list it was shuffling. It doesn't now. Oct 22 (John Williams) --- The sequence of actions normally performed when POPLOG starts up have been collected together in the new procedure -syssetup- (described in REF * SYSTEM). Useful for re-initialising after restoring a saved image. Oct 19 (Jonathan Meyer) --- New procedure -sysprmessage- added, for printing messages in standard POPLOG error format (but not necessarily flagged by the word "MISHAP"). The procedures -sysprmishap-, -sysprwarning-, and -warning- now all use -sysprmessage-. See REF * MISHAPS. --- LIB * EXLOAD extended to provide facilities for batch loading, and also a "require" mechanism that will not reload identifiers that are already defined. Documentation to come shortly. Oct 19 (John Williams) --- New VED command <ENTER> HKEYS added. This displays a HELP file which illustrates the current set of VED key bindings. Documented in REF * VEDCOMMS/ved_hkeys --- HELP * VEDSUN has been substantially rewritten. It discusses the various libraries available for using VED on a Sun workstation. --- New variable -vednosunviewkeys- introduced. If declared, and not false, it forces LIB * VEDSUNKEYS to load the key mapping described in the file HELP * SUNKEYS. By default, -vednosunviewkeys- is not declared, and so LIB VEDSUNKEYS loads the key mapping shown in HELP * SUNKEYS_SUNVIEW. See REF * VEDTERMINALS/vedsun. --- The libraries that set up VED on a Sun now make use of the extra righthand keypad keys available on Sun type-4 keyboards. -- The obsolete library LIB NEWSUN (and associated help file) has been removed. Oct 19 (John Gibson) --- A bug that occasionally caused the system to hang up in a tight non-interruptible loop has been tracked down. The problem was concerned with procedures like >< and sys_>< which locally redefine -cucharout- to be -identfn-; when such a procedure caused a garbage collection, and -popgctrace- was true, the attempt to print the GC message through -identfn- resulted in the loop. To obviate this problem, the garbage collector now locally resets -cucharout- to -charout- if its current value is -identfn-. Oct 16 (Aaron Sloman) --- LIB VED_GREP (Unix only) has been completely re-written to be far more flexible and faster. See HELP * VED_GREP --- Bugs in LIB WINDOWS fixed, and documentation revised. See HELP * WINDOWS (Version of VED for more than 2 windows on a VDU) Oct 13 (Aaron Sloman) --- To enable users to over-ride some of the default settings for the Pop-11 error handler more easily, a new variable has been introduced pop_default_prmishap. Its default value is -false-. If a procedure is assigned to it then that be used as the value for prmishap inside VED instead of -vedprmishap-. It will also be used inside ved_lmr, which also previously used to over-write user's error handlers. Oct 12 (Aaron Sloman and Robert Duncan) --- Owing to complaints from users resulting from changes introduced in V13.7 (January 1990), the old default key bindings for VED have been re-installed, and documentation moved from HELP * VEDOLDKEYS to HELP * VEDKEYS. The new (far more systematic) key bindings remain available via the procedure -vednewkeys- which can be assigned to -veddefaultkeys- in the user's vedinit.p file. These bindings are described in HELP * VEDNEWKEYS. There are some additional key bindings now provided by -vedoldkeys- to help users whose keyboards lack adequate function keys. The new facilities are flagged with "++" in HELP VEDKEYS. The following files have been updated, accordingly: REF * VEDTERMINALS, HELP * TERMINAL, HELP * INITIAL, HELP * VEDOLDKEYS, HELP * VEDKEYS, HELP * VEDNEWKEYS --- In consequence of the above change, LIB * VEDANSIKEYS has been created, to use vednewkeys, and LIB * VEDANSI extended to use it. Oct 9 (Simon Nichols) --- POPLOG now recognises the following special arguments, all of which begin with a '%' character, and cause the associated actions to be performed: %nobanner suppresses printing of the banner %noinit prevents compilation of initialisation files %x tells POP-11 to start-up under X The %x argument may optionally be followed by a bracketed list of X arguments, which is assigned to the variable -popunderx-. For example, pop11 %nobanner %x \( -display cx010:0.0 \) causes POPLOG to startup under X without printing the banner. The variable -popunderx- will have the value: ['-display' 'cx010:0.0'] See REF * SYSTEM for details. Oct 9 (Aaron Sloman) --- -vedrestorescreen- and a number of other VED procedures have now been made user definable. --- previous work on extra hooks for XVed has been rationalised and extended. When documentation is ready this news entry will be updated. Oct 4 (Aaron Sloman) --- LIB * WINDOWS (multi-window VED) would not compile after a library file was moved into the system. Now fixed --- LIB * VEDVT220SCREEN modified to speed up character insertion and deletion --- LIB * VEDVT100SCREENEXTRA provides similar speed up for VT100 type terminals that support character insertion and deletion in the middle of a line. E.g. this can be used with xterms Oct 3 (Aaron Sloman and John Gibson) --- sysvfork (Berkely type Unix only) had recently been modified to take account of nested virtual forks up to 4 deep. This prevented sysfork in the context of sysvfork working properly. This has now been fixed. Oct 2 (Aaron Sloman) --- The procedure previously called vedrefreshregion has been renamed as * vedrefreshpartline. In addition bugs have been fixed. --- This permitted * VEDREFRESHBLOCK to be reimplemented so that it handles tabs correctly (See LIB * VEDBLOCKS) --- Introduced procedure vedscreenblankpartline See REF * VEDPROCS Sep 30 (Aaron Sloman) --- The procedure -pretty-, used by ==>, has been modified so that it never increases poplinewidth or poplinemax, though it still decreases them if necessary to fit in a VED window. See REF * PRINT, HELP * POPLINEMAX, POPLINEWIDTH Sep 29 (Aaron Sloman) --- A number of new hooks into VED have been provided at the request of users. * VEDEDITORTRAP allows a user defined procedure to be run when * VEDEDITOR first starts up or re-enters, before it calls * VEDGETFILE and then * VEDPROCESS * VEDEDITOREXIT is called whenever VED exits normally or abnormally from VEDEDITOR * VEDINITIALISE (introduced DEC 1989 has been generalised to take an argument as described in REF * vedinitialise Sep 29 (Aaron Sloman) --- In order to facilitate a multi-window interface to VED in an X windows environment (analogous to that described in HELP PWMVED) various changes have been made to VED and PWM procedures. These should all be totally upward compatible. For details see ???? Sep 28 (John Williams and Aaron Sloman) --- New file HELP * CONTRIB installed. This describes the "contrib" directory tree, which provides software, documentation and teaching material supplied on an "as is" basis by Poplog users, currently mainly at Sussex University. It includes such things as all the programming examples from the Gazdar and Mellish books on Natural Language processing (See HELP * POPREFS), an extended version of the Poplog window manager provided by Anthony Worrall of Reading University, and additional utilities, demonstrations, etc. The file $popcontrib/contrib.news will summarise additions to the contrib library. NOTE: whether the Poplog contrib library is available will depend on your installation manager. Sep 24 (Aaron Sloman) --- Please note that LIB V12PWM is no longer supported. See HELP * V12PWM Sep 21 (Ian Rogers) --- Fixed bug in -quitmessage- which stopped it working for update methods. See REF * FLAVOURS/quitmessage Sep 21 (John Gibson) --- Some changes to -sys_signal_flag-. The value assigned to this can now be a vector of signals to block while running the handler, and values can be assigned for a set of signals simultaneously. The default value of true now means block only that signal while running the handler (the old value 1 is still accepted for upward compatibility, and means the same as true). See REF *SYS_SIGNAL_FLAG. Sep 17 (John Gibson) --- POP11 now supports expression sequences in update mode, where the expressions are evaluated in reverse order. This makes possible `stack tuple' assignments of the form 1,2,3 -> (x,y,z); i.e. the above is equivalent to 1,2,3 -> z -> y -> x; (It also makes possible an update mode -if- like 1,2,3 -> if <cond> then x,y,z else u,v,w endif; etc.) As normal, an empty expression in update mode is interpreted as an erase, so that foo(x,y) -> (u,,w) would erase the second result of -foo-, and foo(x,y) -> (,,) would erase all three, etc. --- A `tuple' facility is also available for use with "=" in identifier declaration and -dlocal- statements, thus: lvars (remainder,quotient) = 14//4; dlocal (u,,w) = foo(x,y); Note that parentheses that are associated with identprops, etc are completely separate from `tuple' parentheses. Thus something like vars procedure (p1, p2) = (identfn, identfn); is NOT allowed; however, tuple parentheses may occur either inside or outside the other kind, i.e. both of vars ( procedure (p1, p2) ) = (identfn, identfn); vars procedure ( (p1, p2) = (identfn, identfn) ); are legal. (Also, commas for separation are MANDATORY everywhere inside tuple parentheses.) --- The output local syntax of -define- and -procedure- is similarly extended, so that define foo(x, y) -> (u, v, w); corresponds to the existing define foo(x, y) -> w -> v -> u; etc. Sep 16 (Aaron Sloman) --- New utility introduced for creating a line-repeater (ie. a procedure that returns a string each time it is called). See REF * SYSIO/line_repeater --- The entry for * ISINCHARITEM in REF * ITEMISE wrongly stated that the underlying character repeater was returned. It is the item repeater created by * INCHARITEM that is returned, and the entry has been corrected. Sep 9 (Aaron Sloman) --- The procedure * VEDREADFILE has been altered to check that its first argument is a procedure BEFORE it starts reading in the file and setting VED's global variables. Because the check used to occur later, VED could sometimes lose a file if a non-procedure was given as first argument to * VEDGETFILE, * VEDEDITOR and related procedures. See REF * VEDPROCS and HELP * VEDVEDDEFAULTS Sep 5 (John Williams) --- New VED terminal libraries LIB * VEDVT320, LIB * VEDVT320SCREEN, and LIB * VEDVT320KEYS added. They are identical to the VT220 versions! See REF * VEDTERMINALS. Sep 5 (Adrian Howard) --- REF * UNIX_MISHAP_CODES and REF *VMS_MISHAP_CODES merged into REF * MISHAP_CODES Sep 3 (Aaron Sloman) --- LIB * VED_SHOWINCLUDE makes it possible to use VED to examine "include" files accessed via -popincludelist-. See HELP * INCLUDE, REF * LIBRARY/Include, REF * #_INCLUDE Sep 3 (Adrian Howard) --- Some "mishap" messages have brief codes that can be used to access a more detailed explanation of the error. Previously these codes all had separate help files. They have now been collected into three REF files: REF * MISHAP_CODES - general Poplog, Pop-11 and VED error codes REF * UNIX_MISHAP_CODES - Unix specific error codes REF * VMS_MISHAP_CODES - VMS specific error codes See also HELP * ERRORS and REF * MISHAPS Sep 3 (John Gibson) --- (Sun-4 POPLOG Only) Fixed a serious bug in the passing of arguments to external functions. The symptom of this bug was that a single-float decimal appearing as an argument somewhere after the 4th to 7th argument positions corrupted an argument in between those positions. Aug 31 (Ian Rogers) --- A completely new version of the C aspect of LIB * EXTERNAL has been written (LIB * NEWC_DEC), with much enhanced capabilities. See HELP * NEWC_DEC for details. Aug 30 (Aaron Sloman) --- REF * VEDXTERM has been updated with a comment explaining how to make function keys on a Sun Keyboard transmit useful characters for VED when running in an xterm window. See also LIB * VEDXTERM Aug 30 (John Gibson) --- Argument strings passed to POPLOG on startup (and put into -poparglist- etc) can now be formed into sub-lists by using the argument strings '(' and ')' as list brackets. That is, all arg strings between these two are collected into a single sub-list element of -poparglist-. See REF *POPARGLIST0. Aug 10 (Aaron Sloman) --- The procedure * VEDSCREENRESET has been made user definable. (caution needed) Aug 8 (Aaron Sloman) --- The Pop-11 procedure -charin- is at last fully documented in REF * CHARIO --- VED's immediate mode mechanism is now fully(?) documented in REF * VEDPROCS (see -vedsetpop-, -vedprocswaiting-, -veddocr) --- REF * REFFILES has been extended to give information about new REF files. July 30 (John Gibson) --- Version 13.82 of POPLOG has major enhancements to the facilities for creating record and vector classes, and a whole new set of facilities for defining and accessing external structures -- including new ways of loading and calling external functions (the term 'external function' replacing the old 'external procedure'). Another important addition is the ability for external code called from within the system to call back to POPLOG procedures. As well as a completely rewritten REF *EXTERNAL (now covering both Unix and VMS), and radical revisions to REF *KEYS and REF *DATA, these changes are covered by two new REF files: REF *DEFSTRUCT --- POP11 syntax for defining and accessing both POPLOG and external structures REF *EXTERNAL_DATA --- Using external data structures in POPLOG, and POPLOG data externally The changes are completely upward-compatible with previous versions of the system; the old facilities for loading and calling external procedures remain as autoloadable libraries. An associated change is that the field specifiers of the three built-in vectorclasses strings, shortvecs and intvecs have changed from integers 8, -16 and -32, to the words "byte", "short" and "int" respectively. However, -class_spec- still returns the old values (which it does by applying -field_spec_info- to the actual -class_field_spec- of the keys, the latter being the new replacement for -class_spec-). See REF *KEYS. July 30 (Aaron Sloman) --- Several incorrect entries in REF *VEDCOMMS have been modified. --- The programs that build indexes for use by * POPINDEX * SOURCEFILE and * POPWHERE have been extended to include Pop-11 files in the prolog, lisp and Poplog/X sources. The command files are $popcom/mkind (Unix) and $popcom/mkind.com (VMS) July 30 (John Gibson) --- LIB * SYSSORT previously used global variables that could prevent temporary lists being garbage collected. Now fixed. July 28 (Aaron Sloman) --- For consistency: extendsearchlist is now extend_searchlist flatten_liblist is now flatten_searchlist See REF * LIBRARY (Updated LIB POPXLIB, LIB XLIB, LIB XT_COMPAT) --- (Unix only) Fixed *PIPEOUT so that it could produce output to terminal if necessary. Merged HELP PIPEOUT with HELP * PIPEUTILS --- Extended VED's controllability under PWM. If vedusepwmwindows is a list and does not contain "ved_q" then quitting a file will not move the input focus. See REF * VEDUSEPWMWINDOWS. If the word "ved_rb" is in the list vedusepwmwindows then ved_rb now properly moves the input focus to the next window displayed. July 25 (Aaron Sloman) --- Because * POPUSESLIST has a new format (including identifiers) the library procedure flatten_liblist [later renamed see above] has been provided to produce a list of strings from lists like popuseslist. This has also been used to fix $popcom/mkind (and the VMS version). See REF * LIBRARY HELP * POPUSESLIST has been updated. July 19 (Ian Rogers) --- Introduced, a while ago, two new procedures for screen handling. See REF * rawsubstringout, * vedrefreshregion. (The latter later renamed vedrefreshpartline.) July 19 (John Williams) Version 13.82 --- LIB * SUBSYSTEM has been substantially revised. See the new REF * SUBSYSTEM for details (the old HELP SUBSYSTEM has been withdrawn. Users are warned that these extensions are EXPERIMENTAL (in Version 14), and that LIB SUBSYSTEM will be revised further for Poplog V15. --- New library LIB * MKSSIMAGE added. For building saved images that contain subsystems. See HELP * MKSSIMAGE for more details. --- Two new command files added. MKLISPPLOG creates a saved image with Prolog loaded on top of Lisp; MKPLOGLISP creates a saved image with Lisp loaded on top of Prolog. July 17 (John Gibson) --- The new POP11 syntax construct #| <statement sequence> |# counts how many items are pushed onto the stack by the statement sequence. E.g. #| "a", "b", "c" |# => ** a b c 3 This construct largely does away with the need for -cons_with-, since something like cons_with consstring {% ... %} can now be written more simply as consstring(#| ... |#) (Note that what #| actually puts on the stack is (stacklength after) - (stacklength before) which means that if more items are removed than added, then the result will be negative.) July 14 (Aaron Sloman) --- The documentation on * RAWCHAROUT was not updated when the procedure was generalised so that it could take a string instead of a character, so that -vedoutascii- is now strictly redundant. This has been corrected. --- HELP * INITIAL now explains how individuals can avoid system-wide tailoring done in $popsys/init.p $popsys/vedinit.p etc. July 12 (Aaron Sloman) --- LIB SUNICONFILE had had a bug from V13.7. Now fixed, generalised and made more efficient. WARNING: because suniconfile reads image files faster, programs that used delays in writing raster arrays to the screen may need longer delays. July 10 (Aaron Sloman) --- Abnormal exits from VED did not always reset the screen properly, both in the Poplog Window Manager and when using ordinary terminals. This has now been fixed by re-organising -vededitor- so that appropriate action is always taken whether it is exited normally or abnormally. --- The new standard way to exit from VED temporarily or permanently is via the procedure * VEDEXIT, and * VED_POP has been redefined to use it. --- Interaction between VED and the PWM (on Suns) has been substantially improved, as follows: --- A new variable -vedpwmwindowchanged- has been introduced. If it is true when control returns to -vedprocess- and if the user assignable variable -vedusepwmwindows- has appropriate values, then the mouse pointer is "warped" to the current VED window. This automatic warping can be controlled by the user. For full details see REF * VEDUSEPWMWINDOWS --- Instead of always warping the PWM pointer, the procedures * VEDSWAPFILES and * VED_RB now do so only if VEDUSEPWMWINDOWS has an appropriate value. This has been used to modify * VED_DIFF and * VED_CDIFF so that they don't repeatedly expose the "other" window. --- * VEDFILESELECT now works under the PWM when the list of files will not fit on the status line. The input focus moves to the selected window if either the word "vedfileselect" is in the list -vedusepwmwindows- or else the value of -vedusepwmwindows- is -true-. July 10 (John Williams) --- New procedure *VEDSEARCHFILETYPES added. It returns the value that -vedsetfiletypes- would assign to a given variable for a given filename. July 9 (Aaron Sloman) --- Installed REF *PWM and HELP * PWMNAMES (recording changes to PWM identifiers). July 6 (John Williams) --- The procedure *VEDFINDPDHEADER is now user-definable. --- New procedure *POP_SETPOP_COMPILER added. --- New procedure *SYS_PROCESS_POPARG1 added. --- New procedure *LOADCOMPILER added. July 5 (John Gibson) --- POP11 autoloading can now be turned off by assigning false to the new variable -pop_autoload-. (This is more convenient than the old method of assigning [] to -popliblist-, since ensuring that autoloading is back on in contexts that require it can be done without worrying about saved values of -popliblist-, etc.) --- New procedures -sysEXEC_COMPILE- and -pop11_exec_compile- for compile-time code execution. See REF *VMCODE and REF *POPCOMPILE. July 3 (Aaron Sloman) --- VEDEDITOR now made a user-definable procedure. Also restructured to ensure globals (including *POPCOMPILER) re-set properly on exit. --- Documentation on * VEDOPEN corrected to point out that it can take two optional extra arguments. See REF * VEDPROCS/vedopen July 2 (Aaron Sloman) --- Added "missing" compilation procedure pop11_need_nextreaditem(choices) -> item See REF * POPCOMPILE June 28 (Roger Evans) --- (UNIX ONLY, currently) -sys_input_waiting- now accepts a list of devices to be checked. A new procedure -sys_async_input- allows control over asynchronous input (using SIGIO) on a device. See REF *SYSIO Jun 27 (Tom Khabaza) --- Added ved_noprompts command for tidying files created by immediate mode. See HELP * VED_NOPROMPTS. Jun 26 (Aaron Sloman) --- Altered -vededitor- and -vedreadfile- so that after errors they don't leave terminal in graphics mode. Jun 24 (Aaron Sloman) --- Fixed bug in -vedgetsysfile- (<ESC> h) which sometimes prevented it searching for the item following "/" as in HELP * VEDGETSYSFILE/strings Jun 23 (Aaron Sloman) --- Changed LIB VED_INDEXIFY to cause less screen activity. See HELP VED_INDEXIFY Jun 23 (John Gibson) --- (Sun POPLOG Only) A change to SunOS in Release 4.1 caused the STACK EMPTY mishap to turn into a SYSTEM ERROR. This problem is cured in Version 13.81 of POPLOG. Jun 22 (Aaron Sloman) --- Fixed documentation on * STRNUMBER to state that it can take a string OR a word. Jun 3 (Aaron Sloman) --- LIB * VEDWORDSTAR and HELP * VEDWORDSTAR installed. These provide a partial VED emulation of the WORDSTAR editor. Jun 3 (Aaron Sloman) --- Added autoloadable LIB * POPINCLUDELIST, making it possible to reference -popincludelist- without first doing "uses include". See HELP * INCLUDE --- Updated and extended REF *PROGLIST, HELP * LEXICAL, HELP * LVARS --- Updated HELP * STANDARDS with suggestions regarding packages Jun 1 (Roger Evans) --- Minor enhancements to library support: LIB * INCLUDE now has system and local include directories in its default search path. New library LIB * EXTENDSEARCHLIST for adding directories to liblists if not already present - see REF * LIBRARY. [Note: it was later renamed extend_searchlist] May 29 (John Gibson) --- (UNIX Only) Fixed bug in -sys_file_match- which prevented correct matching of pattern chars inside [ ] (e.g. [a-z]). Also, -sys_file_match- with true STRIP argument now returns separate directory pathnames ending with / (except when empty). May 29 (Aaron Sloman) --- ved_jj screen activity speeded up. This will also speed up ved_jjp See HELP * VED_JJ * VED_JJP --- The procedures csh_compile, sh_compile and dcl_compile have been altered to prevent slow sideways scrolling when long lines are printed in VED. This improves the behaviour of ved_imcsh, ved_imsh and ved_imdcl. See (on Unix) HELP * IMCSH, *IMSH, (on VMS) *IMDCL *DCL_COMPILE May 28 (John Gibson) --- The procedure -sysopen- can now take an optional 4-th argument specifying whether to return <false> or mishap when a file cannot be opened, depending on the error. (This change means that -readable- is now just a closure of -sysopen-.) See REF *SYSOPEN. May 24 (Aaron Sloman) --- HELP * X created, to provide information on getting started with the Poplog X11 interface (if provided). --- HELP * LIBRARIES and REF * LIBRARY updated May 23 (Aaron Sloman) --- Added autoloadable procedure CHECK_STRING. See REF * STRINGS --- Added autoloadable LIB FI_CHECK, like * CHECKINTEGER but returns the integer if OK and does not check its second and third arguments. --- Modified LIB * POPXLIB to include an extension to popincludelist May 20 (Aaron Sloman) --- Altered LIB BUILDINDEX to cope with define forms that have no space between "define" and ":", e.g. things like the following in Prolog source files - define:predicate true/0; --- Slightly speeded up and rationalised * POPINDEX May 14 (Aaron Sloman) --- Updated DOC * SYSSPEC (system overview) --- (UNIX ONLY) An additional option for the VED "dired" facility has been added <ENTER> dired -load will compile the file specified by the current line in the VED buffer. It is sensitive to the file extension. May 11 (Aaron Sloman) Extended REF * POPCOMPILE with a section on different compilation contexts. May 4 (John Williams) New procedure -property_size- added. It returns the table size of a property (NOT the number of entries). See REF * PROPERTY_SIZE. Bug in LIB * DATAFILE fixed: it now successfully copes with empty properties. Apr 30 (John Williams) New procedure -is_subsystem_loaded- added. It tests whether a given language subsystem has been loaded. See HELP * IS_SUBSYSTEM_LOADED. Apr 26 (John Williams) The value that the PWM assigns to the environment variable $TERM has been changed from "pwm" to "pwmsun". Apr 25 (Andreas Schoter) Minor enhancements to LIB VEDEMACS: the following key sequences have been implemented: ^X 4 b ^X o ^X 0 Apr 16 (Aaron Sloman) (UNIX only) Extensions to VED DIRED facility (See HELP * DIRED). In the commands "<ENTER> dired -mv <name>" "<ENTER> dired -cp <name>" if <name> is the name of a directory, then the file named on the current VED line is moved or copied to the named directory. (I.e. the behaviour is analogous to that of "mv" or "cp" in Unix) (Also shows only the file name+extension when checking) Two new commands <ENTER> dired -mvd <new name> <ENTER> dired -cpd <new name> These rename or copy the file to the new name but in the same directory as the original. Hence it is not necessary to type the full pathname in the command. Apr 3 (Aaron Sloman) Bug in ved_sendmr (UNIX) fixed. It used not to increment -vedchanged- even if -vedinsert_From- was true. Now does. Apr 2 (John Williams) New -for- keyword -in_string- added, for iterating over strings. See HELP * FOR_FORM, REF * SYNTAX. Mar 30 (John Williams) Unix POPLOG only. New procedures -sys_search_unix_path- and -run_unix_program- added (for locating and executing Unix programs from within POPLOG). See REF * SYS_SEARCH_UNIX_PATH and HELP * RUN_UNIX_PROGRAM respectively. Mar 23 (Aaron Sloman) DOC * VEDMANUAL completely updated and reformatted to conform to online conventions. (Should be moved to a REF file?) HELP * EQUAL re-written completely. Added HELP * BUGFORM for use in reporting bugs, by UK academics who obtain Poplog direct from Sussex University. Mar 21 (Aaron Sloman) HELP * MARK, * VEDKEYS updated TEACH * GC, TEACH * STACK improved LIB *NEWPSYS extended with IMPLIES and NOT_EXISTS conditions and POP11 type actions. HELP * NEWPSYS updated Mar 20 (Aaron Sloman) Unix POPLOG Only A collection of utilities is provided for reading and sending Net News from within VED. These have been used at Sussex University for some time and a few other places. However, they are offered on an "as is" basis and will not necessarily be supported, though reports on faults may receive action. For reading news: LIB * VED_NET, LIB * VED_GN, HELP * VED_NET. For posting news, or preparing followups to news items, or cancelling a news item. LIB * VEDPOSTNEWS, HELP * VED_POSTNEWS (The library will need editing for some sites.) Mar 20 (Aaron Sloman) Updated HELP * VEDEMACS Installed HELP * VEDATARI and HELP * VEDATARIKEYS, for Atari ST using UniTerm terminal emulator. Updated HELP * VED (overview of online documentation about VED) HELP * DLOCAL extended to explain problems with initialised variables in dlocal expressions. Mar 19 (Aaron Sloman) LIB * SHOWCODE extended to include new VM procedures: sysEXEC_OPTION_COMPILE sysEXT_SUBSCR sysSUBSCR sysUEXT_SUBSCR sysUSUBSCR TEACH * STACK tidied up and improved. Mar 11 (Robert Smith and James Goodlet) --- (UNIX ONLY) Corrected bug in ved read routine - lines are no longer broken at column 512. Also, ved file read speed increased by approximately 30%. Note that devices to be passed to -vedreadin- should be preferably opened mode <true>, i.e. disk block I/O, rather than the previous "line". Mar 9 (Aaron Sloman) --- A minor bug in the procedure -pretty- invoked by ==>, which caused long lines to be printed with excessive refreshing in VED, has been fixed. Mar 9 (John Williams) --- The online copies of the Installation, Administrator's, and User Guides (DOC PIG, PAG and PUG) have been removed. From now on, they will only be supplied in hard copy format. Mar 9 (John Gibson) --- (Sun-2/3 POPLOG Only) The Sun-2 and Sun-3 systems are now (by default) linked with the version of the C maths library 'libm.a' in /usr/lib/fswitch. This means that math functions doing floating-point operations will use run-time-switched routines that automatically test for and use any floating-point hardware support (FPA, MC68881, Sky) available on the host machine (internal POPLOG floating-point operations always use these switched routines). (Cf the C compiler '-fswitch' option.) --- (Sun-4/SPARCstation POPLOG Only) A serious problem that could cause the whole machine to crash while running external procedures inside POPLOG has been overcome (this was associated with programs that called -malloc- to get dynamic memory for use with floating-point operations). Mar 5 (John Gibson) --- Version 13.71 has a new facility for creating 'fixed-address' data structures, that is, structures whose memory locations are guaranteed to remain unchanged by garbage collection (this facility solves one of the principal problems associated with using POPLOG data structures inside external procedures). There are 4 new procedures, viz cons_fixed init_fixed copy_fixed is_fixed See 'Fixed-Address POPLOG Structures for External Use' in REF *EXTERNAL_DATA. --- There are number of associated changes in the store-allocation mechanisms of POPLOG, which may result in slightly different patterns of memory use in existing programs. In particular, the garbage collection message output when -popgctrace- is true has been revised and extended. See REF *POPGCTRACE. Feb 23 (John Williams) --- The directory $poplocalauto is now included in $popcomppath. See HELP * INITIAL, HELP * PARAMETERS, REF * SYSTEM for details. Feb 20 (John Williams) --- New procedure -class_fast_access- added. See REF * KEYS for details. Feb 9 (John Williams) --- (UNIX ONLY) New library LIB * ITIMER_VIRTUAL added. This defines a POP11 interface to the virtual interval timer provided by the C library function SETITIMER(2). See HELP * ITIMER_VIRTUAL for details. Feb 8 (Robert Duncan) --- VEDSTARTWINDOW has been made an active variable. Its value is now tied to that of VEDSCREENLENGTH: whenever the screen length changes, VEDSTARTWINDOW is adjusted automatically in proportion. See REF * VEDSTARTWINDOW. Feb 7 (John Williams) --- The following obsolete HELP files have been deleted, because the identifiers they described have been renamed: DEADPROC DEVNAME POPDEVRAW POPDPLACES REALOF SYS_INPUTON_TERMINAL SYSCOMPILE SYSLOOP SYSLOOPEND SYSNEED SYSNMTRY SYSNVARIABLE SYSSTRUCTURE SYSTRY SYSTXCOMP SYSTXSQCOMP SYSXCOMP SYSXSQCOMP See REF * OBSOLETE for a complete list of all identifiers that have been superceded. Also, the library OLDVEDSUN (and associated help file) have been removed (as previously advertised). Feb 6 (John Williams) --- (UNIX ONLY) The procedure -syssettimer- now uses the Setitimer(2) system call, rather than 'alarm', which makes the timer more accurate (e.g. on a Sun 3, the resolution is now 1/50th second, rather than 1 second). Jan 19 (Aaron Sloman) --- ved_tidy (and related procedures) fixed to deal more sensibly with "%". E.g. "%]" "%}" and "%)" now work like the corresponding closing brackets de-indenting to the right level if starting a line. No longer gets confused by `'`. Jan 14 (Aaron Sloman and Robert Duncan) Various changes to VED: NOTE: the first of these changes was later undone (Oct 1990) owing to complaints from existing users. [[--- There is a new default key map as described in HELP * VEDKEYS. The new map is meant to be more rational than the old (which was derived from the Visual 200 keyboard layout) and shares some key bindings with the EMACS editor. Function key bindings installed by particular terminal libraries are not affected by this change.]] --- The method of selecting a terminal type on startup has been modified, as described in REF * VEDTERMINALS. It is hoped that most users will see no difference: a terminal library loaded explicitly in a "vedinit.p" file still takes precedence. The biggest change is for Unix users, where *VEDTERMINALSELECT is now null by default: VED will consult the TERM environment variable to find the terminal type rather than using the answer-back mechanism. Also, VED no longer assumes a Visual 200 terminal as a default case, but will prompt the user for the terminal name instead. --- A new procedure *VEDUSETERM simplifies the process of configuring VED for a particular terminal type: the call veduseterm(TERM) tries to set up VED for the terminal type TERM, and returns a flag indicating whether the set-up was successful. VEDUSETERM may load a terminal library, or on Unix systems, consult the TERMCAP database. VEDUSETERM can be called more than once if (for example) the terminal is initially set up incorrectly. --- Most terminal libraries have been revised to conform to a standard format: instead of containing in-line code to configure VED, each library defines a procedure to do this instead. This will be called automatically if the library is loaded from a "vedinit.p" file, but not otherwise. This may impact on users who have made saved images containing terminal libraries: the fix for this is to insert a call to the procedure at the point at which the library is loaded. For more details see HELP * TERMINAL. Terminal libraries have been moved to a subdirectory "term" of POPVEDLIB and are all autoloadable. --- New terminal libraries include: LIB * VEDXTERM X windows terminal emulator LIB * VEDDXTERM DEC windows terminal emulator LIB * VEDVT220 VT220 and similar LIB * VEDCMDTOOL SunView command tool window LIB * VEDANSI basic ANSI-compatible terminal LIB * VEDSUN now works both on the console and in a shelltool window but LIB * VEDWINSUN has been kept for compatibility. --- A new procedure *VEDSCREENCONTROL is now used to output all terminal control sequences to the terminal. This replaces the old *VEDSCREENESCAPE. The difference is that the new procedure no longer automatically adds the VEDESCAPE character to each sequence it prints. The corollary of this is that all the screen control variables such as VVEDSCREENCHARRIGHT, VVEDSCREENCHARUP, VVEDSCREENCLEAR etc. now have the leading escape character included as part of their values. Users who have written their own terminal libraries or have made use of these variables in some other way should check their code for consistency with the new mechanism. In most cases it will suffice to replace calls of VEDSCREENESCAPE with calls of VEDSCREENCONTROL, but explicit assignments to any screen control variables will typically have to be changed. --- A new syntax word *VEDSET simplifies the definition of new VED key bindings (providing syntactic sugar for calls to *VEDSETKEY) and for initialising screen-control variables in terminal libraries. See HELP * VEDSET for details, or look at LIB * VEDVT220KEYS for an example of its use. --- Other new VED procedures (documented in REF * VEDPROCS): *VED_CCW changes the case of the current word; *VEDPREVSENT, *VEDNEXTSENT move to start of previous/next sentence; *VEDPREVPARA, *VEDNEXTPARA move to start of previous/next paragraph; *VEDTOPWINDOW relocate the current line at the top of the window (companion to -vedmidwindow-); *VEDRESIZE(lines, columns) resizes the display after the window size has changed. (Replaces vedwin_adjust) Jan 8 (John Williams) --- The VED <ENTER> ?? facility has been substantially revised and improved. It now extracts information from the REF files, instead of having its own separate database. It is also now possible for users to have their own documentation accessible by -ved_??-. More documentation to follow. (HELP * MKREFINDEX added later.) --- The REF command has been extended so that it is now possible to access the REF documentation for any procedure by giving the command REF <procedure name>. E.g. try REF * MEMBER Jan 7 (John Gibson) --- Version 13.7. This has a major change to the internal representation of data structure pointers, which now point to the third word of objects in memory rather than the first (i.e. they point to the data following the key field). The purpose of this change is to make POPLOG pointers directly usable by external procedures, since (as explained in `Format of POPLOG Data Structures' in REF *DATA), the data starting at the third word is suitable for processing by the latter. Aside from this beneficial aspect, the change should have no other effect on user programs. (With the possible exception of programs that abuse 'fast' procedures -- an associated change is that the value fields of identifiers and the cont fields of references are now in different places, which means for example that -fast_idval- will no longer work on references, nor -fast_cont- on identifiers, etc.) Jan 3 (John Williams) --- New procedure -sys_read_lines- installed. See REF * SYS_READ_LINES Jan 3 (Aaron Sloman) --- Two VED procedures are newly exported for use in immediate mode (see HELP * IM) VED_END_IM terminates input in immediate mode (since it is not possible to type in the end of file character directly) VED_SWITCHMODE_IM which switches immediate mode between allowing <RETURN> to hand the current line to the compiler and requiring ved_lmr to be invoked. --- VEDLOADLINE now maps onto the key sequence <ESC> d, by default. 1989 ---- Dec 28 (Aaron Sloman and John Gibson) --- To enable users to suppress the facility that allows the use of special characters at the beginning of a line to spawn a sub-process the procedure CHARIN has been redefined so that it will call SYSOBEY only if the character at the beginning of a line is in the user definable list pop_charin_escapes, which, in VMS POPLOG defaults to [`$`] and on Unix to [ `%` `$` `!`]. The procedure VEDSETPOP has been redefined to set pop_charin_escapes to [], so that the mechanism will no longer be triggered accidentally in VED immediate mode (See HELP *IM) or in processes that compile from the VED buffer. (VED allows an alternative mechanism for spawning sub-processes from the command line, as described in REF * VEDCOMMS) Dec 28 (Aaron Sloman) --- A new VED tailoring facility. The user-definable procedure VEDINITIALISE(item) is now invoked after creation of a new VED file or renaming of an existing one, to enable user-defined actions to be performed after the file has been read in from disk or an empty buffer created. This is not possible with VEDVEDDEFAULTS or VEDFILETYPES, both of which are accessed before the file is read in, in order to set up variables that control the reading. For details See REF * vedinitialise. HELP * INITIAL - section on Tailoring VED --- Existing VED initialisation procedures have been altered slightly. Previously the procedure -vedsetfiletypes- used to make -compile- the default value of -popcompiler-, so that it had to be over-ridden explicitly in different versions of -vedfiletypes- called in different contexts. This initialisation is now done outside -vedsetfiletypes- whenever a new file is created. (See HELP * VEDFILETYPES) The default value of -vedfiletypes- has changed slightly. 1. It has a new default condition making -vednotabs- true and -vedbreak- true 2. Defaults for Lisp and ML have been added to -vedfiletypes- and to -vednonbreakfiles- Dec 28 (Aaron Sloman) --- Lexical scoping and efficiency. Some of our previous documentation did not give warnings about ways in which use of lexical scoping can generate unwanted garbage collection overhead. This is now explained in HELP * LVARS. HELP * LEXICAL and HELP * EFFICIENCY have also been updated. Dec 28 (Aaron Sloman) --- (Unix Poplog Only). The VED facility for interaction with the C-shell via a VED buffer previously would not work if the user's .cshrc file defined a changeable prompt string. This has now been fixed by using a constant, but user assignable prompt string, as described in HELP * CSH_COMPILE and HELP * IMCSH. Dec 27 (Aaron Sloman) --- The Pop-11 itemiser has been altered so that it is now possible to represent control characters in strings or character constants without using upper case. E.g. `\^a`, `\^b` etc are equivalent to `\^A`, `\^B` etc. and similarly in strings. HELP * ASCII, HELP * STRINGS, and REF * ITEMISE updated. --- TEACH files concerned with recursion considerably improved, and extended: TEACH * RECURSE1, * RECURSE2, * RECURSE3. TEACH * PARSE revised. --- The pretty-print arrow (==>) has been modified so as to ensure that poplinemax is set locally to vedscreenwidth - 3. This prevents unwelcome horizontal scrolling on long lines. --- An improved version of LIB * PRODSYS, the demonstration production system interpreter has been installed. See TEACH * PRODSYS for details --- A considerably more sophisticated (and efficient) forward chaining production system interpreter has been added, LIB NEWPSYS, documented in HELP * NEWPSYS, with an extended example of a problem-solver in TEACH * PSYSRIVER Dec 19 (John Williams) --- The library procedure -vedputchar- (an obsolete synonym for -vedinput-) has been WITHDRAWN. Dec 14 (John Williams) ---- The HELP files VEDCOMMS, VEDPROCS, VEDVARS, and VEDWORDS have been deleted and replaced by the following REF files: REF * VEDCOMMS REF * VEDPROCS REF * VEDVARS Dec 8th (Aaron Sloman) --- LIB * VEDBLOCKS extended (see HELP * VEDBLOCKS). The procedures * VEDOVERLAYBLOCKS and VED_YOTB can be used for overlaying a text block on some text in the VED buffer in such a way that spaces in the overlaid block are "transparent". ---- LIB * VEDBLOCKREPEATER takes in a vector of strings such as might be produced by * VEDCUTBLOCK and returns a character repeater. Nov 24 (John Williams) --- New VED procedure -vedtableft- added, to complement -vedtabright-. See REF * VEDPROCS/vedtableft Nov 14 (James Goodlet) --- Autoloadable macro -include- and associated help file added. This provides a "uses"/"lib" like syntax and mechanism for #_INCLUDEing files. See HELP *INCLUDE. Nov 14 (John Gibson) --- The Unix version of -systranslate- now has an updater (the VMS version already had one). See REF *SYSUTIL. Nov 12 (Aaron Sloman) --- The VED_TIDY procedure for indenting programs has been considerably improved and extended. (a) There are two new user-modifiable global lists controlling its behaviour. (1) A list giving words that "quote" everything following them upto the occurrence of a closing bracket. So the intervening words do not affect indentation. A list of possible closers can be associated with each such word. ved_tidy_skip_pairs = [vedset [endvedset] lib [^newline ;]] (2) A list of words each specifying that N additional items are to be read in and regarded as quoted, and therefore ignored. I.e. they have no effect on changing indentation. N is in a list, for compatibility with ved_tidy_skip_pairs ved_tidy_skip_some = [" [2] nonmac [1] nonop [1] nonsyntax [1] uses [1]] (b) ved_tidy no longer corrupts strings going over more than one line (e.g. with pop_longstrings true, or `\` at end of line). (c) The closing vector bracket or list bracket now lines up with its opener, if on a line by itself. (d) Indentation after vars, dlocal, lconstant, etc. is incremented by vedindentstep, not by 5 as previously. (e) "return" has been removed from vedbackers. "=>" and "==>" have been added to vedforwarders. (f) Labels are no longer de-indented to column 1. Instead they are de-indented to the same level as the beginning of the current procedure definition. (g) Some minor bugs have been fixed Nov 11 (Aaron Sloman) --- LIB VEDARGINT added, to complement LIB VEDARGNUM. The former, but not the latter, produces an error if a non-integer is produced. Several VED utilities that could have produced bizarre errors if given non-integral values, have been changed to use VEDARGINT, namely ved_bl ved_br ved_dc ved_dl ved_dw ved_mc ved_ml ved_mw. --- Pop-11 TEACH * LISTS and TEACH *SETS considerably revised and improved. TEACH SETS now includes suggestions on how to specify a procedure as a step towards designing and implementing it. Nov 5 (Aaron Sloman) --- Changes to facilities described in HELP * PIPEUTILS (Unix Only) The command ved_rsh was not available on non-Bsd type Unix systems, e.g. HPUX, so an equivalent command ved_remsh has been provided, for running remote commands from VED. The ved_rved command has been generalised to work on non-BSD systems providing 'remsh' but not 'rsh'. HELP * PIPEUTILS has been updated. Oct 9 (John Gibson) --- Changes to the process mechanism: New procedures -suspend_chain- and -ksuspend_chain- allow control to be regained after (k)suspending a process, by chaining a procedure out of the call of -runproc- which ran the process. The procedure -consprocto- has been replaced by a better procedure -consproc_to- (although the old one remains in the autoloadable library). A process can now be constructed as either 'volatile' or 'non-volatile'. See REF *PROCESS for full details. Sep 14 (Gareth Palmer) --- The naming scheme for PWM identifiers has been rationalised, resulting in a large number of changes. Compatibility libraries exist, so old programs will still work. See HELP * PWMNAMES for details. Sep 12 (John Gibson) --- (VMS Only) The procedure -systranslate- which translates logical names has been upgraded to use the current standard VMS system routines for this purpose (it was previously using old routines which became obsolete in Version 4 of VMS). As a consequence, logical names with the "concealed" attribute are now dealt with correctly, i.e. not translated by default. (Also, names with the "terminal" attribute will not now have an underscore prefixed to the translation). Sep 7 (John Gibson) --- (Sun4 Only) Under certain (fairly rare) circumstances, the run-time code generator produced code for a procedure that failed to initialise certain lvars correctly, causing the garbage collector to crash (it happened only with procedures that had some non-locally used lvars, but less than 2 ordinary lvars). The bug is now cured. Sep 4 (John Gibson) --- The problem with system crashes caused by assigning too large a value to -pop_callstack_lim- has been cured. A mishap now results if the operating system's limit on call stack memory is about to be reached; this makes it safe to assign any value to -pop_callstack_lim-. See REF *POP_CALLSTACK_LIM. Aug 24 (Roger Evans) --- A bug in the 'destroy actions' mechanism (see REF *PROPS) has been fixed. Formerly the existence of an independent destroy action for an object was not in itself sufficient to retain entries for the object in temporary properties when the object became otherwise garbage. Now it is. Aug 13 (Aaron Sloman) --- HELP PWMCOLOUR removed. It was made obsolete by HELP * PWMCOLOURS --- (UNIX ONLY) Extended LIB * VED_SEND as follows: If the command <ENTER> sendmr is given with no arguments then, in order to preserve Unix mail file format (e.g. for ved_mcm), any lines in the message that start with 'From ' will have '>' inserted at the beginning. This can be suppressed by assigning -false- to the new user-assignable variable -vedindent_From- (default is true). (see HELP * SEND) Aug 13 (Aaron Sloman) (UNIX ONLY) --- A number of procedures associated with VED's directory browsing tool -ved_dired- (see (HELP * DIRED) have been modified to allow the new directory information to be added to the current dired output file when -ved_dired- is invoked. -vedpipein- (see HELP * PIPEUTILS) now allows its third argument, the -file- to be FALSE, in which case the incoming information is read into the current VED file after the current line. -diredpipein- now uses a new global variable -dired_current_file- which, if not false, will cause the input to be added to the current VED buffer instead of a new file, except that in certain special cases (e.g. qdired) it will start a new VED buffer to receive the input. (see LIB * DIREDPIPEIN) -ved_dired- has been altered so that if a dired command to produce new directory information is given in a file that was originally produced by ved_dired, then instead of putting the new information in a separate temporary file, it splices it into the current file. This default is controlled by the new global variable -dired_current_file- and can be suppressed by doing the following in your vedinit.p vars dired_current_file = false; Aug 8 (John Gibson) --- The procedure -sysfileok- has been enhanced to provide an optional parse of filenames into component fields after doing any translation. A convenient interface to this facility is provided by the new procedure -sys_fname- and others built on top of it for extracting individual filename fields (e.g. -sys_fname_path-, -sys_fname_name- etc). See REF *SYSUTIL. (Note that these new procedures make obsolete the old filename parsing routines such as -sysfileparse-, -sysfilename-, etc.) The procedure -sysisprogfile- has now been made an autoloadable library file defined in terms of -sys_fname_extn-. SHOWLIB * SYSISPROGFILE for details. --- (UNIX only) Poplog will henceforth try to standardise on having all (non-empty) strings representing directory pathnames be recognizable as such by ending with / . For example, this is now true of -current_directory-, all members of -popliblist- and -popuseslist-, and the result of the new procedure -sys_fname_path- for getting the path part of a filename. (Also, the operator dir_>< given an empty string as second argument will now append / to the first if it's non-empty and doesn't end with one. Thus for path /= nullstring, the result of path dir_>< nullstring will always have a trailing / ) --- (VMS Only) The handling of arguments to a POPLOG process from the DCL foreign command line has now been further enhanced (see entry dated June 24, in HELP * NEWS.V13_6, for previous changes). Essentially, POPLOG now behaves like a Unix shell, in that it automatically expands filename arguments containing wildcard characters (e.g. '*.p' will be replaced by all matching filenames). In addition, a filename argument with an @ character prepended is replaced by further arguments read from the specified file; this surmounts the problem of the DCL foreign command line being limited to 255 characters, and enables larger numbers of arguments to be supplied. See REF *POPARGLIST0 for full details. An associated change is that the procedure -sys_file_match- no longer necessarily returns fully-qualified filenames, but instead produces names containing only those parts which appeared in the given file specification (e.g. filenames matched by '*.p' will be of the form 'foo.p', 'baz.p', etc, with no directory or version.) See REF *SYSUTIL. (Note that the rationale behind these changes is to allow POPLOG programs to be written in a portable way. A given program can now simply assume that arguments are available Unix-style.) Jul 31 (John Gibson) --- The procedure -substring- now returns the standard empty string -nullstring- when the result is empty. Jul 20 (John Gibson) --- Certain uses of -pop_after_restore- (called after restoring a saved image) could lead to a system crash (because the system was calling it in an inappropriate place). This has now been fixed. --- (Unix POPLOG only). The system now behaves more rationally when EOF (^D or ^Z) is typed to a terminal prompt; it now always puts out a newline after this (and as a consequence, no longer needs to put out a special newline when the system exits, meaning that there will be no surplus newline output when exiting in any way other than by EOF as was previously the case). Jul 12 (James Goodlet) --- ved_w1 now restores cursor to status line if that is where it was, and prevents a bug that caused VED to get the value of vvedbuffersize wrong, so that it could not access most of the file. Jul 9 (Aaron Sloman) --- LIB * CIFER and HELP * CIFER removed. Long since redundant. (See HELP * VEDCIFER). --- TEACH *EVANS referred to non-existent TEACH *PICDEM. The latter has now been installed, using LIB * PICDEM (a simple program illustrating some problems of describing and recognising 2-D shapes.) Jun 30 (Aaron Sloman) --- Made ved_rved use current vedindentstep instead of the default for ved_rsh. (UNIX ONLY). SEE HELP * PIPEUTILS Jun 30 (John Gibson) --- Fast versions of -apply- and -chain- added, -fast_apply- and -fast_chain-. See REF * FASTPROCS. Jun 27 (John Gibson) --- Version 13.66 has an improved version of -sys_lock_system- allowing much greater control over which structures are kept writable and which are made nonwriteable. Associated with this are two new operators -writeable- and -nonwriteable-, a new procedure -sys_writeable_prop-, and a new variable -pop_record_writeable-. See 'Creating Layered Systems' in REF * SYSTEM. A further associated change is that -conskey- (and -recordclass- and -vectorclass-) can now take optional "writeable" and "nonwriteable" attributes for a new class key. See REF * KEYS. Jun 16 (John Gibson) BERKELEY UNIX POPLOG ONLY --- The -device_full_name- of a device now dereferences symbolic links, i.e. it is always the name of the underlying file (rather than the name of any symbolic link that was used to open it). Jun 16 (Roger Evans) BERKELEY UNIX POPLOG ONLY --- Poplog now checks to see if it is 'backgrounded' before attempting to alter terminal modes. If it is, it stops, by sending itself the TTIN signal (se REF *SIGNALS), as it would if it attempted to read while backgrounded. The previous behaviour was causing serious problems with some operating systems. --- The default value for the TTOU signal handler is now <true>, that is, the Unix default action (which is to stop immediately). The previous value (tidy screen and stop) proved unworkable for TTOU. Jun 9 (John Gibson) --- Version 13.65 has a number of changes relating to control mechanisms in the POP11 and Poplog VM compilers: * A new variable, -pop_debugging-, is intended to serve as a general indication as to whether programs are being compiled in debugging or 'real-use' mode. It also combines the roles previously played by the variables -popconstants- and -pop_optimise- (which for upward compatibility are now autoloadable active variables). Permanent constants were previously 'turned off' by assigning <false> to -popconstants-; this now corresponds to -pop_debugging- having the value <true>. Since the default value of -pop_debugging- is "undef", constants are (as before) on by default. Setting -pop_optimise- true previously caused the VM to do extra optimisation; this now happens when -pop_debugging- is <false> (i.e. extra optimisation is also off by default). (Note that -pop_debugging- is NOT local to any system procedures, so assigning to it is guaranteed to change its value globally.) See REF * IDENT and REF * VMCODE. * The POP11 compiler variables -popdefineconstant-, -popdefineprocedure-, -popconstruct- and -pop_args_warning- have all been replaced by flag bits in a new variable -pop_pop11_flags- (analogous to -pop_vm_flags- for the VM compiler). These are defined and described in $usepop/pop/lib/include/pop11_flags.ph and REF * POPCOMPILE. (Once again, the old variables remain as autoloadable active variables.) * There are also a number of new VM compiler flags in -pop_vm_flags-. These are mainly concerned with disabling the inclusion of run-time checking code (although these are only effective when -pop_debugging- is false). See $usepop/pop/lib/include/vm_flags.ph and REF * VMCODE. * To enable the flags in both -pop_pop11_flags- and -pop_vm_flags- to be manipulated by POP11 program code in a relatively painless and modular fashion, both variables are now localised to every compilation stream, procedure and lexical block, and there is a new (autoloadable) syntax construct -compile_mode-, which permits the flag bits in either variable to be set or cleared (either singly or in groups) on the basis of keyword arguments. Thus for example, a POP11 program file can now make -define- default to 'constant procedure' for that file only by including the command compile_mode:pop11 +defcon +defpdr; at the beginning. See SHOWLIB COMPILE_MODE. -- All .ph files in $usepop/pop/lib/include are now set up so that when used with #_INCLUDE they declare only 'lconstant' macros (but reverting to 'global constant' as before if directly compiled). (This is achieved by the autoloadable macro INCLUDE_constant, which produces either 'lconstant' or 'global constant' depending on whether the file is being #_INCLUDEd or not; to determine this it tests the variable -pop_#_include_stack-, see REF * PROGLIST.) Jun 3 (Aaron Sloman) UNIX POPLOG ONLY --- ved_Reply (for replying to Unix mail) altered to handle more cases correctly. Also no longer interferes with VED search state variables. (See HELP * VED_REPLY, SHOWLIB * VED_REPLY) --- ved_mdir (for building index to Unix mail file) altered to include "To:" line. See HELP * VED_MDIR Jun 1 (John Williams) --- SUN POPLOG ONLY: The directory '$popsunlib' is now automatically included in -popliblist- (and -popuseslist-). It is no longer necessary to do this in an 'init.p' file. If you use a Sun as a terminal, but actually run Poplog on a different processor, you may still have to add '$popsunlib' explicitly. May 26 (John Gibson) --- Previously, properties could only be temporary on the argument item (i.e. entries garbaged for garbage argument); they can now be temporary on the value item, or on either the argument or the value. They can also be 'unconditionally' temporary, i.e. cleared at every garbage collection. See -newproperty- and -newanyproperty- in REF * PROPS. May 21 (Aaron Sloman) --- Previously -vedprocess- changed -pop_after_restore- locally by assigning -vedrestorewindows- to it. Instead it now does: vedrestorewindows <> pop_after_restore -> pop_after_restore; so that pre-existing procedures in -pop_after_restore- remain. See REF * SYSTEM/pop_after_restore HELP *POPLOG and HELP *POPCONTACTS updated. VED changed to ensure that environment variables are always expanded before -vedcurrent- and -vedpathname- are set up. This was previously done in some cases but not all. May 11 (Aaron Sloman) --- ved_cut sometimes gave an error when one of the stacked positions was to the right of text on the line. This has been fixed. May 10 (John Gibson) --- (Version 13.6403) In order to make the semantics of lexical blocks outside of procedures compatible with their behaviour inside procedures, the Poplog VM procedure -sysLBLOCK- now requires an argument specifying whether the lblock is 'executing' or 'non-executing' (previously it took no arguments, so this is a non-upward compatible change). A related change is that testing for -popexecute- false is no longer a reliable way of determining whether code is being planted inside a procedure (since it will be false inside a non-executing lblock, enclosed in a procedure or not). As a replacement for this test there is a new variable, -pop_vm_compiling_list-, which holds a list of all procedures currently being compiled, and can therefore be tested == or /== to nil. (Note however that -popexecute- true is still the correct test for being at execute level, i.e. whether -sysEXECUTE- can be called or not). See REF *VMCODE for full details. Because of this change, the following POP11 code outside a procedure lvars i; for i to 10 do lblock lvars j = i; procedure(); j endprocedure endlblock endfor; will now create a new variable -j- (and thus a different lexical closure) each time round the loop (i.e. as it would inside a procedure). May 9 (Aaron Sloman) --- In certain situations (including bugs in user programs) -vedline- could end up negative or == 0, leading to an error. Additional tests for this have been added, and -vedline- set to 1 in such cases. May 2 (James Goodlet) --- (BERKELEY UNIX only) -ved_man- now compresses adjacent blank lines into single ones. Apr 29 (Aaron Sloman) LIB V55 (VED conversion for Visual 55) altered to use scroll region facility in the terminal. LIB OLDLISP would not compile as it attempted to load a non-existent library. Now fixed. (See HELP * OLDLISP) Apr 27 (John Gibson) --- -recordclass- and -vectorclass- are now syntax words rather than macros, and also now accept "lconstant", "lvars", etc as declaration keywords for the key and associated key-procedure identifiers. Apr 22 (Aaron Sloman) --- VED_S (interactive substitute command) has been extended to allow the response "g" meaning: do the search and substitution globally, without further interaction. This is useful if you wish to check that you have given the right pattern before allowing the global replacement. See HELP * VEDSEARCH Apr 15 (Roger Evans) --- A collection of HELP files has been provided giving information supplied by the POPLOG USER GROUP (PLUG). They are HELP *RESOURCES - file cross-referencing useful info sources HELP *PLUG - The Poplog and Pop Languages User Group HELP *POPFORUM - E-mail discussion group HELP *POPREFS - Books and other written material about Pop HELP *POPCONTACTS - Contact addresses for Pop issues and products HELP *POPSYSTEMS - Pop-related systems and products Apr 15 (Aaron Sloman --- Spurious trailing spaces in VED. VED commands that write files without calling -vedtrimline- can produce files with spurious trailing spaces. A large subset of such cases has been dealt with by making -vedswitchstatus- (which is called by -vedenter-) first call -vedtrimline-. Similarly -vedsaveglobals- also calls -vedtrimline-. --- Printing in error messages in VED is now controlled by setting pop_pr_level = 20, instead of using a special purpose print routine. This also fixes a bug: the previous version could not cope with errors involving pairs. --- Added "fast_repeat" to -vedopeners- and "endfast_repeat" to -vedclosers-. Apr 12 (John Gibson) --- The ':pdr_valof' option to -define- is now replaced by define <name> = <expression> enddefine e.g. define constant procedure foo = identfn(%1,2%) enddefine; etc. (Note that :pdr_valof actually allowed a <statement sequence> as the initialising code; this was a mistake, and the new syntax properly permits only a single <expression>.) Apr 11 (Ian Rogers) --- Added new facilities to enable the user to extend the iteration mechanism. See HELP * FOR_FORM Slightly optimised numeric -for- iteration and -repeat- iteration. Apr 11 (John Williams) --- Unix only: some new commands for printing files from VED have been defined. These are -ved_lp- (uses HP-UX 'lp') and -ved_lpr- (uses Berkeley Unix 'lpr'). See HELP * LP and HELP * LPR. Apr 10 (Aaron Sloman) --- The index building mechanisms used by ved_sourcefile have been cleaned up and made able to cope with some of the newer syntax forms. A new library LIB * BUILDINDEX is used by the index building scripts $popcom/mkind (Unix) and $popcom/mkind.com (VMS) See HELP * POPINDEX, HELP * SOURCEFILE, SHOWLIB * BUILDINDEX Apr 9 (Aaron Sloman) --- Interrupting TRACE-ed procedures run from VED used to produce a lot of unwind trace printing. This has now been fixed. --- Some documentation improved, clarified, corrected. Information about lexical scoping clarified, with examples, and discussion of pros and cons of lexical scoping. See HELP * LVARS, HELP * LEXICAL, HELP *DLOCAL. Ref files and ved_?? files were previously misleading as regards [...], {...} ^, ^^, So REF * POPSYNTAX, REF * SYNTAX and ved_?? files corrected Apr 7 (John Williams) --- LIB * VED_NOUL has been re-written and improved. Apr 6 (Robert Duncan) --- A new constant -sys_machine_type- has been introduced to complement the existing -sys_os_type- and -sys_processor_type-; the new constant is a list containing details of the host machine. --- The existing -sys_os_type- has been revised to include proprietary software names (e.g. SunOS, HP-UX etc.) in more cases than previously. [NB: Users who have programs which test the value of -sys_os_type- should check that the tests are still valid.] --- This new information has been put to use in a revised LIB *SYSDEFS which defines a more comprehensive set of flags and version numbers for distinguishing between different host systems. --- A new autoloadable macro -DEFV-, analogous to the existing -DEF-, has been introduced to simplify tests on the version numbers defined by LIB *SYSDEFS. See HELP *SYSDEFS, REF *SYSTEM/sys_machine_type, *SYSTEM/sys_os_type April 5 (Ian Rogers) --- Added -fast_prop_entry_arg-. See REF * FASTPROCS April 4 (John Williams) --- The procedure -isclosure- now returns 1 if its argument is a "protected" closure. See HELP * CLOSURES, HELP * ISCLOSURE. April 4 (Aaron Sloman) --- HELP *SYSGARBAGE erroneously stated that output caused by *POPGCTRACE could be re-directed via *CUCHARERR. In fact previously GC trace printing could not be re-directed by users. This has now been fixed, and the help file corrected. See REF * SYSTEM/Store April 2 (A. Sloman) --- Fixed entries in ved_?? data files relating to identifiers and identprops. In particular added new <idprop> type corresponding to IDPROP argument in REF * IDENT, and added or corrected entries for consident, full_identprops, ident_declare, identprops, isassignable, isconstant, isdeclared, isdefined, isglobal, isident, isprotected. --- Fixed LIB VED_WTYPE, to cope properly with active identifiers and syntax operators. See REF * VEDCOMMS/ved_wtype --- (Unix only) LIB VED_SEND has been changed so as to use the mail program rather than sendmail. This means that the full range of facilities is available in .mailrc files. Various new control variables have been added. Please see the revised HELP *SEND and SHOWLIB * VED_SEND/History Mar 31 (John Williams) --- The POP2 syntax words "lambda", "function", "enddo" and "exit" have been removed from the standard values of -vedopeners-, and -vedclosers-. They are added to these lists by the library LIB POP2. Mar 27 (Aaron Sloman) --- HELP * VEDSETKEY considerably expanded and updated. Mar 24 (John Gibson) --- All the 'X_key' identifiers (e.g.-pair_key-, -vector_key- etc) previously in the autoloadable library have been moved into the core system. Mar 22 (John Williams) --- The VED <ENTER> MAN command has been improved, and documented. See HELP * MAN. (UNIX only) Mar 20 (Aaron Sloman) --- Altered incorrect ved_?? entry for -sysfileok-. It stated that result could be false. --- Added VED <ENTER> wapp <file> Write and append current VED buffer to file. Mar 16 (Roger Evans) --- A new system variable -poparg0- now exists. This holds the string containing the command Poplog was started up with. Often this is the same as hd(poparglist0), but if rewriting occurs due to pop_X environment variables (UNIX only), -poparglist0- can get altered. In such cases, -poparg0- preserves the original start-up command name. Mar 10 (Robert Smith) --- (Unix only) Attempting to read the interactive device (terminal or pipe) could result in an infinite loop if that device were no longer readable. This might occur, say, if running via a telnet connection which prematurely breaks. Poplog will now attempt to write all VED files and exit if such a condition occurs. Mar 5 (Aaron Sloman) --- The variable ved_last_char is now available to users. It holds the last character read in by -vedprocesschar- or -vedgetproctable- (read in using -vedinascii-). --- (Unix only) -ved_reply- altered to insert "Re: " in subject line --- (Unix only) -ved_mdir- changed so as not to break long lines in mail directory. See HELP * VED_MDIR Feb 28 (John Williams) --- The command file for building the 'flavours' saved image now ensures that -setpop- is assigned to -interrupt- when the image is restored. Feb 24 (John Williams) --- New documentation file: HELP * PVED Feb 20 (John Williams) --- Sun users only: LIB SUN_TTY_SIZE updated to use newer ioctl. --- LIB POPHOST updated to use -sys_host_name-. Also, it prints a warning message when loaded (to encourage system administrators to amend it). Feb 18 (John Gibson) --- The -dlocal- statement now reads identifier names with -itemread- instead of -readitem-, meaning that macros can be expanded. The only respect in which this is non- upward-compatible is that making a macro identifier dlocal now requires "nonmac", e.g. dlocal nonmac foo; This change also applies to 'define dlocal ... '. Feb 16 (John Williams) --- New procedure -sys_host_name- added. This returns the name of the machine POPLOG is running on. See REF * SYSTEM/sys_host_name Feb 13 (John Williams) --- LIB * VED_SRC now adds "ved_src" to -vedgetsysfilepdr-, enabling cross-references of the form SRC * PROLOG.P Feb 9 (John Williams) --- LIB * INSPECT now ignores colons in command input (to soothe users of the Lisp debugger who are used to preceding commands with a colon). Feb 6 (John Gibson) --- The procedure -pdnargs- now has an updater. See REF * PROCEDURE. Jan 21 (Aaron Sloman) --- Several documentation files concerned with initialisation, running programs, saving and restoring images have been clarified, and made to refer to REF * SYSTEM instead of REF * SYSUTIL for information on saved images. See HELP * INITIAL, * PARAMETERS. --- (UNIX only) HELP * SYSPIPE gave wrong information about the argument to -syspipe-. This has been corrected to accord with REF * SYSIO. Jan 11 (John Williams) --- The library directory '$poppwmlib' is now automatically added to -popliblist- when Poplog starts up under the PWM, obviating the need to do this in initialisation files. Jan 8 (Aaron Sloman) --- Various commands using -vedsysfile- failed to ensure that vedinit.p had been called BEFORE they accessed the relevant search list, e.g. vedhelplist, vedteachlist, etc. This has been fixed, and examples in HELP * VEDSYSFILE updated. 1988 ---- Dec 24 (Aaron Sloman) --- The mechanisms previously described in HELP *BASEPROLOG have been withdrawn, as Poplog Prolog has been substantially re-implemented. See HELP * PLOGNEWS --- A new HELP file HELP * VED_INDEXIFY describes the facilities for putting headings, building tables of contents, and using <ENTER g to go to a section. For a tutorial introduction see HELP * ENTER_G. --- The VED "indexify" mechanism for building and re-building a table of contents in documentation files (HELP * VED_INDEXIFY) has been changed so that if used to re-build a table of contents it no longer deletes portions in which extra bits of text have been inserted. --- (UNIX ONLY) An additional option for the VED "dired" facility has been added <ENTER> dired -grep <string> will run grep to search for occurrences of the string on the file(s) specified by the current line in the VED buffer. See HELP * DIRED Dec 13 (Aaron Sloman) --- (UNIX ONLY) the ved_dired library (see HELP * DIRED) has been modified so that the key sequence CTRL-X CTRL-X is equivalent to <ENTER> qdired. Dec 13 (Aaron Sloman) --- (UNIX ONLY) The library procedure -vedpipein- and procedures defined in terms of it (e.g. ved_sh, ved_csh, ved_rsh, etc.) described in HELP * PIPEUTILS were capable of producing "zombie" processes that would not die until you exited from poplog. This bug has been fixed. Programs that used lib pipein directly still have to call -syswait-. See REF * SYSUTIL/syswait Dec 4 (John Williams) --- The procedure -isendstring- has been moved from the library into the system core. --- The procedure -sys_file_stat now accepts a null vector as its second argument. This provides a way of testing whether a file exists without creating a device record. Nov 25 (Aaron Sloman) --- <ENTER> dired -mv Altered to cope with the case of renaming a directory See HELP * DIRED Nov 24 (John Gibson) --- Version 13.61 has a new construct, lexical blocks, which allows the scopes of lexical identifiers to be constrained. In the Poplog VM this is represented by two new pseudo-instructions sysLBLOCK() sysENDLBLOCK() and in POP-11 by the syntax lblock <statement seq> endlblock These can be used (nested to any depth), either inside procedures or at execute level, e.g. in define foo(); lvars x; lblock lvars y; ... endlblock lblock lvars z; ... endlblock enddefine; the variables -y- and -z- are accessible only inside their respective blocks (whereas -x- is accessible everywhere in the procedure); moreover, the resources utilised for -y- in the first block are freed for reuse in the second block, etc. See REF * VMCODE for full details. Nov 19 (Aaron Sloman) --- [UNIX ONLY] new VED command for reading Unix 'man' files. <ENTER> man [<section number>] <name> Reads output of 'man' command into VED, then removes underlining, for easy reading. --- TABS in files are no longer lost by VED default settings. Users who leave *VEDNOTABS TRUE (the default) and do not set their *VEDFILETYPES so as to make VEDNOTABS false in all cases where tabs should be preserved, have occasionally lost the tabs in files and found them hard to replace properly. To reduce the risk of this happening in future, the variable VEDREADINTABS now defaults to TRUE. This means that if a file read into VED contains tabs, then VEDNOTABS will be set FALSE for that file and tabs will be preserved. To restore the old behaviour put 'false -> vedreadintabs' into your 'vedinit.p' file. Nov 18 (Roger Evans) --- [Unix only] TERM and HUP signal handlers now both exit tidily (write VED files etc.). Minor changes to suspend/continue signal handling to improve response to termination while suspended. See REF *SIGNALS. --- -pop_exit_ok- false now inhibits any terminal IO by the system on exit (user -popexit- procedures should respect it also) - see REF *SYSTEM --- New procedure -fast_sysexit- exits Poplog without tidying. See REF *SYSTEM Nov 14 --- (Aaron Sloman) Lib Vturtle had a bug: vturtle_origin was wrongly adjusted according to vvedbuffersize. Now fixed. (TEACH * VTURTLE) Nov 7 (John Gibson) --- New POP-11 compiler variable -popclosebracket_exec- allows recognition of 'execute' context during compilation. See REF * POPCOMPILE. Nov 2 (Roger Evans) --- Bug in LIB EXTERNAL fixed - now handles -array_of_pointer- structures properly. Oct 26 (Aaron Sloman) --- LIB SHOWTREE This used to call VEDSETUP while the file was being compiled. It now does so only if the current input (popdevin) is a terminal. --- New VED search procedure vedteststartsearch(string) -> <integer or false> Given a string search for a line in the current VED buffer starting with the string. Search starts from current line and wraps round top of buffer. Cannot use search patterns. --- -ved_g- and -ved_indexify- are altered to use -vedteststartsearch-. This makes it possible to use special characters in ved_g_string. See HELP * ENTER_G --- Modifications relating to LIB EXTERNAL There was a bug in the "prarr" example in HELP * EXTERNAL The example in the help file did not provide enough parameters for prarr. This has been fixed. There is a new version of the library known as LIB *NEWEXTERNAL documented in HELP *NEWEXTERNAL and associated with LIB * NEWFORTRAN_DEC. This considerably extends the facilities for externally loading Fortran (F77) procedures. The new version is being offered in this "new" form in V.13.6, and will later replace the standard LIB EXTERNAL. To use the new version it is necessary to do lib newexternal explicitly before using the "external" commands described in the help file. Oct 24 (John Williams) --- New VED commands for manipulating list structure: <ENTER> GBL Go to beginning of list <ENTER> GEL Go to end of list <ENTER> GOL Go out of current list <ENTER> MBL Mark beginning of list <ENTER> MEL Mark end of list <ENTER> MCL Mark current list These all use a new procedure -vedfindbracket- for searching for bracket characters in VED. -vedfindbracket- is intended as a replacement for -vedmatchbracket-. See REF * VEDCOMMS and REF *VEDPROCS for more details. Oct 24 (Aaron Sloman) --- New BSD Unix utilities. A collection of utilities developed by Roger Evans has been added to the non-autoloadable, non-supported library $usepop/pop/lib/lib as illustrations of useful programming techniques available on Berkeley Unix systems for communication between poplog and other subprocesses. Documentation is to be found in the following help files HELP * NOECHO HELP * PTYFORK HELP * MUX HELP * VEDMUX HELP * VSH Of these the most interesting user utility is VSH, which offers a 'shell-in-ved-buffer' interface - like IMCSH only more sophisticated. These and other facilities in the $usepop/pop/lib/lib directory are not supported. See DOC * SYSSPEC Oct 21 (John Gibson) --- Fixed a bug in the power operator ** which caused it to produce an 'unnormalised' ratio with a negative denominator, when the base value was a negative rational and the power was a negative integer (e.g. -2 ** -1 produced 1_/-2 instead of -1_/2). ********** FOR EARLIER NEWS ITEMS SEE HELP * NEWS.V13_6 ********** --- C.all/help/news.v14 --- Copyright University of Sussex 1992. All rights reserved. ----------