HELP NEWS.9 For most recent news, see HELP NEWS Dec 13 1984 The procedure *NEWANYARRAY has been changed so that arrays can be made that share elements with other arrays. Dec 11 * The procedure ved_print has been modified to take another argument, so can now be used with different printers. Error messages tidied. See TEACH PRINTING. Dec 7 - Version 10 * External procedures can now be dynamically linked into both UNIX and VMS POPLOG systems, using the procedure EXTERNAL_LOAD. See REF EXTERNAL. * $poplocalauto has been moved to the front of POPLIBLIST (it should have always have been there). This means that a definition in the local library will override one in the main library. Similarily, the local "lib" directory now appears before the main one in POPUSESLIST. * The VM code-planting procedures (sysPUSH, sysPOP, etc) are now procedure variables. This means that with LIB SHOWCODE loaded (and POP_SHOW_CODE set true), 'tracing' output will be produced for POP-11 compilation. Nov 28 1984 POPLOG now dies on receipt of a hangup signal (e.g. when terminal exchange times out) instead of getting into a state in which it just consumes resources. Later it will be modified to die more gracefully, saving files in the VED buffer. Oct 24 Library procedure *FULL_IDENTPROPS added. HELP *IDENTIFIERS added to clarify the different attributes. Now it's possible to get at all information for an identifier. Oct 20 Library files to do with interactive mode and interactive cshell in ved (im.p, ved_im.p, imcsh.p, ved_imcsh.p etc) moved into main library. Oct 19 The macro #_< ... >_# allows evaluation of expressions at compile-time. See HELP * HASH_< . Oct 15 Added HELP CRSV and modified HELP SYSSAVE to refer to REF SYSUTIL Oct 4 1984 -- Version 9.3 * Compilation inside VED has been tidied up and generally rationalised. Specifically this means: 1. The commands ENTER l, l1, c, c1, x and x1 now all use the load marked range mechanism, e.g. running ENTER l1 on a file is equivalent to marking the whole file as a range and doing ENTER lmr. This means that output produced (and terminal input requested) by the compiled program will go to whereever lmr would put it. The c, c1, x and x1 commands now also have a facility for returning after compilation to a given ved file, rather than to the compiler outside ved. if the variable VED_POP_BACK_FILE is a string, then return will be to the file of that name; if otherwise TRUE, return will be to the current file at the time of doing the command. FALSE (the default) means leave ved and go to the outside compiler. 2. The load mark range facility now makes provision for programs which attempt to read from the terminal (i.e. from charin). If this happens, the compilation process is suspended and input is requested from whatever file is specified for output by VEDLMR_PRINT_IN_FILE. When input is requested from a file, the current prompt is inserted in the file, and the character "I" appears on the status line, indicating that there is a process waiting for input. Input can then be typed into the file, and given to the waiting process either by (a) lmr'ing the input as a marked range or (b) if the variable VEDCRINTERACTIVE is true by simply typing RETURN on any line. Note that this applies to input from CHARIN, and NOT from the current proglist when compiling, e.g. as currently, compiling READITEM()=> will return because the marked range is exhausted. (To surmount this problem READLINE is redefined so that when VEDEDITING is true, it reads from a new proglist set up from CHARIN -- this means that VEDREADLINE is now redundant). 3. An 'ongoing' compilation process can be set up in any ved file by calling the procedure VEDSETPOP inside that file. The compilation process reads input from, and produces output in the file, so that the interaction will appear like normal 'terminal' mode. Otherwise VEDSETPOP behaves like SETPOP, in that it calls POPSETPOP before calling COMPILE(CHARIN). Calling SETPOP inside VEDSETPOP resets only back to VEDSETPOP and not right up to the top-level. * POPPROMPT can now be a procedure, to allow for 'intelligent' prompts; see *POPPROMPT. Sep 27 The environment variable "popsavelib" names the directory where system saved images reside (i.e. currently pop/lib). Sep 12 TEACH PRIMER is a long, incomplete, introduction to POP-11 for people who already have programming experience. It replaces TEACH PRIMER.*, TEACH POPNOTES, TEACH POPSUMMARY, TEACH LISTSUMMARY. TEACH TEACHFILES updated HELP CONTENTS has been slightly extended. HELP POPLOG gives information about versions of Poplog for other machines and operating systems. VED ENTER H, and the macro HH have been withdrawn, owing to unsatisfactory performance. Apologies. Sep 10 VEDCHARINSERT altered so that when VEDBREAK is TRUE, and current line is too long, it looks for a space to the right, or to the left at which to break the line. It used to break at cursor location. Sep 4 VEDSETKEY altered to accept a word as second argument. E.g. its value may be a procedure or character table. Sep 3 1984 Entry for VED_SW put in HELP * VEDCOMMS Aug 30 HELP * EFFICIENCY provides hints on writing more efficient POP-11 programs Aug 21 A bug deep in the VT100 version of VED, which caused wrong screen addressing to be used for column numbers > 99 has been fixed. This bug interfered with VED ENTER LL. Aug 17th LIB TVI925 provided by Jim Hunter (unsupported) for Televideo 925 VDU. For details: SHOWLIB TVI925 New version of LIB V55 for Visual 55 VDU. See HELP * V55 August 17 VEDSTATUSLINE now made accessible to users August 10 HELP VEDWYSE describes LIB VEDWYSE for use of VED with WYSE VDU The stack of marked ranges manipulated by vedmarkpush and vedmarkpop is now local to each file. ENTER LCP has been altered to use this stack in an attempt to stop the appearance of spurious marked ranges under certain circumstances. VEDLINEDELETE now checks that current line is before the end of the current file before doing anything. On switching to another window, the current line is only indicated as being marked if the current value of vedscreenmark is not `\s`. August 6 Prolog predicates now keep their local values in stack variables: speed improvement is around 20 percent. Spy no longer dereferences arguments to predicates -- this could make predicates written in POP11 easier to debug. August 3 1984 The LISP saved image is no longer constructed in such a way that it loads vedinit.p independently of whether you run VED. Loading is delayed until you first run VED. July 25 ENTER LL To convert VT100 to long line mode, used not to work. A temporary fix has been provided which will deal with most simple cases of use. It assumes the VT100 can only handle 14 lines in 132 column mode. For details SHOWLIB VED_LL. For more advanced terminals, alter 14 to 24, or whatever. July 23 LIB SLOWPROCS extended to enable checking procedures to be switched in and out, by addition of procedure slowprocs. See SHOWLIB SLOWPROCS. July 16 LIB KEYPAD This may be of use for VDUS without 'alternate keypad' mode. For details SHOWLIB KEYPAD LIB VEDIOCONTROL This command makes more control characters accessible to VED instead of being trapped by UNIX. See HELP * VEDIOCONTROL July 12 1984 * ENTER h fixed to work on unix 4.2 (see HELP HELP for info about h) June 9 * "strnumber" now uses the itemiser to produce a number from a string. This means it will cope with any valid number representation allowed by the latter, e.g. radixes etc. It will also allow a number with leading or trailing spaces. * "systranslate" now does NOT attempt to produce a number from the translation of the given environment variable (i.e. using strnumber on it). It was a mistake that it ever did (and the fact that it did was never advertised in the documentation). If you want a number, use strnumber to get it. June 4 * (Unix Only) "sysdaytime" now produces a date string without forking a shell to run Unix "date". It does this by using two new procedures: "sys_real_time" returns the time as a number of seconds since midnight 1 Jan 1970, and "sys_convert_date" which takes such a number and produces the date string from it. (The VMS system will also possess these procedures in the near future...). See REF SYSUTIL. * The quotient and remainder operation "//" can now take integer-valued ddecimal arguments (single-length decimals are not allowed, since the point is to allow the representation of large integers as ddecimals, and decimals can't represent these.) June 2 LISPNEWS updated June 1 1984 -- Version 9.1 (1) Changes to printing in the system: * Problems with redefining the "class_print" procedure for a data type and then calling "syspr" inside that procedure have now been fixed. syspr is now defined simply as define syspr(x); class_print(datakey(x))(x) enddefine; and the actual task of doing printing has been moved to the new procedure "sys_syspr", which will print any object in the system (including user records and vectors), and is the default class_print for all objects. if you do syspr -> class_print(key) class_print will assume you meant sys_syspr and not syspr, otherwise infinite recursion would occur ... * Two new variables which control printing have been introduced. The first, "pop_pr_exponent", will cause decimals/ddecimals to print in exponent format if set true. E.g. 1234567890.0 prints as 1.23456789e+9 0.1234567890 prints as 1.23456789e-1 The second is "pop_pr_quotes", which if true causes strings to be printed inside string quotes. Note that this is now set true locally by "sysprmishap" when printing the INVOLVING list, so that strings are distinguishable from words. * In the interests of consistency the variable "popdplaces" which controls the number of fractional places to which decimals are printed (including in exponent format), is now renamed "pop_pr_places" ("popdplaces" remains as an autoloadable synonym, however). There are thus 4 "pop_pr_" variables controlling sys_syspr: pop_pr_radix pop_pr_places pop_pr_exponent pop_pr_quotes (2) (VMS only) SYS_FILE_MATCH now returns all file names in lower case, for compatibility with the rest of the system. (2) (VMS only) Problems with restoring saved images after the DCL command SET COMMAND has been used are now cured. May 29 LIB FINDLINES fixed to work with VTURTLE May 24 LIB VEDKEY5 altered so that you can create blank space below the cursor when at the end of file. May 3 1984 The * EXPLAIN library macro has been fixed to work for UNIX. It prints out help files, using the unix 'more' facility. This enables people without suitable VDUs for VED to access help files. LIB WINDOWS had stopped working owing to changes in the heart of VED. It has been patched temporarily. See HELP WINDOWS for details. Nothing is guaranteed. April 24 * The procedure "sys_io_control" now makes available the functionality of the UNIX "ioctl" system call. It can also be used to change the characteristics of a terminal device like popdevraw so that shell control characters can be enabled or disabled inside ved, etc. See sys_io_control in REF SYSIO. * $, % and ! at the start of an ordinary terminal line and ENTER $, ENTER % and ENTER ! from ved now call /bin/sh, /bin/csh and systranslate('SHELL') respectively. * The library procedure "random" has been improved. April 19 Bug in lib actor fixed (procedure GPO now works) April 16 Bug in vedchardelete involving tabs has been fixed. It also affected VED substitutions with search strings crossing line boundaries. April 9 The changes made to the ved terminal interface have now been removed, i.e. all shell control characters (^S, ^Q, etc) have been restored. Instead, a new facility will be introduced to enable the terminal characteristics of popdevraw and other terminal devices to be user-assignable. April 6th 1984 Bug in CATCH and THROW fixed. THROW previously caused an infinite loop in certain circumstances. Mar 27 New VED_FILL speeded up and incorporated into the system, library version withdrawn. VED_J uses VEDCOMPILEABLE to choose between VED_TIDY and VED_FILL. ENTER NAME no longer allows the current file to be given the same name as a file currently being edited. VEDPRESENT(string) provided for checking whether a file named is being edited. Returns the file structure, or FALSE. Mar 22 Changes in 'raw' mode(used by VED): All Unix signals except intr and quit are disabled, enabling the character to be used for VED commands. Also XTABS mode is turned off i.e. tab characters sent to the terminal via rawcharout will not be converted to spaces. Mar 16 VED_FILL altered to do less unnecessary alteration of screen. VED_JJ and VED_JJP altered to use it. See HELP PAGE Mar 15 Bug in ENTER LS fixed. Large values of poppid used to fool it. SYSLIBCOMPILE now takes an optional second argument, a list, specifying the directories to be searched for the file, default is POPLIBLIST. This has been used to fix a bug in LOADLIB and thus LIB. LIB PAGE has been extended. LIB RNO provides some runoff-style commands for use with LIB PAGE. For details see HELP * PAGE. Mar 13 1984 -- Version 9.0 * 'Layered' saved images: These are based on the new procedure "sys_lock_system", which allows a saved image to be created in which data structures are paritioned into constant and non-constant areas. See REF SYSUTIL. * LVARS: These are a new kind of variable which are intended (in the long run) to be lexically as opposed to dynamically scoped. At the moment full lexical scoping is not supported, and lvars must always be local to any procedure in which they are used, i.e. a non-local reference like define foo(); lvars x; define baz(); x => enddefine enddefine; is not allowed. In their present form, their main advantage is efficiency, since they are allocated either to registers or to cells in the procedure stack frame (giving faster access and compacter code). "lvars" are declared just like "vars", and for the duration of the procedure in which they are declared will override any dynamic declaration for the same name. Since a procedure can now have two kinds of variable, formal argument and result variables are now ambiguous (i.e. are they "vars" or "lvars" ?). They will default to "vars", but the POP compiler has been changed so that this default declaration will be made ONLY for names which do not appear in any "vars" or "lvars" statements immediately following the procedure header. This allows formals to be declared in such statements, and it is recommended that you now declare all formals in this way, e.g. define foo(x, y, z) -> p; vars z u v w; lvars x a y b c d procedure p; ... enddefine; etc. Note also that since the first TWO lvars are allocated to registers, this allows any chosen variables to get the registers (i.e. x and a in the example above. New associated virtual machine facilities are sysLVARS and sysNEW_LVAR -- see REF SYSCOMPILE. * log10(x) added to the library. Computes log of x to base 10. Feb 28 TEACH TRANSSENT improved. DOC PRIMER removed from exported files. (See TEACH PRIMER.CON) Feb 16 TEACH READLINE improved Feb 14 HELP ACTIVE added. Feb 13 ENTER F has been told about procedure header syntax, so it can now find macros, operations etc... The new flag '-x' makes the search exact i.e. ENTER F -x foobaz, will succed only if the procedure foobaz is defined in the current file, otherwise foobaz3 and foobazgrum will also be found. (ENTER FF is now a synonym for ENTER F). Feb 8 Bug in updater of fast_subscrs fixed Feb 1 1984 ENTER send - now writes (and deletes) the message file in the user's home directory. Jan 27 LIB v500 for Visual 500 brought up to date. ENTER pwd - displays current directory. ENTER cd - changes current directory. See * CD. Causes MISHAP if target directory doesn't exist. ENTER date - displays the system's current time and date. Jan 16 Bug in LIB FINGER fixed - (See TEACH FINGER) Prolog version 8.2.1. Several alterations to the core of Prolog to improve performance and remove various bugs. However there are many more alterations needed.... Itemising and therefore compiling should be faster, as well as running. Jan 4 1984 SYSFILENAME altered for UNIX. Returns everything after the last "/". VEDFILESELECT provided for moving between files. See help file. Dec 29 LIB PROLOGLIBLIST extends POPUSESLIST to include PROLOG library directories. See HELP * PROLOGLIBLIST. ISDYNAMIC can be used to check if something is a dynamic list. Dec 28 ISINCHARITEM can be applied to a procedure to see if it was produced by INCHARITEM. If applied to ITEMREAD or READITEM it checks to see whether PROGLIST is generated by a procedure produced by INCHARITEM. ISINCHARITEM returns FALSE or the generating procedure. PROLOG itemising has been considerably speeded up. It is now about 3.5 times as fast. Compiling is therefore about 12% faster. Dec 27 VED ENTER grep string file-names runs grep with the given arguments, and reads the output into a temporary VED file. HELP * VEDCOMMS updated HELP * CONTENTS updated. New section for UNIX added. HELP * UNIX points to files with information about accessing UNIX from POP HELP * POPENVLIST gives information about UNIX environment variables HELP * SYSEXECUTE gives information about invoking Unix facilities. HELP * SYSOBEY brought up to date for UNIX SYSOBEYLIST made to use the value of environment variable SHELL SHELLOBEY(string) is like sysobey but uses value of current environment variable 'SHELL'. ENTER ls - replaces ENTER dir for UNIX POPLOG. See HELP * VEDCOMMS ENTER LS uses CSHELL to analyse file names. So '~' works. ENTER del improved ENTER purge altered to use ENTER ls ENTER lsx behaves like ls -x i.e. file names in columns across page HELP * VEDCOMMS updated * SYSFILEDIR and * SYSFILETYPE altered to suit unix. Removed library and help file for WHEREIS - local to sussex Dec 23 If commands like help, teach, showlib, etc are invoked outside VED and they don't find the relevant file, then after printing the message they call interrupt. Dec 22 FNCOMP added as a synononym for PDCOMP, for compatibility with POP2 note: <> can be used to concatenate procedures. Dec 9th LIB VCALC now does more checking for consistency Dec 8th 1983 LIB MSBLOCKS installed. See TEACH MSBLOCKS - introduces a SHRDLU-like program using the editor as display. Nov 29th LIB RECORD altered so that RECORD and ENDRECORD can be used in procedures. I.e. the macros plant code instead of running it. Nov 26 Bug causing uninterruptable loop occasionally after 'recursion level exceeded' has been cured. Nov 25 There is a new mechanism for defining SHELL commands to run pop11. See * HELP INITIAL. Various help files have been updated for Unix INITIAL, PARAMETERS, SYSSAVE Nov 17 HELP * SMATCH describes LIB SMATCH, for using the matcher in a section. ENTER SHELL runs the shell commands in current ved file ENTER PURGE now works. Bug in TURTLE_PR fixed - now autoloads DRAW properly Nov 11 LIB HALTS now works as described in HELP * HALTS Nov 4 vedmidwindow sets currentline at middle of window LIB V55 converts VED for visual 55. SHOWLIB V55. See HELP * V55 LIB FORMS (experimental) provides a powerful new utility for extending the syntax of POP-11. See HELP * FORMS LIB V500 should have been called LIB V550 and has been renamed. Similarly HELP V500. Sorry. Nov 1 1983 * A bug which caused vedputmessage sometimes to display messages in the wrong part of the screen has been fixed. * The file vedopen.p has been removed from the library as the procedure vedopen is now defined in the system. Oct 30 - Version 8.2 * Some internal changes have been made to the Prolog system procedures to speed up matching of arguments to Prolog clauses. * TRACE now attempts to autoload its arguments. Oct 27 The variable * pop_file_mode, which determines the default protection for files created by * syscreate and derivatives, is now 8:664. I.e. files are readable and writeable by the same group. Oct 26 * In the interests of making them more readable and less verbose, the 'fast_integer_' operators have been renamed. The 'fast_integer_' prefix has been condensed to 'fi_', and the remainder of the name has been replaced by its sign character equivalent. The operators now available are therefore: fi_+ fi_- fi_* fi_// fi_< fi_<= fi_> fi_>= The old names remain as autoloadable library procedures. * An itemiser bug which prevented a character that had redefined as a string quote being recognised as such has now been fixed. Oct 20 1983 HELP SHELL, HELP PRINTING and HELP MAIL are now available on UNIX. The REF POPINDEX and REF VEDINDEX files have been updated for UNIX. ENTER SOURCEFILE now available for UNIX. VEDGETLIBFILENAME has been altered so that it ignores elements of the directory list which are procedurs rather than names. Thus SHOWLIB now works in situations in which it used sometimes to produce an error. Oct 14 1983 ENTER helpkey Then press the key. It will find the relevant entry in HELP VEDCOMMS or HELP VEDPROCS and put it on the screen. LIB V500 provides a version of VED for the VISUAL 500 terminal. See HELP V500 COMING SOON ---------------------- Oct 13 1983 The RECORD command for recording interactions with POP-11 has been extended. (a) record and endrecord are now macros not operations. so they cannot be used inside procedures. (b) record allows an optional filename to be specified, see HELP * RECORD for details (c) if a previous file of the same name exists, then instead of being lost as before, it is copied into the new file. I.e. the new interaction record is appended to the old file. October 10 1983 ENTER NDIR has been patched and now works on UNIX. September 30 1983 * There is now a syntax for putting arbitrary character values 0 - 255 into a quoted string (or after an alphabeticiser character, etc). This is the character value preceded by "\(" and followed by ")", e.g. '\(97)A\(255)' is a string of 3 characters, 97, 65 and 255. The integer between the parentheses can use the full itemiser syntax for integers, and so can be preceded by a radix, etc. * termin now prints as , rather than as ^D. This makes it machine/operating system independent. Setptember 29 1983 - Version 8.1 * What happens when any non-procedure object is applied as if it were a procedure can now be controlled by altering the CLASS_APPLY procedure for the data type. If X is any object, and P is CLASS_APPLY(DATAKEY(X)), then attempting to apply X as a procedure will result in P being called with X as argument, i.e. P(X). Similarily, an updater call of X will turn into a call of the updater of P, i.e -> P(X). In addition, the updaters of CLASS_APPLY, CLASS_PRINT and CLASS_= can now be used to change the corresponding procedure for ANY key, including all built-in data types (even integers and decimals). Thus you can for example change how integers are printed, or what happens when one is applied as a procedure. See REF KEYS for full details. * An empty expression following the assignment arrows -> and ->> will now be interpreted as meaning "erase an item from the stack". E.g. ERASE(FOO()); can now be written more elegantly as FOO() ->; Another example: if BAZ is 3-result procedure and the second result is not required then BAZ() -> X, ERASE(), -> Y; can be written instead as BAZ() -> X -> -> Y; September 28 1983 Prolog local directories have been moved to [pop.local.plog...] This makes tape dumping easier. September 27 1983 While the printer in Arts E is broken, you can print things out in the computer centre, behind MAPS 2. To make this easier, you can now use ENTER CCPRINT from VED. This works just like ENTER PRINT, (See *PRINTING) but it comes out in the computing centre. Or, from DCL, you can use $ CCPRINT filename this works just like $APRINT, but comes out somewhere else. Sept 24 1983 TRYSETVALOF(word,string1,string2) - for details see HELP * TRYSETVALOF Various VED enter commands have been re-defined to use this. VED ENTER set Uses TRYSETVALOF to switch the value of the variable. LIB VCALC is an experimental spreadsheet program. See help vcalc. September 16 1983 New LIB FACETS moved into system library - see HELP *FACETCHANGES. Setember 5 1983 Prolog Version 8.1 Various bugs fixed. Please see * PLOGNEWS ENTER MO - now complains BEFORE deleting range Sept 2 LIB SHOWTREE modified to use NEWVEDFILEPROP. New user-assignable procedures SHOWTREEINIT and SHOWTREEDEFAULTS added. Sept 1 1983 The external procedure mechanism has now been improved, to allow such procedures that require allocation of dynamic memory at run-time to function correctly. This means it is now possible to incorporate C/PASCAL/FORTRAN routines etc that do I/O. See REF EXTERNAL for full details. The itemiser now copes with all 8-bit characters from a character repeater, i.e. characters 0-255 (previously it only accepted 0-127). ENTER MI (Move Items) has been withdrawn due to a clash with ENTER MI (Move marked range Into current file). Aug 30 New procedures * NEWVEDFILEPROP and ISVEDFILEPROP to make it easier to associate extra properties with the current VED file. The online documentation commands DOC, REF, TEACH and HELP are changed so that they FIRST look in the corresponding LOCAL library. Also the default names will not be full path names, just individual file names. This is to simplify things for sites which wish to override Sussex defaults. Aug 22 Bug in VEDNEXTITEM removed: VVEDLINESIZE wasn't reset properly. UPPERTOLOWER and LOWERTOUPPER now return their argument if it isn't an alphabetic character. Aug 18 ENTER UL - underlining in VED. See SHOWLIB VED_UL Aug 2 The facility for following POP11 macros and VED ENTER commands for examining/editing files with a search string has been withdrawn. This is because it was incompatible with UNIX file pathnames containing "/"s, and caused such a filename in VAX/UNIX POPLOG to be interpreted as a search string... LIB FORMAT procedures are now individually autoloadable. They have also been sectioned off and (in some instances) speeded up. LIB FORMAT still loads all these procedures, as before. Aug 1 1983 sysfileextension - new auto-loadable procedure: like sysfiletype, but includes a '.' as part of the string returned. HELP NEWS truncated. For older news see HELP NEWS.8