1
0
mirror of synced 2026-01-12 00:42:56 +00:00
Interlisp.medley/docs/Sun Users Guide/4-USING-MEDLEY.TEDIT
2020-12-15 19:18:04 -07:00

103 lines
41 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

1
Medley for the Sun User's Guide, Release 2.0
1
Medley for the Sun User's Guide, Release 2.0
4. USING MEDLEY ON THE SUN WORKSTATION
1
4. USING MEDLEY ON THE SUN WORKSTATION
1
4. USING MEDLEY ON THE SUN WORKSTATION
6
Once the system administrator has installed Medley software on the Sun, Lisp users can customize their Medley Lisp environments. This chapter provides basic information to get you started in the Medley environment on a Sun Workstation.
Setting Up a Site Init File
1
The users at a given site generally print to the same printers, load library files from the same directory, and so on. Medley uses variables to supply defaults for such things. The obvious place to set these variables is in one common initialization file. That is the Site Init File's role.
The Site Init File is a file of Lisp expressions that is loaded when you start Medley with a fresh LISP.SYSOUT.
The following Lisp symbols(SYMBOLS NIL Symbols NIL NIL 21 SUBTEXT set% in% site% initialization% file)(LISP% SYMBOLS NIL Lisp% symbols NIL NIL 21 SUBTEXT set% in% site% initialization% file) should be set in your site init file:
IL:USERGREETFILES(USERGREETFILES (Variable) NIL NIL NIL 21) [Variable]
A list of templates to search for the place where individuals should find their personal init files(SITE% INITIALIZATION% FILE NIL site% initialization% file NIL NIL 21 SUBTEXT how% to% find). If this is not set in the site init file, no personal init file is used. The list should be similar to the following:
(({file-server}< USER >LISP>INIT.LCOM)
({file-server}< USER >LISP>INIT)
({file-server}< USER >INIT.LISP))
IL:DISPLAYFONTDIRECTORIES(DISPLAYFONTDIRECTORIES (Variable) NIL NIL NIL 21) [Variable]
A list of directories to search when the system is looking for display fonts(DISPLAY% FONTS NIL display% fonts NIL NIL 21 SUBTEXT how% to% find). The site initialization file should set it to a list of strings, each containing a complete pathname for font files, e.g., ("{UNIX}/usr/local/lde/fonts/display/
presentation/").
IL:INTERPRESSFONTDIRECTORIES(INTERPRESSFONTDIRECTORIES (Variable) NIL NIL NIL 21) [Variable]
A list of directories to search when the system is looking for Interpress font(FONT NIL Fonts NIL NIL 21 SUBTEXT InterPress)(INTERPRESS% FONT NIL InterPress% fonts NIL NIL 21 SUBTEXT finding% ) widths.
IL:DIRECTORIES(DIRECTORIES (Variable) NIL NIL NIL 21) [Variable]
The list of paths to search for files(FILES NIL Files NIL NIL 21 SUBTEXT finding) that are not found in the current (Lisp) connected directory.
IL:LISPUSERSDIRECTORIES(LISPUSERSDIRECTORIES (Variable) NIL NIL NIL 21) [Variable]
The list of paths to search for library (LIBRARY% NIL Library% files% NIL NIL 21 SUBTEXT finding)and LispUsers' files(FILES NIL Files NIL NIL 21 SUBTEXT Lisp% User)(FILES NIL Files NIL NIL 21 SUBTEXT library)(LISPUSERS'% MODULES NIL LispUsers'% Modules NIL NIL 21 SUBTEXT finding). Remember that every path in this list should also be in DIRECTORIES.
IL:DEFAULTPRINTINGHOST(DEFAULTPRINTINGHOST (Variable) NIL NIL NIL 21) [Variable]
A list of names of default printers(PRINTERS NIL Printers NIL NIL 21 SUBNAME default).
IL:DEFAULTPRINTERTYPE(DEFAULTPRINTERTYPE (Variable) NIL NIL NIL 21) [Variable]
The default printer type, e.g., POSTSCRIPT.
XCL:*LONG-SITE-NAME*(*LONG-SITE-NAME* (Variable) NIL NIL NIL 22) [Variable]
The value of the function XCL:LONG-SITE-NAME(LONG-SITE-NAME (Function) NIL NIL NIL 22), e.g., "Frobnitz, Baz and Lispers, Incorporated."
XCL:*SHORT-SITE-NAME*(*SHORT-SITE-NAME* (Variable) NIL NIL NIL 22) [Variable]
The value of the Common Lisp function XCL:SHORT-SITE-NAME(SHORT-SITE-NAME (Function) NIL NIL NIL 22), e.g., "Frobco".
IL:\BeginDST(\BeginDST (Variable) NIL NIL NIL 22) [Variable]
The day of the year on or before which Daylight Savings Time(DAYLIGHT% SAVINGS% TIME NIL Daylight% Savings% Time NIL NIL 22 SUBTEXT setting% values% for) takes effect (i.e., the Sunday on or immediately preceding this day). Must be set to 98 in the USA if Lisp is to perform time computations correctly (subject, of course, to future legislation). If you are in a region where Daylight Savings Time is not observed, set the value to 367.
IL:\EndDST(\ENDDST (Variable) \EndDST NIL NIL 22) [Variable]
The day of the year on or before which Daylight Savings Time ends. Must be set to 305 in the USA.
Setting Up a Personal Init File
1
Your personal init(PERSONAL% INIT% FILE NIL Personal% init% file NIL NIL 22 SUBTEXT set% up) file keeps track of the location of your home directory and windows layout; it also remembers which library files you always load.
Your personal init file is a file of Lisp expressions that is loaded and run after the site init file. You can create it either as a text file, or have Medley's File Manager help you.
Your initialization file is normally ~/INIT.LCOM
Saving Your State
1
On the Sun, lde(LDE NIL lde NIL NIL 22) is an ordinary UNIX program that allocates a 45 MB data area, reads into that area several megabytes of data (the sysout), and modifies it there. Under UNIX, that program's data requirements (which include the sysout) are handled by UNIX; all Medley does is modify in "memory" a copy of your original sysout file. UNIX, transparently to Medley, handles all real memory swapping. This has several consequences related to starting, saving, and restarting sysouts.
On Xerox workstations, the virtual memory partition is updated periodically and used to store new pages as they are allocated or flushed from the real memory of the machine. For example, LOGOUT(LOGOUT (Function) NIL NIL NIL 22) and SAVEVM(SAVEVM (Function) NIL NIL NIL 22) write out only those pages of data which are different from what might already be in the virtual memory file.
On the Sun Workstation, however, the contents of virtual memory are only written to a file by an explicit call to SAVEVM, LOGOUT, SYSOUT, or MAKESYS. This file is an ordinary SunOS file (normally ~/lisp.virtualmem(~/LISP.VIRTUALMEM NIL ~/lisp.virtualmem NIL NIL 22)). The entire virtual memory, which may be many megabytes of data, is written out there.
On the Sun Workstation, starting anew from a saved virtual memory file requires reading it into memory. On the Xerox workstation, it is necessary to first copy the saved sysout to the virtual memory file and then read it in. Thus, restarting a saved sysout or virtual memory file is significantly faster on a Sun Workstation.
The file that LOGOUT and SAVEVM writes is normally ~/lisp.virtualmem (i.e., the file lisp.virtualmem on the user's home directory). However, the environment variable LDEDESTSYSOUT(LDEDESTSYSOUT NIL NIL NIL NIL 23) can be used to override this default. For example, you might want to keep virtual memory images on /user/local. During a demonstration where you do not want the memory image saved, you can reset LDEDESTSYSOUT to /dev/null. You can use the C-Shell command setenv(SETENV (UNIX Command) setenv NIL NIL 23) to do this, e.g.:
prompt% setenv LDEDESTSYSOUT "/dev/null"
Cursor tracking interferes with writing out the screen bitmap as part of the Medley memory image. For this reason, Medley takes the cursor down before saving a virtual memory image as part of LOGOUT, SAVEVM, SYSOUT, or MAKESYS. When this happens, the message
Saving VMem, taking mouse down
appears in the prompt window, and cursor tracking is disabled.
Because the virtual memory file need not already exist to run Medley, the functions LOGOUT and SAVEVM can signal the following file errors:
File-System-Resources-Exceeded
Protection-Violation
File-Wont-Open
Even if some errors occur while saving a virtual memory, the old destination file is safe. Saving does not overwrite the old virtual memory file. The saving virtual memory file is named with "<22><><00>$temp", such as lisp.virtualmem<>$temp. The file is renamed to a specified name, such as lisp.virtualmem, at the last sequence of the save.
<EFBFBD>When the user does not have enough space to save the virtual memory, the old virtual memory file can be overwritten by setting IL:\LDEDESTOVERWRITE to T. The initial value of IL:\LDEDESTOVERWRITE is NIL. In some cases, even if the user tries to overwrite, there may still not be enough space.
In Medley, a "page" is 512 bytes. Under SunOS, the page size is variable; some Sun Workstations use 8 Kbyte pages. In general, Medley functions deal only in units of Medley pages, e.g., the SIZE attribute of files is in terms of 512<31><32><00>$<24>byte pages, (VMEMSIZE(VMEMSIZE (Function) NIL NIL NIL 23)) returns the number of 512<31><32><00>$<24>byte pages in use.
(IL:LOGOUT(LOGOUT (Function) NIL NIL NIL 23) FAST) [Function]
Lets you exit Medley(MEDLEY NIL Medley NIL NIL 23 SUBTEXT exiting) cleanly. The parameter FAST indicates whether resumption of the same environment is desirable and in what fashion. Before exiting, disk buffers are written, and network connections subject to timeout are closed.
If FAST is NIL, LOGOUT first saves your virtual memory(VIRTUAL% MEMORY NIL Virtual% memory NIL NIL 23 SUBTEXT saving) in a file. Change the file name by setting the UNIX environment variable(ENVIRONMENT% VARIABLE NIL Environment% variable NIL NIL 23 SUBNAME LDEDESTSYSOUT) LDEDESTSYSOUT(LDEDESTSYSOUT NIL NIL NIL NIL 23). If this variable is not set, the file saved is ~/lisp.virtualmem(~/LISP.VIRTUALMEM NIL ~/lisp.virtualmem NIL NIL 23) (i.e., lisp.virtualmem on the user's home directory).
If FAST is T, Medley stops without writing the virtual memory file. It is not possible to resume execution in the same image.
(IL:SAVEVM(SAVEVM (Function) NIL NIL NIL 23) ) [Function]
Saves your state, but does not exit. It causes the current virtual memory(VIRTUAL% MEMORY NIL Virtual% memory NIL NIL 23 SUBTEXT saving% and% continuing) image to be written to the location specified by the environment variable LDEDESTSYSOUT, if this variable is set; otherwise it is written to ~/lisp.virtualmem. This allows Lisp to continue. Execution in Medley continues after memory is saved; thus, SAVEVM operates as a sort of checkpoint of the current working state. SAVEVM can cause the following error:
File-System-Resources-Exceeded.
(IL:SYSOUT(SYSOUT (Function) NIL NIL NIL 24) FILE) [Function]
Performs the equivalent of SAVEVM and then copies the saved image to FILE for devices other than {DSK} and {UNIX} (e.g., XNS file servers). (VIRTUAL% MEMORY NIL Virtual% memory NIL NIL 24 SUBTEXT saving% and% copying% to% a% file) (See Chapter 5, Medley File Systems, for further information on {DSK} and {UNIX}.) SYSOUT can cause the following error:
File-System-Resources-Exceeded.
Sun-Specific Environment Functions
1
System Environment Functions and Variables(FUNCTIONS NIL Functions NIL NIL 24 SUBTEXT system% environment)
These functions, which interrogate the system environment, operate as described below when they are invoked on the Sun Workstation:
(IL:REALMEMORYSIZE(REALMEMORYSIZE (Function) NIL NIL NIL 24)) [Function]
On some machines, returns the total amount of real memory available; does not work on a Sun Workstation (i.e., returns a meaningless value).
(CL:MACHINE-TYPE(MACHINE-TYPE (Function) NIL NIL NIL 24)) [Function]
Returns a string identifying the type of computer hardware(HARDWARE NIL Hardware NIL NIL 24 SUBTEXT identifying% machine% type) the system is running under. On the Sun<75><6E><00>$<24>3 workstation MACHINE-TYPE returns "mc68020". On a Sun<75><6E><00>$<24>4 workstation, MACHINE-TYPE returns the string "sparc".
(IL:MACHINETYPE(MACHINETYPE (Function) NIL NIL NIL 24)) [Function]
Identifies the generic type of Lisp machine in use. On the Sun Workstation, it returns the symbol IL:MAIKO.
(CL:MACHINE-VERSION(MACHINE-VERSION (Function) NIL NIL NIL 24)) [Function]
Returns a string identifying the version(VERSION NIL Version NIL NIL 24 SUBTEXT identifying% machine) of the emulator running; e.g., "Microcode version: 279, memory size: 16384".
(CL:MACHINE-INSTANCE(MACHINE-INSTANCE (Function) NIL NIL NIL 24)) [Function]
Returns a string containing the workstation host ID(HOST% ID NIL Host% ID NIL NIL 24 SUBNAME identifying) (in hexadecimal) and the host name(HOST% NAME NIL Host% name NIL NIL 24 SUBTEXT identifying).
IL:LISP-RELEASE-VERSION(LISP-RELEASE-VERSION (Variable) NIL NIL NIL 24) [Variable]
Identifies the release number within a single major release name. In Medley 2.0, IL:LISP-RELEASE-VERSION is 2.0 While IL:MAKESYSNAME does not change, IL:LISP-RELEASE-VERSION always changes with each new sysout release. This variable did not exist in the Medley 1.0-S sysout.
IL:\MY.NSADDRESS(\MY.NSADDRESS (Variable) NIL NIL NIL 24) [Variable]
Fills in the fields of the network address(NETWORK% ADDRESS NIL Network% address NIL NIL 24 SUBTEXT identifying) with the host ID if Medley is run without the Ethernet enabled. Programs that use the network address as a unique identifier should be aware that the value could vary from session to session depending on whether or not the Ethernet is enabled. (Refer to Chapter 14 of the Interlisp-D Reference Manual for further information.)
VM Functions(VM% FUNCTIONS NIL VM% functions NIL NIL 25 SUBTEXT)(FUNCTIONS NIL Functions NIL NIL 25 SUBTEXT VM)
The biggest difference is a change in terminology. On Xerox 1100 series workstations, Lisp itself handles all virtual memory operations directly, so the terms "sysout" and "virtual memory image" can be used interchangeably. The running sysout resides in a reserved area on the workstation local disk (the virtual memory partition) that Lisp reads from and writes to as it needs to move pages into and out of physical memory.
(IL:VMEMSIZE(VMEMSIZE (Function) NIL NIL NIL 25)) [Function]
(1)
Returns the number of 512<31><32><00>$<24>byte pages of the Medley virtual memory(VIRTUAL% MEMORY NIL Virtual% memory NIL NIL 25 SUBTEXT finding% number% of% pages% in% use) that are in use. This number is a good estimate of the size of a SYSOUT, MAKESYS, or SAVEVM virtual memory file.
(IL:VMEM.PURE.STATE(VMEM.PURE.STATE (Variable) NIL NIL NIL 25) ON/OFF) [Variable]
Has no effect on the Sun Workstation. The virtual memory file is not modified except by an explicit (LOGOUT) or (SAVEVM).
IL:BACKGROUNDPAGEFREQ(BACKGROUNDPAGEFREQ (Variable) NIL NIL NIL 25) [Variable]
Has no effect on the Sun Workstation. The virtual memory file is not modified except by an explicit (LOGOUT) or (SAVEVM).
You can control how much virtual memory Medley uses by using the -m switch, as described below.
ldeether [<SYSOUT-name>] [-m<memory-size>] [other options](ldeether (Variable) NIL NIL NIL 25) [Command]
Allows you to specify an arbitrary virtual memorey size for Medley.
-m Specifies the memory size
memory-size 8 through 32 Mbytes
When you use -m, the value of IL:\STORAGEFULLSTATE in the sysout you start should not be 3 or 4. Those values mean it already used more than the 8-Mbyte space in the sysout. Because of the Medley storage management architecture, the virtual memory size cannot be changed after IL:\STORAGEFULLSTATE has been set to 3 or 4. This value can be examined just before (IL:LOGOUT) if you want to specify the virtual memory size during the next start-up.
Example: ldeether /usr/LISP.SYSOUT -m 16
This example means 16 Mbytes of virtual space will be assigned for Lisp.
Stopping Lisp Temporarily(FUNCTIONS NIL Functions NIL NIL 25 SUBTEXT Lisp-stopping)
(IL:SUSPEND-LISP(SUSPEND-LISP (Function) NIL NIL NIL 25)) [Function]
Suspends, temporarily, the UNIX process(UNIX% PROCESS NIL UNIX% process,% suspending NIL NIL 25 SUBTEXT) running Medley. Using the fg(FG (UNIX Command) fg NIL NIL 25) C-Shell command, the Medley process can be continued from the C-Shell where it was started. SUSPEND-LISP has no effect on Xerox Lisp workstations. This function should not be used during I/O operations (file or network).
Login Functions(LOGIN% FUNCTIONS NIL Login% functions NIL NIL 26)(FUNCTIONS NIL Functions NIL NIL 26 SUBTEXT login)
This section describes the interaction between the usernames and passwords in Medley and the SunOS usernames and passwords. The functions IL:USERNAME(USERNAME (Function) NIL NIL NIL 26), IL:SETUSERNAME(SETUSERNAME (Function) NIL NIL NIL 26), IL:SETPASSWORD(SETPASSWORD (Function) NIL NIL NIL 26), and IL:LOGIN(LOGIN (Function) NIL NIL NIL 26) access the username/password database used by Medley in network operations. (For further information, see Chapter 24 of the Interlisp-D Reference Manual.) When Medley is started, this database contains only the SunOS username(SUNOS NIL SunOS% NIL NIL 26 SUBNAME username), with no password. Except for this, there is no interrelation between these Medley functions and SunOS usernames and passwords.
IL:USERNAME returns the SunOS login name under which the emulator was started. A subsequent IL:SETUSERNAME or IL:LOGIN changes IL:USERNAME, and the default login name for network access to XNS and PUP hosts. However, it does not change the SunOS login name or access capabilities for files on {DSK}({DSK} NIL NIL NIL NIL 26) or {UNIX}({UNIX} NIL NIL NIL NIL 26). (See Chapter 5, Medley File Systems, for detailed information on {DSK} and {UNIX}.) Because it doesn't change the SunOS login name, it won't change the author name on SunOS files created from Lisp.
The following functions apply to login activities.
(IL:UNIX-USERNAME(UNIX-USERNAME (Function) NIL NIL NIL 26)) [Function]
Returns a string consisting of the username of the SunOS process(SUNOS% PROCESS NIL SunOS% process NIL NIL 26 SUBTEXT identifying% username% of) running Medley. Returns NIL if one of the following conditions apply:
<EFBFBD><EFBFBD><00>f<EFBFBD> You are not running under UNIX
<EFBFBD><EFBFBD><00>f<EFBFBD> You do not have a full name entered in /etc/passwd or the NIS password map
<EFBFBD><EFBFBD><00>f<EFBFBD> An error occurs.
(IL:UNIX-FULLNAME(UNIX-FULLNAME (Function) NIL NIL NIL 26)) [Function]
Returns a string containing the full name of the owner of the SunOS process(SUNOS% PROCESS NIL SunOS% process NIL NIL 26 SUBTEXT identifying% full% name% of% owner) running Medley. Returns NIL if the user is not running under UNIX or an error occurs.
(IL:LOGIN(LOGIN (Function) NIL NIL NIL 26) HOST FLG DIRECTORY MSG) [Function]
Attempts to maintain user IDs(USER% IDS,% MAINTAINING% FOR% ACCESS NIL User% IDs,% maintaining% for% access NIL NIL 26) and passwords(PASSWORDS NIL Passwords NIL NIL 26 SUBTEXT maintaining% for% access) for network as well as local access. If HOST is NIL, this function attempts to perform the SunOS setuid(SETUID (UNIX Command) setuid NIL NIL 26) operation.
Unless you are running as root, this will not change your SunOS login.
Environment Inquiry(FUNCTIONS NIL Functions NIL NIL 26 SUBTEXT environment% inquiry)
The following functions return the values of UNIX environment variables or machine parameters. They return NIL if run in Medley on Xerox 1100 series workstations.
(IL:UNIX-GETENV(UNIX-GETENV (Function) NIL NIL NIL 26) STRING) [Function]
Returns the value of the environment variable with the given name. The argument STRING should be the name of a UNIX environment variable(ENVIRONMENT% VARIABLE NIL Environment% variable NIL NIL 26 SUBTEXT obtaining% value% of). For example, (UNIX-GETENV "HOME") might return the user's home directory.
(IL:UNIX-GETPARM(UNIX-GETPARM (Function) NIL NIL NIL 26) STRING) [Function]
Returns the value of one of a few built-in parameters. The argument STRING should be the name of one of the following UNIX environment variables:
If running on
Variable this hardware Returns
"MACH" Sun-4 "sparc"
Sun-3 "mc68000"
RS/6000 "rs/6000"
HP9000 "hp9000"
DEC3100 "mips"
PS/2 "i386"
"ARCH" Sun-4 "<22><>sun4<>"
Sun-3 "sun3"
RS/6000 "rs/6000"
HP9000 "hp9000"
DEC3100 "dec3100"
PS/2 "ps/2"
"HOSTNAME" All Returns the local host name
"HOSTID" All Returns the local host identification number as a hexadecimal string
Display(DISPLAY NIL Display% functions NIL NIL 27)(FUNCTIONS NIL Functions NIL NIL 27 SUBTEXT display) and Keyboard Functions(KEYBOARD% FUNCTIONS NIL Keyboard% functions NIL NIL 27)(FUNCTIONS NIL Functions NIL NIL 27 SUBTEXT keyboard) and Variables
Some Medley display and keyboard functions and variables operate differently on the Sun Workstation.
The following functions have no effect on a Sun Workstation, and always return NIL:
IL:CHANGEBACKGROUNDBORDER(CHANGEBACKGROUNDBORDER%
(Function) NIL NIL NIL 27)
IL:VIDEORATE(VIDEORATE (Function) NIL NIL NIL 27)
IL:SETMAINTPANEL(SETMAINTPANEL (Function) NIL NIL NIL 27)
IL:VIDEOCOLOR(VIDEOCOLOR (Function) NIL NIL NIL 27)
The functions IL:BEEPON, IL:BEEPOFF, IL:PLAYTUNE, IL:RINGBELLS generate monotones.
(IL:BEEPON(BEEPON (Function) NIL NIL NIL 27) FREQ) [Function]
Turns on the keyboard tone generator(KEYBOARD% TONE% GENERATOR NIL Keyboard% tone% generator NIL NIL 27) on the Sun Workstation. The FREQ argument is ignored.
(IL:BEEPOFF(BEEPOFF (Function) NIL NIL NIL 27)) [Function]
Turns off the keyboard tone generator.
(IL:PLAYTUNE(PLAYTUNE (Function) NIL NIL NIL 27) TUNEPAIRS) [Function]
Sounds tones, but ignores the frequencies of the values in TUNEPPAIRS.
(IL:RINGBELLS(RINGBELLS (Function) NIL NIL NIL 27)) [Function]
Causes the machine to beep several times.
Timers(TIMERS NIL Timers NIL NIL 27) and Clocks(CLOCKS NIL Clocks NIL NIL 27)(FUNCTIONS (Functions) NIL NIL NIL 27 SUBTEXT timer% and% clock)
UNIX is a timesharing operating system. When Medley is running, other programs can be running at the same time on the same workstation.
On a Xerox workstation running Lisp, CPU time could be computed exactly from elapsed time after subtracting known system overhead. To allow older Interlisp-D programs to work unchanged, the timer functions were modified to allow programs that accounted for time on Xerox workstations to continue to run. Time is categorized as follows:
CPU time: The total amount of time spent executing Medley's process in user mode.
SWAP time: The total time spent running other processes (Elapsed time <20><><00>$<24> (CPU time + Disk time).
Disk I/O time: The total amount of time spent in the system executing on the behalf of Medley's process.
The Medley functions CLOCK(CLOCK (Function) NIL NIL NIL 28), TIME,(TIME (Function) NIL NIL NIL 28) and the like get the time of day directly from SunOS. The function SETTIME(SETTIME (Function) NIL NIL NIL 28) has no effect on the Sun Workstation.
IL:\RCLKMILLISECOND(\RCLKMILLISECOND (Variable) NIL NIL NIL 28) [Variable]
(1)
The number of clock "ticks" in a millisecond. On the Sun Workstation, this value is always 1000. All of the timer functions that deal in clock ticks will do their computation in microseconds. Note, however, that the Sun Workstation does not have that accurate a clock resolution. While clock resolution varies from one operating system version to another, it often has a resolution no better than 1/60th of a second.
Miscellaneous Operational Differences
The stack and virtual memory handling functions on the Sun Workstation are implemented differently from the way they are on the Xerox workstations. For this reason, the "cursor bars" used on the Xerox workstations are not used on the Sun Workstation.
When working in Medley on a Sun workstation, you should periodically load a fresh sysout. Older Medley sysouts don't run as well as "fresh" sysouts due to a number of factors such as fragmentation of memory, increased working set, more objects taking up various spaces (e.g., gc tables), reduced symbol space.
On Xerox workstations, users are reminded to reload fresh sysouts, because they eventually fill up their sysout partition. With Sun workstations, there is no such limit reminder, so users' sysouts tend to grow to the maximum size (32 MB), and thus run slower and slower.
Console Messages(CONSOLE% MESSAGES NIL Console% messages NIL NIL 28)
Under SunOS(SUNOS NIL SunOS NIL NIL 28 SUBNAME console% messages), various system processes and operations attempt to log information on the console. Since Medley takes over the screen, console messages are redirected (except when running under X); a background process in Medley causes them to appear in the prompt window.
However, when Medley is run remotely (i.e., not from the console), most console, or operating system, messages are printed in the prompt window. However, some messages may also appear in the middle of the Medley display screen or on the remote tty. This occurs because UNIX is often confused about where to send messages. Note that Medley is normally run remotely only for debugging purposes.
(1)
CAUTION
Critical UNIX system processes can hang if the buffer holding console messages fills. Medley uses a temporary file, /tmp/XXXX-lisp.log(% /TMP/XXXX-LISP.LOG NIL % /tmp/XXXX-lisp.log NIL NIL 29), where XXXX is the user's login name, to buffer console messages before printing them. Do not delete this log file while Medley is running. If the log file is deleted, console messages can no longer be printed in the Medley prompt window.
(1)
[This page intentionally left blank]
(LIST ((PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC "" "") STARTINGPAGE# 21) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD RIGHT) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY HELVETICA OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "" "")) (270 14 288 36) NIL) (HEADING NIL (HEADINGTYPE FOOTINGR) (54 27 558 36) NIL) (TEXT NIL NIL (54 54 504 690) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC "" "")) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD LEFT) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY HELVETICA OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "" "")) (54 15 288 36) NIL) (HEADING NIL (HEADINGTYPE FOOTINGV) (54 27 558 36) NIL) (HEADING NIL (HEADINGTYPE VERSOHEAD) (54 762 558 36) NIL) (TEXT NIL NIL (54 54 504 684) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC "" "")) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD RIGHT) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY HELVETICA OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "" "")) (270 15 288 36) NIL) (HEADING NIL (HEADINGTYPE FOOTINGR) (54 27 558 36) NIL) (HEADING NIL (HEADINGTYPE RECTOHEAD) (54 762 558 36) NIL) (TEXT NIL NIL (54 54 504 684) NIL))))))3$$<01><01>T9l<01><00>,T6H<00><01><00><01>T8l<01><00>,8l<01><00>,8HH<01>`<00><01>2HH<01><01>3$$<01><01>T-<01>T3HH<01>
<01>T5ll<01>l<01>8HH<01>
`<00><01>3HH<01><01>T8HH<01>
`<00><01>2$$<01><01>2HH<01> <01>5HT<01>T<01>5HH<01>l<01>5HH<01>l<01>3HH<01><01>T5H<00><01><00><01>-xx<01>T-ll<01>T-ll<01>T3HH<01> <01>T3HH<01>
<01>T5Hl<01>l<01>2HH<01><01>3HH<01> <01>T2HH<01>
<01>5<01><00><01>-<01>T2<01><01>5<01>$<01>3HH<01><01>T-<01><00><01>T8<01> <00><00><01>F<01><01> PAGEHEADING VERSOHEADF<01><01> PAGEHEADING RECTOHEADE<01><01> PAGEHEADINGFOOTINGVE<01><01> PAGEHEADINGFOOTINGR HELVETICA
TITAN
<01>TITAN
<00>OPTIMA HELVETICA MODERN HELVETICA HELVETICACLASSIC
CLASSIC
<01>CLASSIC
TITAN
<02>CLASSIC
<02>CLASSIC CLASSICCLASSICCLASSIC
CLASSIC
OPTIMA
OPTIMA
TITAN
OPTIMA
TITAN
MODERN
OPTIMA
OPTIMA
OPTIMA
<01>OPTIMA
<02>TITAN
OPTIMA OPTIMA
) HRULE.GETFNCLASSIC
),( HRULE.GETFNCLASSIC
(-''' HRULE.GETFNCLASSIC
&'& HRULE.GETFNCLASSIC
"! HRULE.GETFNCLASSIC<00>  HRULE.GETFNCLASSIC &c LIM.INDEX.GETFNXIM.INDEX.GETFN'
 *IM.INDEX.GETFNOPTIMA
<02>
 c\IM.INDEX.GETFNy      
 2IM.INDEX.GETFNOPTIMA
<02>
 LDIM.INDEX.GETFN~3
 5IM.INDEX.GETFNOPTIMA
<02>
 N.IM.INDEX.GETFNEIM.INDEX.GETFN 
 'IM.INDEX.GETFNOPTIMA
<02>
 %,IM.INDEX.GETFN?
 0IM.INDEX.GETFNOPTIMA
<02>
 (;IM.INDEX.GETFN/IM.INDEX.GETFN,IM.INDEX.GETFNHIM.INDEX.GETFN: 
 /IM.INDEX.GETFNOPTIMA
<02>
 #2IM.INDEX.GETFN
 .IM.INDEX.GETFNOPTIMA
<02>
 

 ,IM.INDEX.GETFNOPTIMA
<02>
 *IM.INDEX.GETFN0
 -IM.INDEX.GETFNOPTIMA
<02>  &+IM.INDEX.GETFN
 
 %IM.INDEX.GETFNOPTIMA
<02>
 <]IM.INDEX.GETFN 
 
 'IM.INDEX.GETFNMODERN

 c   HRULE.GETFNCLASSICJIM.INDEX.GETFN<00><00>&
   HRULE.GETFNCLASSIC IM.INDEX.GETFN<01><00>"IM.INDEX.GETFN"IM.INDEX.GETFNnq.4IM.INDEX.GETFNUH
@
"IM.INDEX.GETFNb S
  )IM.INDEX.GETFN  <00>?S$<00>`F<00>b<00>% $IM.INDEX.GETFN

"IM.INDEX.GETFNOPTIMA
<02>

.IM.INDEX.GETFN <00> ?IM.INDEX.GETFNJRIM.INDEX.GETFNOPTIMA

"IM.INDEX.GETFN/4IM.INDEX.GETFN! o 
"IM.INDEX.GETFN
JPIM.INDEX.GETFNL
3[?
"IM.INDEX.GETFNOPTIMA
<02>


" ZIM.INDEX.GETFNA#  HRULE.GETFNCLASSIC*@IM.INDEX.GETFNCLASSIC
<00>
 *IM.INDEX.GETFN
<00>
 (IM.INDEX.GETFN

:EIM.INDEX.GETFN(  
 'IM.INDEX.GETFN
a
 +IM.INDEX.GETFN
(=IM.INDEX.GETFN -
 ,IM.INDEX.GETFN
36IM.INDEX.GETFN#:IM.INDEX.GETFN 0IM.INDEX.GETFNOPTIMA
<02>
Q
e 
)IM.INDEX.GETFNOPTIMA
<02>
*FIM.INDEX.GETFN<00>  4IM.INDEX.GETFNCLASSIC
/IM.INDEX.GETFN<01> $IM.INDEX.GETFNOPTIMA

# HRULE.GETFNCLASSIC
)\IM.INDEX.GETFNB
 +IM.INDEX.GETFNOPTIMA
<02>

c .IM.INDEX.GETFNOPTIMA
<02>
e`   
 $IM.INDEX.GETFNOPTIMA
<02>
D 
<00>B K
I:IM.INDEX.GETFNTITAN

 (IM.INDEX.GETFNOPTIMA
<02>

'AIM.INDEX.GETFN!IM.INDEX.GETFN\ s2IM.INDEX.GETFNTITAN
2IM.INDEX.GETFN<00> $IM.INDEX.GETFN'IM.INDEX.GETFN'IM.INDEX.GETFN!IM.INDEX.GETFN} J/IM.INDEX.GETFN<00> P  <00>IM.INDEX.GETFNIM.INDEX.GETFNAr2

 )IM.INDEX.GETFNOPTIMA
<02>

@PIM.INDEX.GETFN+") 
 )IM.INDEX.GETFNOPTIMA
<02>
KYIM.INDEX.GETFNV
 !IM.INDEX.GETFN 
ZIM.INDEX.GETFNEIM.INDEX.GETFN) 5)IM.INDEX.GETFN GAIM.INDEX.GETFN<00>
 'IM.INDEX.GETFNOPTIMA
<02>

Q 2YIM.INDEX.GETFN&
 (IM.INDEX.GETFNOPTIMA
<02>
E G         
! I+IM.INDEX.GETFN4IM.INDEX.GETFN8IM.INDEX.GETFN5IM.INDEX.GETFNeT4IM.INDEX.GETFN
%IM.INDEX.GETFN)IM.INDEX.GETFN&IM.INDEX.GETFN
   

"IM.INDEX.GETFNOPTIMA
<02>


$DIM.INDEX.GETFN  #IM.INDEX.GETFNOPTIMA
<02>

' $IM.INDEX.GETFNOPTIMA
<02>
;

%IM.INDEX.GETFNOPTIMA
<02>
*IM.INDEX.GETFN IM.INDEX.GETFN@IM.INDEX.GETFNTITAN
<00>QSFi!IM.INDEX.GETFN IM.INDEX.GETFNTITAN
B#IM.INDEX.GETFN%,IM.INDEX.GETFNOPTIMA
  HRULE.GETFNCLASSIC
<01>%<00>G4IM.INDEX.GETFN 6IM.INDEX.GETFN<01> HRULE.GETFNOPTIMA
t:IM.INDEX.GETFN<00> HRULE.GETFNCLASSIC
$%%%a<>dz<64>