585 lines
24 KiB
Plaintext
585 lines
24 KiB
Plaintext
|
.c -*- Hey, ZISNAGAZ (ZISNAGAZ Is Not As Good As Zwei), this is bogus Text -*-
|
|||
|
|
|||
|
RELEASE NOTES FOR SYSTEM 286 (TM)
|
|||
|
|
|||
|
(c) 1982 Slimebolics Machines Inc.
|
|||
|
|
|||
|
Enhancements (c) 1982 Metaphorics, Inc.
|
|||
|
|
|||
|
Enhancements (c) 1982 Digicomputronomatics,
|
|||
|
a Division of Flexopneumohydroservosystematization and Control
|
|||
|
[better known by its acronym, Flexopneumohydroservosystematization and C]
|
|||
|
|
|||
|
Enhancements (c) 1982 Hyperbolics, Inc.
|
|||
|
|
|||
|
(The number 286 is a trademark of Hyperbolics, Inc. Usage of System 286 or
|
|||
|
MCR286 (used by systems 231-285) will result in prosecution.)
|
|||
|
|
|||
|
*** An invalid MIT copyright notice on OZ:SRC:<L.DOC>SYS286.MSG removed on
|
|||
|
*** 2/31/82 by Hyperbolics personnel. This file had been installed as the
|
|||
|
*** official SLiMi source in direct contravention to instructions to
|
|||
|
*** Digicomputronomatics personnel acting on Metaphorics' behalf.
|
|||
|
|
|||
|
INTRODUCTION
|
|||
|
|
|||
|
These notes accompany the Symbolic Lisp Machines Inc. (SLiMi) software release
|
|||
|
that includes System version 286 (TM). They cover all important changes since
|
|||
|
the System 279 (TM) release notes, except those you get to find out about for
|
|||
|
yourself.
|
|||
|
|
|||
|
This document is in the following files:
|
|||
|
|
|||
|
EE:LIB:<LISPM.DOCUMENTATION>SYSTEM-286.RELEASE
|
|||
|
AI: LMDOC; SYS286 MSG
|
|||
|
OZ: SRC: <L.DOC>SYS286.MSG
|
|||
|
SCRC:<DOC>MIT-RELEASE-286.TEXT
|
|||
|
|
|||
|
There have been no particularly major changes in system 286 (TM). There are
|
|||
|
the usual slew of minor bug fixes, some slight performance improvements, some
|
|||
|
minor new features, and a pile of new bugs. Hoo Boy!
|
|||
|
|
|||
|
This set of release notes is very, very long. To help make it more manageable,
|
|||
|
these release notes are divided into five sections:
|
|||
|
|
|||
|
o Changes to take note of.
|
|||
|
|
|||
|
Everybody should read, or at least skim, this section. It tells
|
|||
|
about incompatible changes that might break programs, or that might
|
|||
|
confuse you. Don't worry, most of them confuse us too.
|
|||
|
|
|||
|
o Changes that only affect advanced users.
|
|||
|
|
|||
|
The changes in this section might break programs written by advanced
|
|||
|
users, but are very unlikely to affect normal or casual users of the
|
|||
|
system. You only have to worry about things in this section if you
|
|||
|
work with advanced subsystems and use advanced features. Regretably,
|
|||
|
we have yet to locate a normal user of our systems. You'll all have
|
|||
|
to slog through this garbage eventually. Get it over with now.
|
|||
|
|
|||
|
o Upward-compatible changes.
|
|||
|
|
|||
|
This section documents new features. You can skip this entirely if
|
|||
|
you don't feel like reading a lot of stuff. However, there are
|
|||
|
several interesting new features that you might like to know about,
|
|||
|
and we encourage you to take advantage of them. The mandatory Pascal
|
|||
|
syntax required in this release is a good example. Maintainers of
|
|||
|
non-SLiMi systems will want to look here to see what code to copy.
|
|||
|
|
|||
|
o Notes.
|
|||
|
|
|||
|
This section isn't about changes at all. It answers some commonly
|
|||
|
asked questions and provides various news. Of course, you can skip
|
|||
|
this entirely if you like, but we haven't got anywhere else to advertise.
|
|||
|
We'll know if you skip it, though. Wait till you want help.
|
|||
|
|
|||
|
o Bugs.
|
|||
|
|
|||
|
This section really doesn't tell you much, except for which functions
|
|||
|
the documention had been deleted as the functions don't work. You
|
|||
|
also can safely skip this section, especially if you don't care why
|
|||
|
your machine just crashed. A bug in our text formatter (Scribble,
|
|||
|
not for non-personnel) has caused this section to disappear.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
SUMMARY OF CHANGES.
|
|||
|
|
|||
|
Changes to take note of.
|
|||
|
[1] The garbage collector now works.
|
|||
|
[2] Recursion is now obsolete and will generate compiler warnings. Use LOOP.
|
|||
|
[3] Common lisp installed.
|
|||
|
[4] LOOP is now obsolete and will generate compiler warnings. Use recursion.
|
|||
|
[5] Docuemtation for all numbers.
|
|||
|
|
|||
|
Changes that only affect advanced users.
|
|||
|
[1] In Zwei, M-X Visit Other Window in Other Microcode works again.
|
|||
|
[2] Change to implementation of WITHOUT-INTERRUPTS and UNWIND-PROTECT.
|
|||
|
[3] SK combinators are now the primitive programming elements.
|
|||
|
[4] Bug in HALTSP fixed.
|
|||
|
|
|||
|
Upward-compatible changes.
|
|||
|
[1] ZMail has new menu item "IGNORE".
|
|||
|
[2] LOOP has been extended.
|
|||
|
[3] Advertising.
|
|||
|
[4] CAR and CDR now return extra values.
|
|||
|
[5] The TV:WIN-BIG special form.
|
|||
|
[6] m-X View Function Through Rose Colored Glasses.
|
|||
|
[7] New file system editor.
|
|||
|
[8] RMail installed.
|
|||
|
[9] Password server.
|
|||
|
[10] JCL support as alternative to system menu.
|
|||
|
[11] A new system, the CIRCULATORY system, has been added.
|
|||
|
[12] Compiler optimization.
|
|||
|
[13] NIL ;;we're superstitious
|
|||
|
[14] New server: EVIL server.
|
|||
|
[15] Package DWIM improved.
|
|||
|
[16] New special form: WITHOUT-NES
|
|||
|
[17] New function: TV:DWIMIFY
|
|||
|
[18] Memory storage and allocation improved.
|
|||
|
[19] Personality awareness.
|
|||
|
[20] New ZWEI commands.
|
|||
|
|
|||
|
Notes.
|
|||
|
[1] New mice.
|
|||
|
[2] Helpful hints in using CPT monitors.
|
|||
|
[3] Confusion concerning MAPCAR cleared up.
|
|||
|
[4] New machine to be relased soon.
|
|||
|
[5] New address for bug reports.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
CHANGES TO TAKE NOTE OF.
|
|||
|
|
|||
|
[1] The garbage collector now works. In addition a new, experimental
|
|||
|
garbage collection algorithm has been installed.
|
|||
|
|
|||
|
With SI:%%DSK-GC-QLX-BITS set to 17. [the default] the old garbage
|
|||
|
collection algorithm remains in force: when virtual storage is filled,
|
|||
|
the machine cold boots itself.
|
|||
|
|
|||
|
With SI:%%DSK-GC-QLX-BITS set to 23. the new garbage collector is
|
|||
|
enabled. Unlike most current garbage collectors, the new gc starts its
|
|||
|
mark phase from the mind of the user, rather than from the obarray.
|
|||
|
This allows the garbage collection of significantly more Qs. As the
|
|||
|
garbage collector runs, it may ask you something like ``Do you remember
|
|||
|
what SI:RDTBL-TRANS does?'' and if you can't give a reasonable answer in
|
|||
|
thirty seconds, the symbol becomes a candidate for GCing.
|
|||
|
|
|||
|
The variable SI:%%GC-QLX-LUSER-TM governs how long the GC waits before
|
|||
|
timing out the user.
|
|||
|
|
|||
|
The variable SI:%%GC-QLX-LUSER-STREAM-IS-BACKGROUND if T will
|
|||
|
only allow the user to answer GC related questions while to background
|
|||
|
window NEVER-GIVE-THE-USER-A-BREAK-IN-ANSWERING-GC-RELATED-QUESTIONS-1
|
|||
|
is exposed. This window is created as a background window with as
|
|||
|
deexposed typeout action of permit and an exposed typein action of
|
|||
|
Other: &ignore.
|
|||
|
|
|||
|
[2] Recursion is now obsolete. Use LOOP.
|
|||
|
|
|||
|
Direct use of recursion will be temporarily supported giving only a
|
|||
|
style warning from the compiler.
|
|||
|
|
|||
|
See the new RECURSIVELY keyword to LOOP.
|
|||
|
|
|||
|
[3] Common lisp installed.
|
|||
|
|
|||
|
The semantics of most functions have changed to conform to Common Lisp.
|
|||
|
Many argument orders have been reversed. Truth and falsity have reverted
|
|||
|
to the Lisp 1.5 definitions: T is bound to *T* and F is bound to NIL.
|
|||
|
However, code which refers only to primitives in the set {1+, CAR, CDR,
|
|||
|
COND, CONS, DEFUN, LAMBDA, SETQ, ZEROP} should continue to function
|
|||
|
normally. Note: (NOT T) generates an error.
|
|||
|
Numbers are now also EQ so = is now obsolete and will not work.
|
|||
|
Also, you should replace (>= A B) with (OR (> A B) (EQ A B)) and
|
|||
|
the same goes for <=.
|
|||
|
|
|||
|
[4] LOOP is now obsolete. Use recursion.
|
|||
|
|
|||
|
Direct use of LOOP will be temporarily supported giving only a style
|
|||
|
warning from the compiler.
|
|||
|
|
|||
|
Recode your LOOP code using recursion, making sure you have a
|
|||
|
terminating clause in the definition.
|
|||
|
|
|||
|
[5] Number are documented.
|
|||
|
|
|||
|
As part of our policy of keeping things well documented, all numbers
|
|||
|
in the system must be documented. Creation of a number without any
|
|||
|
documentation will result in an error. Use of the DESCRIBE function
|
|||
|
on a number will print out its documentation. Note that numbers are
|
|||
|
EQ now, so don't try to use one number for more than one purpose.
|
|||
|
(That's why there's an infinite number of them.) (Well, almost,
|
|||
|
as we only have a sex bit machine.)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
CHANGES THAT ONLY AFFECT ADVANCED USERS.
|
|||
|
|
|||
|
[1] In Zwei, m-X Visit Other Window in Other Microcode works again.
|
|||
|
|
|||
|
As you will recall, this oft-broken feature is a conceptual extension of
|
|||
|
c-X O, allowing system designers to visit their competitors' systems in
|
|||
|
a second Zwei window. This way, they can test that their new features
|
|||
|
will run only in microcodes compatible with their political beliefs
|
|||
|
without even rebooting their machines.
|
|||
|
|
|||
|
[2] Change to implementation of WITHOUT-INTERRUPTS and UNWIND-PROTECT.
|
|||
|
|
|||
|
In an attempt to reduce the number of control special forms in the
|
|||
|
language, WITHOUT-INTERRUPTS and UNWIND-PROTECT are now just ordinary
|
|||
|
functions, no longer special forms. Their calling conventions, however,
|
|||
|
remain unchanged.
|
|||
|
|
|||
|
[3] SK combinators are now the primitive programming elements.
|
|||
|
|
|||
|
(SKK(KSKKS(SKS)(KKS(KKKSKSSSK))(KKS)(SSSKSK((KKS)((SKSS))))))!
|
|||
|
|
|||
|
They go best with dotted pairs such as ((SKK.(KS.S).(KSKSS)).(S.K))
|
|||
|
|
|||
|
[4] Bug in HALTSP fixed.
|
|||
|
|
|||
|
The bug which caused HALTSP to get hung in a tight microcode loop when
|
|||
|
given certain pathological arguments (such as its own FEF) has been fixed.
|
|||
|
This function now always returns.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
UPWARD-COMPATIBLE CHANGES.
|
|||
|
|
|||
|
[1] ZMail has new menu item "IGNORE".
|
|||
|
|
|||
|
Mousing this item with a left click will reply to the current message
|
|||
|
with one of several cleverly worded messages chosen at random from the
|
|||
|
list held by the variable ZWEI:*GLIB-REPLIES*. This list defaultly
|
|||
|
includes messages like "Fixed in the new error system.", "Fixed in the
|
|||
|
new activity system.", and "Fixed in the new system system."
|
|||
|
Other messages include "This is a Twenex bug.", "This is a Multics
|
|||
|
bug.", and the quite useful "Loser, that's a feature. Next time mail
|
|||
|
to the right list: FEATURE-LISPM."
|
|||
|
|
|||
|
With a middle click, different tactics are tried. A fake message from
|
|||
|
COMSAT or XMAILR is formatted to say that the message was undeliverable
|
|||
|
due to microwave bridge sabotage.
|
|||
|
|
|||
|
A right click will just caused the message to be ignored.
|
|||
|
|
|||
|
[2] LOOP has been extended.
|
|||
|
|
|||
|
The new RECURSIVELY keyword handles cases that would seem to require
|
|||
|
recursion.
|
|||
|
|
|||
|
This is simplest to explain with an example. Where formerly you had to
|
|||
|
write:
|
|||
|
|
|||
|
(DEFUN EQUAL (X Y)
|
|||
|
(IF (OR (NLISTP X) (NLISTP Y)) (EQ X Y)
|
|||
|
(AND (EQUAL (CAR X) (CAR Y)) (EQUAL (CDR X) (CDR Y)))))
|
|||
|
|
|||
|
you can now write simply:
|
|||
|
|
|||
|
(DEFUN EQUAL (X Y)
|
|||
|
(LOOP RECURSIVELY INTO X AND Y
|
|||
|
DESCENDING-UNTIL (OR (NLISTP X) (NLISTP Y))
|
|||
|
FAILING-IF (NEQ X Y)
|
|||
|
PREMATURELY NIL
|
|||
|
FINALLY T
|
|||
|
BELATEDLY (FERROR NIL "Bug in LOOP! Please report this to JONL.")))
|
|||
|
|
|||
|
[3] Advertising.
|
|||
|
|
|||
|
The function SI:BITBLT-SUBLIMINALLY is now released to users. You've
|
|||
|
probably seen it used many times without realizing it. It's the function
|
|||
|
that the system uses at random intervals to display the message "Converse
|
|||
|
isn't all THAT bad" on the screen in our official corporate font for
|
|||
|
50msec. You're probably wondering how we can do anything on the screen in
|
|||
|
50msec, but take our word for it that it works. We hardly get any more
|
|||
|
bug reports on Converse and we haven't fixed any bugs in it for months.
|
|||
|
Note: this function will cause your machine to crash if you use it to
|
|||
|
say anything bad about our company or its code.
|
|||
|
|
|||
|
[4] CAR and CDR now return extra values.
|
|||
|
|
|||
|
The function CAR now returns two values. Since it has to go to the
|
|||
|
trouble to figure out if the object is carcdr-able anyway, we figured
|
|||
|
you might as well get both halves at once. For example, the following
|
|||
|
code shows how to destructure a cons (SOME-CONS) into its two slots
|
|||
|
(THE-CAR and THE-CDR):
|
|||
|
|
|||
|
(MULTIPLE-VALUE-BIND (THE-CAR THE-CDR) (CAR SOME-CONS) ...)
|
|||
|
|
|||
|
For symmetry with CAR, CDR returns a second value which is the CAR of
|
|||
|
the object.
|
|||
|
|
|||
|
In a related change, the functions MAKE-ARRAY and CONS have been fixed
|
|||
|
so they don't allocate any storage except on the stack. This should
|
|||
|
hopefully help people who don't like using the garbage collector because
|
|||
|
it cold boots the machine so often.
|
|||
|
|
|||
|
[5] The TV:WIN-BIG special form is useful for writing window system
|
|||
|
code.
|
|||
|
|
|||
|
The TV:WIN-BIG special form is a macro whose function is to ensure that
|
|||
|
all "window system" code executed inside of it will work correctly. This
|
|||
|
special form combines all the features of these now obsolete window
|
|||
|
system functions:
|
|||
|
|
|||
|
TV:WITH-BLINKER-READY
|
|||
|
TV:SHEET-FORCE-ACCESS
|
|||
|
TV:WITH-DEADLY-FORCE-AND-LICENCE-TO-KILL
|
|||
|
TV:DELAYING-SCREEN-MANAGMENT
|
|||
|
TV:DELAYING-YOUR-PAYCHECK
|
|||
|
TV:WITH-MOUSE-GRABBED
|
|||
|
TV:WITH-MOUSE-YU-SHIANG-STYLE
|
|||
|
TV:OPEN-BLINKER
|
|||
|
TV:CLOSE-THE-DOOR
|
|||
|
TV:OPEN-DOOR-AT-COMPETIORS
|
|||
|
TV:MOUSE-BLINKER-FAST-TRACKING-MIXIN
|
|||
|
TV:FAST-NEW-CAR-FOR-CHRISTMAS-MIXIN
|
|||
|
TV:STEVES-MIXIN
|
|||
|
TV:SWITCH-FROM-VHF-TO-UHF
|
|||
|
TV:SCREEN-UNPROTECT
|
|||
|
|
|||
|
An example of the TV:WIN-BIG special form follows: Where previously it
|
|||
|
took pages of code to arrange things so that you could use the mouse to
|
|||
|
draw a box on the screen, now all that is needed is:
|
|||
|
(TV:WIN-BIG
|
|||
|
(DRAW A BOX ON THE TV:SCREEN USING THE FURRY:MOUSE))
|
|||
|
|
|||
|
OK!
|
|||
|
|
|||
|
[6] The Zwei command m-X View Function Through Rose Colored Glasses has
|
|||
|
been installed. It is also available on h-c-V. This command (invaluable
|
|||
|
when reading SLiMi system source code) reads and analyzes the function
|
|||
|
that the point is in and recodes it, removing crocks, hacks, obscurities,
|
|||
|
and SETQs in COND branches. On machines with color screens, the recoded
|
|||
|
definition is also displayed on the color screen in shocking pink. With a
|
|||
|
c-U argument, h-c-V will replace the version in the buffer with the
|
|||
|
recoded version.
|
|||
|
|
|||
|
m-X View Function Through Rose Colored Glasses has aesthetic parameters
|
|||
|
you can set to suit your own coding style.
|
|||
|
|
|||
|
ZWEI:*ACCEPTABLE-LOOPING-CONSTRUCTS*, initially set to (LOOP), is a
|
|||
|
list of the special forms the command will use in coding loops.
|
|||
|
|
|||
|
ZWEI:*ALLOW-SETQS-IN-COND-BRANCHES* is for diehard losers.
|
|||
|
|
|||
|
ZWEI:*REQUIRE-SETQS-IN-COND-BRANCHES* is for our maintenance personnel,
|
|||
|
the number of whom is now a bignum.
|
|||
|
|
|||
|
ZWEI:%%PROG-DENSITY-THRESHOLD is the minimum percentage of PROG's allowed
|
|||
|
as a percentage of all lines of code. DO NOT USE A NUMBER LESS THAN 40.
|
|||
|
|
|||
|
[7] New file system editor.
|
|||
|
|
|||
|
A meta-level up from Dired, the new File System Editor gives you the
|
|||
|
same control of file systems on your machine that Dired used to give you
|
|||
|
of files. So if your disk seems overly cluttered with file systems, you
|
|||
|
can just type c-X s-D and you'll be put in a window where you can remove
|
|||
|
the file systems you don't want with a single keystroke.
|
|||
|
|
|||
|
[8] RMail windows installed.
|
|||
|
|
|||
|
Like ZMail windows, but tolerably fast. Built out of essentially the
|
|||
|
same flavors but omitting TV:MOLLASSES-MIXIN.
|
|||
|
|
|||
|
[9] Password server.
|
|||
|
|
|||
|
If you fail three times to remember your password when asked for it, all
|
|||
|
other lisp machine users will be queried to see if they can remember.
|
|||
|
This is built on CHAOS:NOTIFY-ALL-LMS. This shouldn't be really have
|
|||
|
to be used, as everytime you use a new password, the next patch file
|
|||
|
updated to store your password. That's why it takes so long to
|
|||
|
read in all of the patch-directories. (For your protection, only
|
|||
|
your encrypted password is saved.)
|
|||
|
|
|||
|
[10] JCL support as alternative to system menu.
|
|||
|
|
|||
|
In our continuing effort to support languages other than Lisp on the
|
|||
|
CADDR, we have developed an OS/360-compatible JCL. This can be used as
|
|||
|
a alternative to the standard system menu. Type System J to get to a
|
|||
|
JCL interactive read-execute-diagnose loop window. [Note that for 360
|
|||
|
compatibility, all input lines are truncated to 80 characters.] This
|
|||
|
window also maintains a mouse-sensitive display of critical job
|
|||
|
parameters such as dataset allocation, core allocation, channels, etc.
|
|||
|
When a JCL syntax error is detected or your job ABENDs, the
|
|||
|
window-oriented JCL debugger is entered. The JCL debugger displays
|
|||
|
appropriate OS/360 error messages (such as IEC703, ``disk error'') and
|
|||
|
allows you to dequeue your job.
|
|||
|
|
|||
|
[11] A new system, the CIRCULATORY system, has been added.
|
|||
|
|
|||
|
The long-experimental CIRCULATORY system has been released to users.
|
|||
|
The Lisp Machine uses Type B fluid, the L machine uses Type A fluid.
|
|||
|
When the switch to Common Lisp occurs both machines will, of course, be
|
|||
|
Type O. Please check fluid level by using the DIP stick which is
|
|||
|
located in the back of VMI monitors. Unchecked low fluid levels can
|
|||
|
cause poor paging performance.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
[12] Speed up in efficiency for LET.
|
|||
|
|
|||
|
Compiler optimizations have been made to macro expand LET
|
|||
|
into a WITHOUT-INTERRUPTS special form so that it can PUSH
|
|||
|
things into a stack in the LET-OPTIMIZATION area, SETQ
|
|||
|
the variables and then POP them back when its done. Don't
|
|||
|
worry about this unless you use multiprocessing.
|
|||
|
|
|||
|
Note that LET *could* have been defined by:
|
|||
|
|
|||
|
(LET ((LET '`(LET ((LET ',LET))
|
|||
|
,LET)))
|
|||
|
`(LET ((LET ',LET))
|
|||
|
,LET))
|
|||
|
|
|||
|
This is believed to speed up execution by as much as a factor
|
|||
|
of 1.01 or 3.50 depending on whether you believe our friendly
|
|||
|
marketing representatives. This code was written by a new
|
|||
|
programmer here (we snatched him away from Itty Bitti Machines
|
|||
|
where we was writting COUGHBOL code) so to give him confidence
|
|||
|
we trusted his vows of "it works pretty well" and installed it.
|
|||
|
|
|||
|
|
|||
|
;;an unlucky number was omitted. (the code didn't work)
|
|||
|
|
|||
|
[14] New server: EVIL server.
|
|||
|
|
|||
|
A new server, the EVIL server, has been installed for your pleasure.
|
|||
|
Now anyone can connect to your machine cause havoc on your machine.
|
|||
|
If there is no data on the next packet you recieve on the EVIL connection,
|
|||
|
as random function is called. If you are given a negative number,
|
|||
|
you automatically open an EVIL connection on their machine, and send
|
|||
|
them as their data, the absolute value of that number. A small fixnum
|
|||
|
will cause one of your Chaos connections to be closed. A large fixnum
|
|||
|
will cause one of your ZWEI buffers to be killed. A small flonum
|
|||
|
will cause a random message to be sent to all objects in your world.
|
|||
|
A large flonum will do randomly do a warm boot or cold boot, and a bignum
|
|||
|
will start cause you to start EVIL serving all machines at your site,
|
|||
|
and then crash your machine.
|
|||
|
|
|||
|
As usual, most of the user settable variables relavent are undocumented,
|
|||
|
but we will tell you that you can set EVIL:ESCALATION-FUNCTION to
|
|||
|
some expression to escalate the numbethat you were sent, and start
|
|||
|
EVIL serving the person who got you. Note that you can also set
|
|||
|
EVIL:*NUMBER-OF-DIRTY-MESSAGES* to an number of insults to be
|
|||
|
returned in your SLOW-ANSWER-STRING. The evil server is implimented
|
|||
|
using .daemon. flavors.
|
|||
|
|
|||
|
[15] Package DWIM improved.
|
|||
|
|
|||
|
So that error handling caused by by typing the name of a function
|
|||
|
will be faster, all functions, variables and symbols which are
|
|||
|
unique are now globalized. Note that PKG-GOTO is obsolete.
|
|||
|
PKG-GOSUB is still maintained for downward compatability.
|
|||
|
|
|||
|
|
|||
|
[16] New special form: WITHOUT-NES
|
|||
|
|
|||
|
So that error handling will be faster, just wrap a
|
|||
|
WITHOUT-NES form around the body. Afterwards, you
|
|||
|
will be able to quickly get MUCKLISP style error messags
|
|||
|
like ;Bpt: i/o lossage. This form is already wrapped around
|
|||
|
LISP-TOPLEVEL99 for you. Just remember to set the variable
|
|||
|
*ALLOW-ERROR-IN-ERROR-HANDLER* to T to avoid infinite loops.
|
|||
|
|
|||
|
[17] New function: TV:DWIMIFY
|
|||
|
|
|||
|
Pops up a menu window, and runs an AI program to do what
|
|||
|
you mean instead of what you click. Great when your
|
|||
|
mouse is flakey.
|
|||
|
|
|||
|
[18] Memory storage and allocation improved.
|
|||
|
|
|||
|
There is a new special form: WITHOUT-CONSING.
|
|||
|
This special form will ensure that now consing is done
|
|||
|
evaluating its body. This is used by the garbage
|
|||
|
collector to make sure you don't create more garbage
|
|||
|
than you free up. Also, if your idle time exceeds
|
|||
|
*IDLE-TIME-BEFORE-GC* 60ths of second, a full gc is
|
|||
|
ddone for you. Just don't do a HACKS:PIZZA and take
|
|||
|
too long eating it.
|
|||
|
|
|||
|
|
|||
|
[19] Personality awareness.
|
|||
|
|
|||
|
Set the variable *LOSERS* to all the people that you think are losers.
|
|||
|
This will cause all the variable *PEOPLE-WHO-THINK-I-AM-A-LOSER*
|
|||
|
to be updated in all of your loser's init file. Now you can run
|
|||
|
a program on another machine which if there are no free lisp machines,
|
|||
|
will free up one just for you, by cold booting it.
|
|||
|
|
|||
|
|
|||
|
[20] New ZWEI command.
|
|||
|
|
|||
|
SUPER-HYPER-META-CONTROL-SHIFT-GREEK-X Correct Grammar will correct
|
|||
|
grammer of buffer the.
|
|||
|
|
|||
|
SUPER-HYPER-META-CONTROL-SHIFT-GREEK-X Correct Programming Bugs
|
|||
|
will correct bugs in your programming, provided you have Set
|
|||
|
Default programming language.
|
|||
|
|
|||
|
SUPER-HYPER-META-CONTROL-SHIFT-GREEK-X Translate Into Language
|
|||
|
will prompt you for a two new langauges: the first is the langauge
|
|||
|
to translate the program into, the second is the langauge to
|
|||
|
translate the comments into. Known langauges are found in the
|
|||
|
variable *LINGUA-KNOWLECHEN* (from the Latin and the French).
|
|||
|
If you set this variable to include a language it really doesn't
|
|||
|
know, it will try hard to find the language on the File-computer
|
|||
|
(not yet supported in the default file system).
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
NOTES.
|
|||
|
|
|||
|
[1] New mice.
|
|||
|
|
|||
|
Remember those white mice that were fed 20 liters of strong coffee a
|
|||
|
day? New mice in our official corporate colors will arrive soon.
|
|||
|
Remember, our mice are much better than our competitor's rats.
|
|||
|
|
|||
|
[2] Helpful hints in using CPT monitors
|
|||
|
|
|||
|
A new font is available for users of CPT monitors. FIX200 allows a full
|
|||
|
5 x 8 character area of your file to be visible simultaneously, despite
|
|||
|
the slight imperfections in the newer CPT monitors [users of older CPT
|
|||
|
monitors will have to wait for the upcoming release of FIX400]. A crash
|
|||
|
development effort to develop horizontal scrolling in the editor is
|
|||
|
underway. Howard is away on vacation, however, and no one else can
|
|||
|
fathom the window system code.
|
|||
|
|
|||
|
Our crack hardware team has announced the availability of retrofit kits
|
|||
|
consisting of microscopes with image intensifiers, and a case of
|
|||
|
dramamine tablets. Marketing can't decide the price for this, however,
|
|||
|
so you'll just have to wait.
|
|||
|
|
|||
|
[3] There has been some confusion concerning MAPCAR.
|
|||
|
|
|||
|
(DEFUN MAPCAR (&FUNCTIONAL FCN &EVAL &REST LISTS) ;(c) SLiMi, 1982
|
|||
|
(PROG (V P LP)
|
|||
|
(SETQ P (LOCF V))
|
|||
|
L (SETQ LP LISTS)
|
|||
|
(%START-FUNCTION-CALL FCN T (LENGTH LISTS) NIL)
|
|||
|
L1 (OR LP (GO L2))
|
|||
|
(AND (NULL (CAR LP)) (RETURN V))
|
|||
|
(%PUSH (CAAR LP))
|
|||
|
(RPLACA LP (CDAR LP))
|
|||
|
(SETQ LP (CDR LP))
|
|||
|
(GO L1)
|
|||
|
L2 (%FINISH-FUNCTION-CALL FCN T (LENGTH LISTS) NIL)
|
|||
|
(SETQ LP (%POP))
|
|||
|
(RPLACD P (SETQ P (NCONS LP)))
|
|||
|
(GO L)))
|
|||
|
|
|||
|
We hope this clears up the many questions we've had about it.
|
|||
|
|
|||
|
[4] New address for bug reports.
|
|||
|
|
|||
|
Bug reports now amount to an average of 12,853 per day. Unfortunately,
|
|||
|
this is only a small fraction [ < 1% ] of the mail volume sent to
|
|||
|
BUG-SLiMi. In order that we may more expeditiously deal with these
|
|||
|
valuable messages, please communicate them by one of the following
|
|||
|
paths:
|
|||
|
|
|||
|
ARPANET sites: "Wastebasket@SLiMiHQ"@AI
|
|||
|
Note: AI is not expected to run TCP/IP so mail will not get through
|
|||
|
after January 1. So much the better.
|
|||
|
|
|||
|
UUCP sites: ucb70!progn!a!caddr!cddadr!fubar!go!a!slimivixen!slimivaxen!slimihq!wastebasket
|
|||
|
|
|||
|
Non-network sites: Federal Express to:
|
|||
|
Wastebasket
|
|||
|
Room NE43-926
|
|||
|
Copernicus, The Moon, 12345-6789
|
|||
|
|
|||
|
Dialnet number 1-900-555-1212
|
|||
|
|
|||
|
Our trained operators are on call 24-hours a day. That toll-free number
|
|||
|
again is 1-900-555-1212. Try some today. Visa and Mastercharge
|
|||
|
accepted. *
|
|||
|
|
|||
|
*
|
|||
|
Our very rich lawyers assure us that we are not responsible
|
|||
|
for any errors in advice given over the phone.
|