💾 Archived View for gemini.spam.works › mirrors › textfiles › humor › COMPUTER › sys286.msg captured on 2022-06-12 at 09:25:05.

View Raw

More Information

-=-=-=-=-=-=-

.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.)



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.