Search Top Index
HELP V13.CHANGES A.Sloman Aug 1987 This file lists major changes for POPLOG Version 13. HELP * NEWS.V13 has the information in chronological order. This file uses a more structured organisation. HELP * LISPNEWS and HELP * PLOGNEWS provide details for Prolog and Common Lisp. For more recent CHANGES see HELP * NEWS CONTENTS -- Overview of changes -- Run-time or "delivery" mechanism -- Mixed language programming -- The POPLOG environment -- Documentation -- New, extended or modified POP-11 facilities -- Mishaps -- New Virtual Machine facilities -- Access to the operating system -- VMS only -- UNIX only -- The editor, VED -- Libraries -- New or substantially modified identifiers or words in system -- Withdrawn words or identifiers -- BUGS NOTE ON FILENAMES: In some of the examples below, UNIX file name format is used. VMS users should do the corresponding translation. E.g. UNIX version VMS version ------------ ----------- $usepop/pop/lib/psv/eliza.psv USEPOP:[POP.LIB.PSV]ELIZA.PSV $usepop/pop/com/poplog USEPOP:[POP.COM]POPLOG.COM The addition of ".COM" is required only for command files. Apart from this, the UNIX format may be used in VMS POPLOG programs. They will automatically be translated. See the section on "File Specifications" in DOC * SYSSPEC Overview of changes ------------------- 1.POPLOG Common Lisp is now complete (as defined by the Steele manual), and has been speeded up and provided with an improved "break" package. For further information about Common Lisp enhancements, see HELP * LISPNEWS 2. As threatened in V12, the old Lisp system, LIB LISP, has been removed. 3. The Prolog parser and compiler have been substantially re-written with resulting improvements in performance and robustness. Programs using very large numbers of unit clauses will consume far less space. The VED interface for Prolog users has been improved. See HELP * PLOGNEWS 4. POP-11 has several new features including "dynamic local expressions", active variables, better access to identifiers, extensions to the class mechanism, a generalised hashing facility, and user modifiable procedure calling stack size. These items are described more fully below. 5. There has been a massive overhaul of online documentation. The REF files have been reorganised and now provide a complete description of the main facilities in POP-11 and the Poplog virtual machine. See REF * REFFILES 6. The Poplog window manager (PWM) has been totally revised, with a host of new facilities, on SUN workstations. It can be used remotely, i.e. to drive the screen on a workstation connected to POPLOG running on a more powerful remote machine. New features include mouse tracking facilities; raster saving and loading; colour map support; invisible windows; more convenient handling of bit-images. We apologise to users who built software on the rapidly produced temporary window manager supplied with version 12 and who now will need to convert their programs. See HELP * PWM DOC * PWM For other workstations (HP, Apollo, VAXstation) modified versions of the PWM will be available. For version 14 it is likely that POPLOG will follow many other hardware and software systems and convert to X-windows, in order to be machine independent. As far as possible software built using the version 13 PWM will be supported with minor changes. 7. The "EXTERNAL_LOAD" interface, for linking in programs in (e.g.) C and Fortran, including NAG libraries, has been much improved. See HELP * EXTERNAL 8. New printed user manuals and a Poplog administrator's guide have been produced by Systems Designers. Run-time or "delivery" mechanism -------------------------------- POPLOG V.13 includes the first of a planned series of "delivery" systems, making it possible for POPLOG-based products to run in a saved image with a "run-time" licence. If you plan to create a product based on POPLOG and wish to use the new mechanism you need to create a saved image. It can then be distributed with a special Poplog image that will only run a saved image. End users then receive only this image, your saved image, and any additional files used by your system. They therefore do not need a full POPLOG licence. For further details please consult your supplier. Mixed language programming -------------------------- 1. Some new facilities for mixed language programming have been added. POP11 libraries: LIB PLOG_GOALS LIB PLOGINPOP Prolog libraries: LISPINPLOG Lisp modules: PROLOG See HELP * PLOG_GOALS, HELP * PLOGINPOP, PLOGHELP * LISPINPLOG and the Lisp HELP file PROLOG. The POPLOG environment ---------------------- 1. In order to provide more flexibility in setting up saved images and supporting different groups of local libraries the environment variables used by Poplog have been altered slightly and $poplocal introduced as explained below. See DOC * SYSSPEC for an overview of the POPLOG directories and HELP * INITIAL, *INITIALISATION for information on setting up the user environment. 2. The environment variable $poplocal is defined to locate the base of the local directory tree. This allows the local tree to be outside the main POPLOG tree. Local directories should then be sub-directories of $poplocal/local (or on VMS POPLOCAL:[LOCAL]). In order to maintain compatibility with earlier POPLOG systems, the default value for $poplocal is $usepop/pop in UNIX and USEPOP:[POP] in VMS. This default is assigned in $usepop/pop/com/poplog (USEPOP:[POP.COM]POPLOG.COM on VMS) if a value has not already been assigned to it. So to override the default simply assign an alternative value in the login file at the same time as defining $usepop. (On Berkeley Unix the login file is .login, on System V Unix it is .profile, and on VMS it is LOGIN.COM). See DOC * SYSSPEC and HELP * INITIAL 3. The default value of environment variable $popsavelib is now $usepop/pop/lib/psv in UNIX and USEPOP:[POP.LIB.PSV] in VMS (it was previously $usepop/pop/lib). Locally generated saved images should no longer be stored in $usepop/pop/lib. The best place for them is in $poplocalbin, which defaults to $poplocal/local/bin. For more on this see HELP * INITIAL Documentation ------------- 1. Documentation for all three languages has been considerably improved and extended. There are very many new HELP and REF files, including a REF file describing support in the virtual machine for Prolog. 2. HELP * DOCUMENTATION gives an overview of the various means of accessing online documentation. 3. HELP * INITIALISATION gives a much improved account of how individual users can tailor the POPLOG environment. 4. A new online HELP facility using the commands <ENTER> ? and <ENTER ?? is available in the editor, for rapidly accessing information about procedures and global variables. (Not yet for LISP or PROLOG) <ENTER> ?? <name1> <name2> .... gives summary help information on named identifiers in a temporary VED buffer. <ENTER> ? <name1> <name2> .... gives very brief help information on named identifiers. (Format of procedure calls only). If only one name is given, then it prints information on the VED command line. Because of problems of file names containing "?" VED_WHAT is used in documentation as a synonym for VED_? and VED_WHATS for VED_?? See HELP * VED_WHAT 5. A new version of VEDSYSFILE causes the commands using it, i.e. HELP, TEACH, REF, DOC and SHOWLIB to default to use the *VED_? mechanism. So the HELP command will return information in many more instances than it did previously. See HELP *NEWVEDSYSFILE. 6. There are online versions of the new VED Userguide and the Poplog administrator's guide. See DOC * DOCFILES 7. Suggestions for standards for online documentation produced by users for libraries, etc. are given in HELP * STANDARDS, HELP * LOGICAL_KEYS 8. The file HELP * ENTER_G describes commands for creating and using indexes in online documentation files. 9. The following files provide annotated overviews of domains covered by POPLOG documentation: Overviews of HELP files; HELP *HELPFILES (separately for pop/lisp/help, pop/plog/help and pop/help/), HELP *FLAVOURS, *INITIALISATION, *IO, *LISTS, *POP, *PROGRAMMING, *VED, *PWMFILES Overview of DOC files; DOC *DOCFILES Overview of library files; HELP *LIBFILES Overviews of TEACH files; TEACH *TEACHFILES, (added separately for pop/plog/teach and pop/teach Overview of REF files; REF *REFFILES 10. HELP * EFFICIENCY has been expanded. It includes advice on avoiding garbage collections caused by unwittingly producing ratios when dividing integers using "/". 11. The main Poplog REF files in $usepop/pop/ref/ have been completely overhauled, and from Version 14 will provide the basis for the HELP mechanism. REF COMPILE and REF SYSCOMPILE have been replaced by: REF *CHARIO - character stream input/output procedures REF *PROGLIST - Describes PROGLIST, item-reading and macro expansion procedures (like ITEMREAD) REF *POPCOMPILE - A full description of the POP-11 compiler and its associated procedures and variables REF * NUMBERS gives a complete account of arithmetic facilities in POPLOG. Major new features are described in REF * VMCODE, REF * IDENT, REF * INTVEC REF * POPSYNTAX has been completely overhauled and now gives a complete account of the syntax of POP-11. See REF * REFFILES for an overview of the REF files. 12. HELP * MATH now summarises REF * NUMBERS. It points out that various operators previously restricted to integers are no longer restricted, e.g. // * REM, * DIV, * MOD The operators MOD and REM have been different since Version 12, but the HELP files said they were synonyms. Now corrected. 13. Several introductory TEACH files have been improved. See HELP NEWS for details. New, extended or modified POP-11 facilities ------------------------------------------- 1. Processes may be constructed in such a way as not to die when exited normally. See REF * PROCESS 2. The POP-11 compiler procedures have been re-named in a more meaningful and consistent fashion (all beginning "pop11_"), NEW OLD pop11_comp_stream syscompile pop11_exec_stmnt_seq_to systxsqcomp_exec pop11_comp_stmnt_seq sysxsqcomp(%true%) pop11_comp_stmnt_seq_to systxsqcomp pop11_comp_expr_seq sysxsqcomp(%false%) pop11_comp_expr_seq_to (no equivalent) pop11_comp_expr sysxcomp pop11_comp_expr_to systxcomp pop11_comp_prec_expr sys_expr_comp pop11_EMPTY sysDUMMY_PREOP pop11_FLUSHED sysDUMMY pop11_comp_constructor sysstructure pop11_comp_declaration sys_read_vars pop11_need_nextitem sysneed pop11_try_nextitem systry pop11_try_nextreaditem sysnmtry pop11_loop_start sysloop pop11_loop_end sysloopend See REF *POPCOMPILE. 3. There are two new user definable procedures used by the compiler, POP11_DEFINE_DECLARE and POP11_DEFINE_PROPS, which are used by DEFINE respectively to declare identifiers, and to supply default PDPROPS values for procedures being defined. The two variables * POPDEFINECONSTANT and * POPDEFINEPROCEDURE are now local to the compiler, and interpreted by the procedure POP11_DEFINE_DECLARE. See: HELP * POPDEFINECONSTANT HELP * POPDEFINEPROCEDURE REF * POPCOMPILE REF * POPCOMPILE/pop11_define_declare 3. New facilities are provided for building generalised associations between POPLOG objects, dependent on their contents rather than their identity (i.e. address in the machine). These are based on SYSHASH SYSHASH takes an item and produces a hash code for that item that depends on its structure and contents. It has a default mode of operation that can be modified by users for particular data types, since KEYS and classes have been extended to include a CLASS_HASH field containing a user updatable procedure used by SYSHASH. See HELP * SYSHASH HELP * CLASSES REF * KEYS 4. NEWMAPPING uses SYSHASH and * NEWANYPROPERTY to create an association between structured objects and other objects. Thus two lists with the same contents will be mapped on to the same thing. (This is not true of * NEWPROPERTY, which ignores contents of datastructures.) LIB VIEWS described below illustrates an application of these mechanisms. See HELP * NEWMAPPING 5. Several new "fast_" procedures have been provided, to avoid run-time checking. These include fast procedures for accessing property elements. See REF * FASTPROCS and HELP * EFFICIENCY. 6. Formatted printing is facilitated by PR_FIELD, which gives a simple way of printing any item in a fixed length field, either left-justified, right-justified or centred. See REF *PRINT. 7. The POP-11 syntax for iteration has been extended, including provision for simultaneous iteration over several lists, e.g. for V1 V2 ... Vn in L1, L2,...,Ln do <actions> endfor for V1 V2 ... Vn on L1, L2,...,Ln do <actions> endfor and iteration over a structure, e.g. for <variable> in <structure> using_subscriptor <procedure> do <actions> endfor See HELP * FOR The "fast" non-checking version of FOR is now built into the system. 8. TRACE facilities in POP-11 have been generalised to facilitate user-defined variants, and to enable the mechanism to be used for user-defined languages: POPTRACEINDENT is a variable representing current depth of tracing. SYSTRACE_PROC is a user-definable procedure called by SYSTRACE to effect trace printing. SYSTRACE_PR is a user-defineable procedure that does the "before" and "after" trace printing. called by the default SYSTRACE_PROC If TRACING has the value 1, then syntax words can be traced. Updaters of traced procedures work properly now. The variable * CUCHARTRACE if non-false allows trace printing to go to a different character consumer from normal printing. See HELP * TRACE (now much expanded) for details 9. NEW string procedures have been added, to complete the following family: ISSTARTSTRING, ISSUBSTRING, ISENDSTRING, HASSTARTSTRING, HASSUBSTRING, HASENDSTRING. The 'IS-' versions take the substring as first argument, the 'HAS-' versions take it as last argument. So, the HAS- versions can be partially applied to sub-strings. See REF * STRINGS for details. 10. Updaters for multi-valued structure accessors. The procedures EXPLODE now has an updater, i.e. it fills the given structure with elements from the stack. This works on all structures for which EXPLODE works (except for words and properties); on lists, it uses the updater of * DL (also newly added), e.g. [0 0 0 0] -> list; 4,5,6,7 -> dl(list); list => ** 4 5 6 7 The updater of EXPLODE therefore works like * FILL except that the latter treats lists as pairs. *APPLIST and *MAPLIST also have updaters, described in their help files and in REF *LISTS. These updaters are useful in connection with "dynamic local expressions", described in the section on new virtual machine facilities below. E.g. the value of "explode(list)" can be saved on entry to a procedure and restored on exit. 11. FILL, MAPDATA and NCMAPDATA now work on all structures for which APPDATA does. 12. The random number generator previously built into the system was flawed and has been improved considerably. See HELP * RANDOM. 13. New datatype added: signed integer vectors See REF * INTVEC 14. * UPPERTOLOWER and * LOWERTOUPPER now can be used with words or strings as well as characters. 15. A new infix arithmetic operator is provided: ==# X ==# Y Is true if X is identical to Y; or if X and Y are numbers of the same representational type and numeric value. Mishaps ------- New features in MISHAP messages: 1. Successive calls of the same procedure are grouped together in the DOING part of the message (eg seven recursive calls of 'foo' would be indicated by foo(*7) 2. A new variable, POP_MISHAP_DOING_LIM, if given an integer value limits the number of callers printed. Its default value is FALSE, specifying that all callers should be displayed. 3. The prefix "pop11_" on the PDPROPS of a procedure in the calling chain is now treated by SYSPRMISHAP like "sys" and "ved", i.e. the call is not included in the DOING list unless POPSYSCALL is true. New Virtual Machine facilities ------------------------------ 1. Active identifiers - which run procedures when accessed or updated, and allow a variable to store multiple values, are described in HELP * ACTIVE, REF * IDENT and REF * VMCODE The following are now active identifiers. * CURRENT_SECTION * CURRENT_DIRECTORY (* SYSDIRECTORY is defunct - defined in library) * POP_CALLSTACK_LIM - size of procedure calling stack (Default 90000) * POPDEVERR * POPDEVIN * POPDEVOUT * POPDEVRAW DLOCAL_PROCESS, DLOCAL_CONTEXT are active variables used in conjunction with dynamic local expressions. (See below.) 2. POPLOG now supports 'dynamic local expressions': arbitrary expressions whose values are to be saved on entry to a procedure and restored on exit. A new syntax word DLOCAL is used for this. This facility makes it possible to specify 'exit actions' for a procedure - actions to be run no matter whether the procedure exits normally or abnormally. This is analogous to UNWIND-PROTECT in Common Lisp, but is more general. The mechanism also allows actions to be performed whenever a process is run or resumed, or whenever it is suspended. This now makes it possible for a process to ensure that its environment is set correctly whenever it runs, and that the previous environment is restored whenever it is suspended (or another process resumed). (See REF * PROCESS for details of the process mechanism.) For example a process that runs Prolog might ensure that it does it inside a particular section. So different Poplog processes could run Prolog with different databases. HELP * DLOCAL gives a brief introduction to the new mechanism. HELP * ACTIVE_VARIABLES includes examples using "active" identifiers. REF * VMCODE describes the mechanism more fully. 3. Identifier records are now fully supported for use by users; a new POP-11 syntax word IDENT will produce the identifier associated with a word, and there are new procedures IDVAL, IDENTOF, etc for run-time manipulation of identifiers. See REF * IDENT 4. A new VM instruction is provided: 'sysSWAP'. It plants code to interchange two items on the user stack. See REF * VMCODE 5. Two new VM instructions sysFIELD_VAL and sysUFIELD_VAL provide fast access/update to data structure field values - i.e. avoiding run-time type checking. See REF * VMCODE/sysFIELD_VAL Access to the operating system ------------------------------ Access to the Operating System has been improved. The new procedures are defined as POP-11 procedures but can be invoked from LISP or PROLOG in the usual way. The procedure SYS_INPUT_WAITING generalises SYS_INPUTON_TERMINAL (the latter remains as an autoloadable synonym). SYS_INPUT_WAITING can be applied to any kind of device, but is particularly intended for use with 'interactive'-type devices (i.e. terminals and UNIX pipes/VMS mailboxes) to test whether input is available to read. See HELP *SYS_INPUT_WAITING. A new procedure, DEVICE_OS_CHANNEL can be applied to a device record to obtain the underlying operating system 'channel' number associated with it (an integer). In Unix, this is the file descriptor; in VMS, the channel number. SYSMODTIME gives the time of last modification of a file. See HELP * SYSMODTIME For an overview see REF * SYSUTIL and REF * SYSIO VMS only -------- In Version 13 of VMS POPLOG the external load facilities have been re-implemented and considerably improved. The principal changes are as follows (see REF *EXTERNAL for full details): Shareable Images are now fully handled, either when explicitly specified in the EXTERNAL_LOAD input file list or when implicitly extracted from a shareable image library. The processing of EXTERNAL_LOAD Input File List is summarised in HELP * NEWS and described fully in REF * EXTERNAL. The list of strings specifying the input files to EXTERNAL_LOAD may now also include VMS linker command qualifiers. Dynamic Memory Allocated by External Procedures: One of the major changes in VMS POPLOG Version 13 is to allow the system to cope with the segmentation of its heap space that results when external procedures allocate dynamic memory at run-time. External procedures can now allocate memory freely, and the user need make no prior provision for this. (This facility will be extended to UNIX for V.14). Saved images using VMS shareable images now work. For compatibility with Unix POPLOG systems, the VMS version of SYS_FILE_STAT returns an integer file date rather than an ASCII string; regrettably, programs using the procedure will therefore have to be changed. The integer returned is a Unix date, i.e. a of number seconds since 00:00 January 1 1970; it can be converted to a VMS-format date string with SYS_CONVERT_DATE. So that sys_file_stat(filename, vector) -> vector; sys_convert_date(vector(2), true) -> vector(2) gives the behaviour of the old SYS_FILE_STAT. Note that similar remarks apply to SYS_FILE_MATCH, which uses SYS_FILE_STAT. See HELP * DCL_COMPILE for a new facility. A bug that prevented POPLOG from being able to read indexed sequential files is now fixed. For the time being, they can be read (sequentially), but not created or written. UNIX only --------- The Virtual fork mechanism in Berkeley Unix has been found to be unreliable. SYSVFORK should no longer be used. Instead use SYSFORK. See HELP * SYSFORK SYSGETPASSWDENTRY is a procedure for interrogating the entry in the password file corresponding to a user's login name or user-id (integer) Extended VED-based front end for Unix mail. HELP * VED_MAIL VED_IMCSH and related facilities for communicating with a CSHELL process via a pipe or via VED (using immediate mode) are now made available in Unix SystemV POPLOG as well as Berkeley Unix POPLOG, since /bin/csh is often available in System V. HELP * IMCSH * CSH_COMPILE * IMSH POPLOG no longer interferes with 'umask'. Hence the permissions of files created by POPLOG (using SYSCREATE or VED) will be the result of masking POP_FILE_MODE with 'umask'. See HELP * POP_FILE_MODE A new autoloadble library procedure * SYSFILEINODE when given a file name returns the inode number. (SUN only) When using the Suncore library routines, the initialisation function _INITIALIZE_CORE redefines the handling of the SIGCHLD signal in a way that invalidates the use of SYSWAIT in POPLOG, causing it to give a 'NO CHILDREN' mishap (the Suncore routine preempts SYSWAIT by waiting on any children the process creates). To get round this problem at least for SYSOBEY, that procedure now sets SIGCHLD to be ignored while waiting for the child process it creates. (There is really no general solution: the -wait- mechanism in Unix is just inadequate.) The editor, VED --------------- This has many minor enhancements. Search for "VED" in HELP * NEWS. 1. HELP *IM explains how to use "immediate mode" in VED to interact with your programme. 2. VEDSEARCHLIST is a variable whose value should be [] or a list of directories. If it is a list of directories the VED command will search in those directories for the file given, just as HELP searches a list of directories. 3. LIB SUBSYSTEM now copes better with VED immediate mode. Doing <ENTER> IM <filename> now runs POP-11 in a '.p' file, Lisp in a '.lsp' file, Prolog in a '.pl' file, etc. See HELP *IM 4. Online browsing facilities have been extended. HELP * VEDGETSYSFILE is enlarged to explain browsing mechanisms used by <ESC> h, <ESC> n, <ESC> u 5. VED_INDEXIFY, used for creating a table of contents and VED_G for browsing now cope with headings underlined with hyphens. See HELP * ENTER_G 6. <ENTER> cdiff A new VED utility for comparing files character by character, but ignoring tabs, spaces, newlines, etc. See HELP * CDIFF, *DIFF. 7. LIB VEDBLOCKS makes available a family of VED ENTER commands for manipulating blocks of text, e.g. inserting, deleting, copying, moving or blanking out rectangular text blocks. See HELP * VEDBLOCKS 8. There is a much improved EMACS emulation in the editor library. See HELP * VEDEMACS 9. The VED variable VEDPATHNAME associated with each VED file holds the full pathname for the file. By contrast VEDCURRENT holds only the name that was given as an argument to VED. 10. TEACH * VEDEXPAND explains a facility for textual substitution in the VED command line. 11. VEDEDITOR and VEDGETFILE have been generalised so that instead of a string they can take a VED file structure as second argument, e.g. the result of VEDOPEN. See HELP * VEDPROCS 12. SHOWTREE has been enhanced, and supplemented with SEETREE HELP * SHOWTREE, * SEETREE 13. VEDFILETYPES is a user-assignable list of condition-action rules that simplifies the specification of different defaults for different kinds of files. See HELP * VEDFILETYPES 14. VEDFILESELECT is a procedure allowing rapid selection of files from VEDBUFFERLIST. HELP * VEDFILESELECT 15. VEDENTER and VEDREDOCOMMAND are no longer assigned directly to appropriate keys: instead they are the default value of two procedure variables, "vedenterkey" and "vedredokey", which are mapped to key sequences. 16. <ENTER> WIGGLE can be used to tell VED to wiggle on pairs of opening and closing brackets. See HELP * VED_WIGGLE 17. Two new variables VEDMAXSCROLLHOR VEDMAXSCROLLVERT, each capable of having value FALSE, an integer or a procedure control scrolling in VED. If the value is FALSE (the default) or FALSE is returned by the procedure then behaviour is as previously. If value is a procedure it should return an integer or FALSE when run. The integer value is used to control scrolling vs refreshing. If the number of lines of vertical scrolling, up or down, required to make the cursor location visible is more than the integer value of VEDMAXSCROLLVERT, then the screen is refreshed instead of scrolled. Similarly for horizontal scrolling and VEDMAXSCROLLHOR. If the values are set to 0, then scrolling never occurs. Small values are useful for big screens on which scrolling is much slower than refreshing the whole screen. 18. VEDREADINTABS This new VED variable , default FALSE, can be set TRUE, to tell VEDREADIN, the procedure that reads in VED files from disc, that tabs should be preserved no matter what the value of VEDNOTABS is. This gets over the problem that it is too late AFTER the file has been read in to override the default for VEDNOTABS. If VEDREADINTABS is TRUE, and VEDNOTABS is FALSE, then if the file read in contains any tabs at all, then VEDNOTABS will be switched to FALSE for that file, so that the tabs are preserved on output. Libraries --------- 1. The FLAVOURS system has been extended and with new documentation and a REF file added. Note that the FLAVOURS system is provided for user convenience, but is not supported. See HELP * FLAVOUR_NEWS, TEACH * FLAVOURS, REF * FLAVOURS. 2. Various facilities originally left in POP-11 to support POP2 users have been moved to LIB POP2 See HELP * POP2 3. NEWANYPROPERTY is the basis of a demonstration library showing how to implement a "viewpoint" mechanism in POP-11. See TEACH * VIEWS and HELP *VIEWS. 4. LIB NEWRANDOM gives a slower but statistically more sophisticated random generator than RANDOM, the one built in to the system. See HELP * RANDOM 5. New library package LIB *RANDOM_STATES added. See HELP * RANDOM_STATES 6. New library package LIB BITVECTORS added. See HELP * BITVECTORS 7. LIB * POPHOST has been extended to include a field for the site's mail name, pophost(sitemailname) used e.g. by VED_REPLY N.B. the followin file should be edited by the system manager for each site: $usepop/pop/lib/auto/pophost.p or on VMS: USEPOP:[POP.LIB.AUTO]POPHOST.P 8. LIB *INT_PARAMETERS defines constants POP_MAX_INT and POP_MIN_INT denoting the largest and smallest simple integers. See REF * NUMBERS 9. CONSUNDEF is a new procedure for constructing undef records. See HELP * UNDEF 10. LIB * LOGIC (for teaching elementary propositional logic) has been made to work again. See HELP * LOGIC. A command file for creating a saved image MKLOGIC (MKLOGIC.COM on VMS) has been provided in the $popcom directory. Note: libraries can be explored in sub-directories of $usepop/pop/lib See DOC * SYSSPEC New or substantially modified identifiers or words in system ------------------------------------------------------------ NB. Some of these are words used by system procedures but do not correspond to identifiers. Many (e.g. words beginning with "Lisp_") are system identifiers of no use to users. Information on those which are can be found by putting the VED cursor to the left of the word and giving the command: <ENTER> ?? ==# Cons_rt_idents Lisp_catch Lisp_setstacklength Lisp_symbol_function_token Lisp_symbol_value_token Lisp_throw actions allbutfirst allbutlast array base byte_struc character checkinteger checkpwmcmsid checkpwmcursid checkpwmfontid checkpwmmenuid checkpwmsurfid checkpwmuserwin checkpwmwinid class_hash closed consident consintvec copydata cuchartrace current_directory datastructure destintvec device_os_channel dlocal_context dlocal_process elevator fast_get_prop_entry fast_idval fast_kill_prop_entry fast_lmember fast_prop_entry_value fast_subscrw field_specifier filename getpwmreport gfx identof idval initintvec initvectorclass input integral isactive isarray_by_row isdlocal isident isintvec ispwm_id issdecimal issection label lex lextoken mousexit move newmapping nonactive_idval nonactive_valof number open opened pas_FIELD_VAL pas_LEX_CLOSURE pas_NL_GOTO pas_NO_OP pas_SWAP pas_UFIELD_VAL pas_UPASSIGN pas_declare_perm pas_ident_token pattern perm ploghelp plogshowlib plogteach pop11_EMPTY pop11_FLUSHED pop11_comp_constructor pop11_comp_declaration pop11_comp_expr pop11_comp_expr_seq pop11_comp_expr_seq_to pop11_comp_expr_to pop11_comp_prec_expr pop11_comp_stmnt_seq pop11_comp_stmnt_seq_to pop11_comp_stream pop11_define_declare pop11_define_props pop11_exec_stmnt_seq_to pop11_forloop_test pop11_loop_end pop11_loop_start pop11_need_nextitem pop11_try_nextitem pop11_try_nextreaditem pop_callstack_lim pop_enable_interrupts pop_hash_lim pop_mishap_doing_lim pop_pr_ratios poptraceindent pr_field press proglist_macro_pair prolog_lvars prolog_vars pwm_close_window pwm_gfxkillfont pwm_gfxkillpage pwm_icon_label pwm_id pwm_killcursor pwm_killmenu pwm_open_window pwm_win_internalsize pwm_win_openstate pwm_window_label pwm_windowheight pwm_windowwidth pwmalwaysflush pwmensureprompt pwmeventhandler pwmflushmessage pwmgfxcursor pwmgfxsurface pwmgotreport pwmidinfo pwmnewcmsid pwmnewcursorid pwmnewfontid pwmnewinputsource pwmnewmenuid pwmnewpageid pwmnxtwin pwmquitwindow pwmsendmessage pwmstdcursor pwmstdfont pwmsun_gfxkillcms pwmtextwindow pwmtxtcursor pwmuserwinevent pwmwaitinevent pwmwindowscan quitrequest readstringline recursive_valof reference release resized sequence set_global_valof set_process_entry_term structure subscrintvec sysFIELD_VAL sysIDENT sysPLOG_ARG_PUSH sysSWAP sysUFIELD_VAL sys_current_ident sys_grbg_destpair sys_grbg_list sys_input_waiting syshash syshash systrace_pr systrace_proc tabify text tracing tryunderpwm vax vectorclass ved_? ved_?? ved_do_what ved_file_structure vedcheckwinresized vedenterkey vedjumpto vedmaxscrollhor vedmaxscrollvert vedmousetrap vednographics vedpathname vedpwmdefaultheight vedpwmdefaultwidth vedpwmmousetraps vedpwmscreenxy vedreadintabs vedredokey vedredokey vedrefreshstatus vedvarskeywords vedvt52screenxy vedwinresized Withdrawn words or identifiers ------------------------------ apppwmwindows - Replaced by pwmwindowscan pas_UPOP pas_apply pas_syntax poppwmwindows pwm pwm_closewindow pwm_currentmenu pwm_handleinputevent pwm_icon_title pwm_invokemenu pwm_makememwin pwm_makemenu pwm_newinputsource pwm_normalcursor pwm_openwindow pwm_select pwm_textcursor pwm_win_charsize pwm_window_title pwmmousequitbase pwmmousequitved pwmreadsequence pwmreportinput sysDUMMY sysDUMMY_PREOP sysFORtest sys_expr_comp sys_expr_comp sys_inputon_terminal sys_read_vars sys_read_vars syscompile syscompile sysdirectory sysloop sysloopend sysneed sysnmtry sysstructure systry systxcomp systxsqcomp systxsqcomp_exec sysxcomp ved_ccp (same as ved_lcp) ved_cmr (same as ved_lmr) ved_hkey ved_lp (same as ved_lcp) veddoitfile veddoitlimit vedmidscreen vedpwm_doinputsource vedpwm_donewsize vedusepwm BUGS ---- Many bugs have been fixed in all the languages, the editor, and the libraries. --- C.all/help/v13.changes -------------------------------------------- --- Copyright University of Sussex 1987. All rights reserved. ----------