REF OBSOLETE John Gibson Feb 1993 COPYRIGHT University of Sussex 1993. All Rights Reserved. >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> <<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> <<<<<<<<<<<<<<<<<<<<< OBSOLETE PROCEDURES >>>>>>>>>>>>>>>>>>>>>> <<<<<<<<<<<<<<<<<<<<< >>>>>>>>>>>>>>>>>>>>>> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< This REF file details various identifiers which have become obsolete with the release of further versions of Poplog. CONTENTS - (Use <ENTER> g to access required sections) 1 Pop-11 Compiler 2 Virtual Machine Compiler 3 Filename Processing 4 Processes 5 Subsystems 6 Mishaps & Warnings 7 External Procedures 8 Ved 8.1 Ved Search Mechanism 9 Poplog X Interface 10 Miscellaneous ------------------ 1 Pop-11 Compiler ------------------ These procedures were obsoleted in Version 13. See REF * POPCOMPILE for the new equivalents. popval(list) [procedure] Now the same as pop11_compile(list). syscompile() [procedure] Replaced by * pop11_comp_stream. systxsqcomp_exec(closer) -> found [procedure] Replaced by * pop11_exec_stmnt_seq_to. systxsqcomp(closer) -> found [procedure] Replaced by * pop11_comp_stmnt_seq_to. sysxsqcomp(allow_stmnt) [procedure] Replaced by * pop11_comp_stmnt_seq for allow_stmnt true, and * pop11_comp_expr_seq for allow_stmnt false (both with no arguments). systxcomp(closer) -> found [procedure] Replaced by * pop11_comp_expr_to. sysxcomp() [procedure] Replaced by * pop11_comp_expr. sys_expr_comp(prec, update) -> nextitem [procedure] Replaced by * pop11_comp_prec_expr. sysDUMMY_PREOP(dummy) [procedure] sysDUMMY(dummy) [procedure] Replaced by * pop11_EMPTY and * pop11_FLUSHED respectively. sysstructure(closer) -> bool [procedure] Replaced by * pop11_comp_constructor. sys_read_vars(decl_p) [procedure] Replaced by * pop11_comp_declaration. sysneed(item) -> found [procedure] systry(item) -> found [procedure] sysnmtry(item) -> found [procedure] Replaced by * pop11_need_nextitem, * pop11_try_nextitem and * pop11_try_nextreaditem respectively. sysloop(lab) [procedure] sysloopend(lab) [procedure] Replaced by * pop11_loop_start and * pop11_loop_end respectively. pop_args_warning -> bool [variable] bool -> pop_args_warning popconstruct -> bool [variable] bool -> popconstruct popdefineconstant -> bool [variable] bool -> popdefineconstant popdefineprocedure -> bool [variable] bool -> popdefineprocedure These Pop-11 compiler variables are now superseded by flag bits in the variable * pop_pop11_flags (although for the time being they remain as autoloadable active variables which set/clear the corresponding flags when accessed/updated). See REF * pop_pop11_flags and HELP * compile_mode popsetpop() [procedure variable] Previously, the procedure in this variable was called by setpop, and was redefined by other language subsystems to allow them to re-gain control after a setpop; this function is now replaced by * pop_setpop_compiler. For upward compatibility, popsetpop (default value identfn) is still called by the standard Pop-11 version of pop_setpop_compiler. recordclass [syntax] vectorclass [syntax] Old Pop-11 syntax forms for defining new record and vector classes, replaced by the single construct defclass described in REF * DEFSTRUCT prefix [syntax] This construct was obsoleted years ago by the section mechanism (but is still available in $popobsoletelib, see HELP * PREFIX). --------------------------- 2 Virtual Machine Compiler --------------------------- pop_optimise -> bool [variable] bool -> pop_optimise popconstants -> bool [variable] bool -> popconstants The roles previously played by these two variables are now combined in the single variable pop_debugging (although for the time being they remain as autoloadable active variables which access or update pop_debugging). 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). See REF * pop_debugging sysnlabel() -> label [procedure] Old name for sysNEW_LABEL. See REF * sysNEW_LABEL sysnvariable() -> word [procedure] An old procedure used to generate temporary permanent variables before the advent of lexical identifiers. Replaced by sysNEW_LVAR which generates temporary lexical variables. See REF * sysNEW_LVAR sysFIELD_VAL(field_num, key_or_spec) [protected procedure variable] sysUFIELD_VAL(field_num, key_or_spec) [protected procedure variable] sysSUBSCR(key_or_spec) [protected procedure variable] sysUSUBSCR(key_or_spec) [protected procedure variable] These procedures for planting VM code to access/update structure fields are superseded by sysFIELD for accessing and sysUFIELD for updating -- see REF * VMCODE ---------------------- 3 Filename Processing ---------------------- sysfileparse(filename) -> fvec [procedure] sysfilefield(filename, N) -> string [procedure] sysfilehost(filename) -> host [procedure] sysfiledisk(filename) -> disk [procedure] sysfiledir(filename) -> dir [procedure] sysfilename(filename) -> name [procedure] sysfileextension(filename) -> extn [procedure] sysfiletype(filename) -> type [procedure] sysfileversion(filename) -> version [procedure] sysfullfilename(filename) -> fullname [procedure] These procedures for filename parsing and extraction of fields are replaced by * sys_fname and its associated procedures. sysdirectory() -> dir [procedure] dir -> sysdirectory() Returns/updates the current working directory. Replaced by the active variable * current_directory. ------------ 4 Processes ------------ See REF * PROCESS for the new equivalents. consprocto(n, p) -> proc [procedure] An old (unsatisfactory) procedure for constructing a process out of part of the current calling chain. Replaced by the better consproc_to used (if required) in conjunction with suspend_chain. deadproc(proc) -> bool [procedure] Used to test if the process proc is dead or alive. Superseded by isliveprocess. ------------- 5 Subsystems ------------- Subsequent to Version 14.2, the old LIB SUBSYSTEM is replaced by support built into the core. The subsystem integer subscripts SS_NAME, etc are now available from the include file INCLUDE * SUBSYSTEM, and the procedures below have been obsoleted. See REF * SUBSYSTEM for more details. current_subsystem_name() -> ss_name [procedure] ss_name -> current_subsystem_name() Now equivalent to sys_compiler_subsystem(`c`), i.e. sys_compiler_subsystem(`c`) -> ss_name; ss_name -> sys_compiler_subsystem(`c`); (However, note that sys_compiler_subsystem returns or replaces the most recent compiler-subsystem invocation, which is not necessarily the same as the most recent invocation of any compiler. See Current Subsystem & Current Compiler Subsystem in REF * SUBSYSTEM.) switch_subsystem_to(ss_name) [procedure] Now equivalent to ss_name -> sys_compiler_subsystem(`c`); subsystem_initcomp() [procedure] subsystem_banner() [procedure] subsystem_xsetup() [procedure] These are now the same as sys_subsystems_init(SS_INITCOMP); sys_subsystems_init(SS_BANNER); sys_subsystems_init(SS_XSETUP); respectively. subsystem_syssetup() [procedure] This is now the procedure syssetup. subsystem_nest(source) [procedure] Now equivalent to subsystem_compile(source, false); subsystem_nest_warn(filename) [procedure variable] Renamed subsystem_compile_warn. --------------------- 6 Mishaps & Warnings --------------------- From Version 15+, a new exception mechanism makes the following procedures obsolete -- see REF * EXCEPTION prmishap(item1, item2, ..., itemN, N, string) [procedure variable] prmishap(string, list) For backward compatibility, * sys_pr_exception (the default value of * pop_pr_exception) still calls prmishap for errors if it has a value other than sysprmishap. Depending on the treatment required, all types of exception can now be handled by redefining either * pop_exception_handler, * pop_exception_final or * pop_pr_exception. pop_default_prmishap(string, list) [procedure variable] Use * pop_default_pr_exception instead. sysprmishap(item1, item2, ..., itemN, N, string) [procedure] sysprmishap(string, list) Obsoleted by * sys_pr_message. Now the same as sys_pr_message( if isinteger(N) then N, string else destlist(string), N endif, nullstring, `E`) warning(item1, item2, ..., itemN, N, string) [procedure variable] warning(string, list) Obsoleted by * sys_pr_message. Now the same as sys_pr_message( if isinteger(N) then N, string else destlist(string), N endif, nullstring, `W`) prwarning(word) [procedure variable] For backward compatibility, * sys_pr_exception (the default value of * pop_pr_exception) still calls prwarning for sysdeclare warnings if it has a value other than sysprwarning. (A sysdeclare warning is identified by the exception idstring 'vm-ident:name-ref-none'.) Depending on the treatment required, sysdeclare warnings (as with all other exceptions) can now be handled by redefining either * pop_exception_handler, * pop_exception_final or * pop_pr_exception. sysprwarning(word) [procedure] Obsoleted by * sys_pr_message (which is what now adds items to popwarnings, when given the sysdeclare exception idstring 'vm-ident:name-ref-none'). Same as sys_pr_message(word, 1, {'%DECLARING VARIABLE %P' '' 16:01}, 'vm-ident:name-ref-none', `W`) newprwarning(word) [procedure] Obsoleted by * pop_message_min_detail, which can be used to control the minimum detail level for all messages printed by * sys_pr_message. ---------------------- 7 External Procedures ---------------------- From Version 13.81 of Poplog, the main support for external procedures is no longer in terms of a distinguished "external_procedure" record class; instead, external functions/procedures can be represented by any external pointer class structure (like all other external data). The following procedures are therefore redundant (but remain in the system for upward compatibility). external_load(mark_item, object_file_list, symbol_list) [procedure] Replaced by the syntax construct exload (also the procedure which that employs, external_do_load). See REF * EXTERNAL external_apply(arg_1, arg_2, ..., arg_N, N, result, [procedure] external_p) Replaced by the syntax constructs exacc (which employs the VM instruction sysFIELD to plant in-line code for an external function call), and defexacc (which uses the procedure cons_access to construct apply procedures for external functions). See REF * DEFSTRUCT and REF * EXTERNAL isexternal_procedure(item) -> bool [procedure] The separate "external_procedure" record class is not required by the new facilities (but will function as an external pointer by virtue of being external pointer-class). islive_external_procedure(expdr) -> bool [procedure] Replaced (for any external pointer class) by is_valid_external_pointer (see REF * EXTERNAL_DATA). ------ 8 Ved ------ popcompiler -> p [procedure variable] p -> popcompiler popcompiler(stream) This variable previously held the compiler procedure associated with the current Ved file. It is now replaced by the variable subsystem, which holds the subsystem name for the current Ved file. For backward compatibility, popcompiler remains as an autoloadable active variable which translates between subsystem and the corresponding compiler procedure. trysetvalof(id_name, true_msg, false_msg) [procedure] Replaced by * vedtrysetvalof. vedputchar [procedure] Obsolete synonym for * vedinput. vedtermsetup() [procedure variable] Old initialisation procedure for Ved: used to call vedsetup and then do some extra work to initialise the terminal type. This extra work is now performed by a separate procedure vedinitterm called from inside vedsetup, making the latter sufficient for all initialisation. The name vedtermsetup is maintained as a synonym for vedsetup. ved_what() [procedure] ved_whats() [procedure] Replaced by ved_? and ved_?? respectively. See HELP * QUERY vedmatchbracket(char1, char2, p1, p2, p3) [procedure] This procedure is to be withdrawn. Use vedfindbracket instead. vedsaveglobals(vedfile_struct) [procedure] vedsetglobals(vedfile_struct) [procedure] These procedures are no longer necessary, since the new active variable * ved_current_file automatically saves the variables of the current file and set the variables for a new file when assigned to. The only requirement which this does not meet is to save the variables of the current file without changing files; use * ved_save_file_globals for this. vedwasonstatus -> bool [variable] bool -> vedwasonstatus Prior to the introduction of ved_current_file, programs saved Ved variables with vedsaveglobals, which always switched a file off the status line but retained the state in vedwasonstatus. With ved_current_file this variable is now defunct, since ved_current_file does not tamper with the on/off status, i.e. it always restores a file on status if that was its state when saved (although, as before, the values stored in the file structure are always the file values not the status line values). vedswitchstatus() [procedure] Replaced by the active variable * ved_on_status. It remains as an autoloadable procedure which just does not(ved_on_status) -> ved_on_status vedstatusheader -> string [variable] string -> vedstatusheader This string was formerly used as the start of the status line (including space for the line number of the current file). It is no longer used by Ved, which now creates the status line display directly from the variables vedscreenstatus_-_mark et al (see Special Character Variables in REF * VEDVARS). Programs that previously used datalength(vedstatusheader) to get the length of the header part should now use the constant vedstatusheaderlen. vededitor(defaults_p, file) [procedure] vedgetfile(defaults_p, file) [procedure] Both these procedures are replaced by * vededit, and are the same as vededit(file, defaults_p) vedselect(file) [procedure] vedselect(file, setfocus) Replaced by * vededit. Same as vededit(file) vededit(file, setfocus) vedgraphicmode -> bool [variable] Replaced by the bit VEDCMODE_GRAPHIC in * vedscreencharmode. vedscreengraphoff() [procedure] vedscreengraphon() [procedure] These procedures are now the same as setting and clearing the bit VEDCMODE_GRAPHIC in * vedscreencharmode. vedscreencommandmark [variable] vedscreenlinemark [variable] vedscreencursor [variable] vedscreencursormark [variable] vedscreenmark [variable] Old names for special (usually graphics) characters used on the Ved status line and for marking ranges, etc. The replacements are as follows: Old Name Replacement Name -------- ---------------- vedscreencommandmark vedscreenstatus_-|_mark vedscreenlinemark vedscreenstatus_|-_mark vedscreencursor vedscreenstatus_-_mark (for status line character) vedscreencursorlinemark (for cursor mark character) vedscreencursormark vedscreencursorlinerangemark vedscreenmark vedscreenrangemark (for range mark character) vedscreenmoremark (for text beyond EOL character) The variables vedscreencursor and vedscreenmark have been split into two separate characters; the old names remain as autoloadable active variables which assign to both the new replacements in each case. graphcharsetup() [procedure] This procedure previously assigned terminal-dependent 8-bit character codes for various graphics characters to a set of variables. It is now superseded by a standard set of codes for graphics characters (which are translated on output by the terminal-dependent procedure vedscreengraphtrans). See Ved Standard Graphics Characters in REF * VEDPROCS Note that continued use of graphcharsetup is incompatible with use of the 8-bit ISO Latin character set in Poplog (since the old graphics codes conflict with these). If graphcharsetup is called, and pop_character_set has a true value (which it has by default), then a warning message is output and pop_character_set is set false. issubitem(sub_string, n, string) -> m [procedure] Renamed * vedissubitem. chartype(char) -> char [procedure variable] Obsolete synonym for * vedchartype. wved_get_one_input() -> string [procedure] An old procedure previously needed for PWM Ved. It just does consstring(`A`, vedinascii(), 2) and is no longer used by anything in Ved or XVed (vedinascii is called directly). 8.1 Ved Search Mechanism ------------------------- REF * VEDSEARCH describes the regular expression based Ved search mechanism. The facilities described here are from an earlier Ved search and substitution mechanism: vvedquery -> char [variable] char -> vvedquery vvedsrchendline -> char [variable] char -> vvedsrchendline vvedsrchstartline -> char [variable] char -> vvedsrchstartline vvedampersand -> char [variable] char -> vvedampersand vvedpercent -> char [variable] char -> vvedpercent These variables are no longer used by the Ved search mechanism. vedfoundcol -> int [variable] int -> vedfoundcol Replaced by ved_query_last_search. See REF * VEDSEARCH Holds the integer value of the column in which the last character of the most recently used search string was found. (See also vedfoundline ) vedfoundline -> int [variable] int -> vedfoundline Replaced by ved_query_last_search. See REF * VEDSEARCH The line in which the last character of the most recently used search string was last found. (See also vedfoundcol ) vvedanywhere -> bool [variable] bool -> vvedanywhere true if the last Ved search was not restricted to strings on item boundaries. vvedinstring -> string [variable] string -> vvedinstring The text string last used by a substitute command. Replaced by ved_set_search and ved_search_state. See REF * VEDSEARCH vvedsrchsize -> int [variable] int -> vvedsrchsize Size of last search string (vvedsrchstring). Setting this variable no longer has any effect. The variable is no longer used by the Ved search mechanism. vvedsrchstring -> string [variable] string -> vvedsrchstring vvedoldsrchdisplay -> string [variable] string -> vvedoldsrchdisplay Replaced by ved_query_last_search, ved_set_search and ved_search_state. See REF * VEDSEARCH These two variables are now synonymous. They represent the last search pattern string that was looked for. vedbacklocate(string) [procedure variable] This can now be done with: ved_check_search(string, [back]) Search backwards for last occurrence of string. vedlocate(item) [procedure] This can now be done with: ved_check_search(string, []) and (to ensure that string is not embedded in other text): ved_check_search(string, [noembed]) Search forward for item. If item is a word or integer then insist that it is not embedded. (Uses VEDTESTSEARCH). vedtestclsearch(string, bool) -> vec_or_false [procedure] This can now be done with: ved_try_search(string, [nocase]) -> bool and (when the bool argument to vedtestclsearch is false): ved_try_search(string, [nocase noembed]) -> bool (Use ved_query_last_search to obtain the coordinates of the match. Remembering to dlocal ved_search_state if necessary). Search for string regardless of case, allowing it to be embedded if bool is true. Returns <false> or a <vector> of the form {^line ^column} vedtestsearch(string, bool) -> bool [procedure] This can now be done with: ved_try_search(string, []) -> bool and (when the bool argument to vedtestsearch is false): ved_try_search(string, [noembed]) -> bool Search for next occurrence of string in the current file. If the given bool is false then the string must occur on a word boundary (i.e. it cannot be embedded in other words). Returns <true> if the search was successful. vedteststartsearch(string) -> line_or_false [procedure] This can now be done with ved_try_search. 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. Returns line number or false if not found. vedcllocate(string, bool) [procedure] vedcllocate(strword) This can now be done with: ved_check_search(string, [nocase]) and (when the bool argument to vedcllocate is false): ved_check_search(string, [nocase noembed]) Searches for string regardless of case. If bool is true, then string need not lie on a text item boundary. The cursor is positioned at the first occurrence of string. When given only one argument, a string is interpreted as if bool were true, whilst a word is interpreted as a string and bool false. --------------------- 9 Poplog X Interface --------------------- LIB * XolConstants has been superseded by INCLUDE * XolConstants. See REF * OPENLOOK XptInterruptHandler(dev, display) [procedure] fast_XptInterruptHandler(dev, display) [procedure] XptAsyncDisplay(display) -> bool [procedure] bool -> XptAsyncDisplay(display) Prior to the introduction of * XptAsyncAppContext, these procedures enabled control of asynchronous processing for server events on a display. They are now withdrawn. They are superseded by XptAsyncAppContext, which gives full asynchronous processing of all toolkit events for a given application context (i.e. server events, timers and alternate inputs). XptDeferApply(p) [procedure] Replaced with * external_defer_apply (with the same functionality). ----------------- 10 Miscellaneous ----------------- devname(dev) -> string [procedure] Old name for * device_open_name. p1 pdcomp p2 -> p3 [operator 3] The generic operator <> can be used to compose procedures. See REF * DATA and REF * PROCEDURE struct1 ncjoin struct2 -> struct3 [operator -5] Old name for * nc_<>. popdevraw -> dev [variable] dev -> popdevraw Prior to the introduction of poprawdevin and poprawdevout, this (active) variable contained a combined read/write device for 'raw mode' terminal I/O. It is now an autoloadable synonym for poprawdevin, but, to maintain upward compatibility, output operations (syswrite or sysflush) applied to poprawdevin will be redirected to to poprawdevout. See REF * SYSIO popdplaces -> int [variable] int -> popdplaces Old name for * pop_pr_places. popliblist -> search_list [variable] search_list -> popliblist Old name for * popautolist. realof(num) -> num [procedure] Obsolete, use * number_coerce. real1 =< real2 -> bool [operator 6] Synonym for <=. Its use is STRONGLY deprecated. sys_inputon_terminal(dev) [procedure] Old name for * sys_input_waiting. sysiomessage() -> string [procedure] This O/S error message string returned by this procedure can now be obtained with sprintf(' (%M)') i.e. using the %M specifier of * printf. sys_purge_terminal(dev) [procedure] Old name for * sys_clear_input. io_handler(dev) -> trap_p [procedure] trap_p -> io_handler(dev) This procedure enabled the association of a trap procedure trap_p with a readable device dev to handle unsolicited input on the device via the SIG_IO signal mechanism. It is now replaced by * sys_async_input, which takes a trap handler procedure directly (and which n.b, unlike the io_handler procedure, is not passed the device as argument). INCLUDE_constant [macro] Now replaced by the * iconstant declaration. sysfork() -> pid [procedure] sysvfork() -> pid [procedure] (Unix) Replaced by * sys_fork and * sys_vfork. Now the same as sys_fork(true) -> pid sys_vfork(true) -> pid respectively. sysspawn(command, input, output, wait) -> pid [procedure] (VMS) Replaced by * sys_spawn. With wait true, now the same as sys_spawn(command, input, output, true, false) -> (pid, pop_status) (i.e. the new procedure returns the exit status as a second result instead of assigning it to pop_status.) With wait false, same as sys_spawn(command, input, output, false, true) -> pid syswait() -> pid [procedure] (Unix & VMS) Replaced by * sys_wait. Now the same as sys_wait(false) -> (pid, pop_status) (i.e. the new procedure returns the exit status as a second result instead of assigning it to pop_status.) syssettimer(hsecs) [procedure] syssettimer(hsecs, p) syscantimer() [procedure] Superseded by * sys_timer. sys_async_input(sdev) -> ast_p_or_false [procedure] ast_p_or_false -> sys_async_input(sdev) Replaced by * sys_async_io with condition argument 0. timer_interrupt() [procedure variable] Obsolete variable whose identifier is the value of sys_signal_handler for the signal SIG_ALRM (but which is now unusable, since the system employs it to implement * sys_timer). io_interrupt() [procedure variable] Obsolete variable whose identifier is the value of sys_signal_handler for the signal SIG_IO (but which is now unusable, since the system employs it to implement * sys_async_io). +-+ C.all/ref/obsolete +-+ Copyright University of Sussex 1993. All rights reserved.