Imported Upstream version 302
[ckermit.git] / ckermit90.txt
index 09f7c8b..adf6ee3 100644 (file)
 
 C-Kermit 9.0 Update Notes
 
-   Note: C-Kermit 9.0.301 contains a correction that applies only to
+   Note:   C-Kermit 9.0.301 contains a correction that applies only to
    Solaris 10 and 11.
+     C-Kermit 9.0.302 contains corrections that apply only to FreeBSD 8
+   and 9.
      * [15]Large Files
      * [16]How to Test Large-File Transfer
      * [17]Arithmetic with Large Integers
@@ -51,21 +53,21 @@ C-Kermit 9.0 Update Notes
    because it's an interactive program, not a compiler. The scripting
    language is the command language. Kind of like the Unix shell but
    "somewhat" less cryptic, including concepts not only from C but from
-   PL/I, Snobol, LISP, and Smalltalk. The language itself is built upon
-   the command language of the much-loved [36]DECSYSTEM-20 from the 1970s
-   and 80s, the Clipper Ship of the Text Era. (Text is not a bad word.
-   Those of us who can touch-type and who are proficient in text-based
-   computing environments like Unix shell or VMS DCL are likely to be
-   orders of magnitude more productive than users of GUIs.)
+   PL/I, Snobol, LISP, Bliss, and Smalltalk. The language itself is built
+   upon the command language of the much-loved [36]DECSYSTEM-20 from the
+   1970s and 80s, the Clipper Ship of the Text Era. (Text is not a bad
+   word. Those of us who can touch-type and who are proficient in
+   text-based computing environments like Unix shell or VMS DCL are likely
+   to be orders of magnitude more productive than users of GUIs.)
 
    Thanks to (at least) Jeff Altman, William Bader, Ian Beckwith, Nelson
-   Beebe, Gerry Belanger, Joop Boonen, Rob Brown, Christian Corti, John
-   Dunlap, Peter Eichhorn, Carl Friedberg, Terry Kennedy, Günter Knauf,
-   Jason Lehr, Arthur Marsh, Lewis McCarthy, Gary Mills, Jonathan Reams,
-   Mike Rechtman, Mark Sapiro, Steven Schweda (SMS), Kinjal Shah, Michael
-   Sokolov, Andy Tanenbaum, Seth Theriault, Zach A. Thomas, Martin
-   Vorländer, and Eric Weaver for assistance, and to Hewlett-Packard
-   Company for support.
+   Beebe, Gerry Belanger, Joop Boonen, Rob Brown, Christian Corti, Alexey
+   Dokuchaev, John Dunlap, Peter Eichhorn, Carl Friedberg, Terry Kennedy,
+   Günter Knauf, Jason Lehr, Arthur Marsh, Lewis McCarthy, Gary Mills, Ed
+   Ravin, Jonathan Reams, Mike Rechtman, Mark Sapiro, Steven Schweda
+   (SMS), Kinjal Shah, Michael Sokolov, Andy Tanenbaum, Seth Theriault,
+   Zach A. Thomas, Martin Vorländer, and Eric Weaver for assistance, and
+   to Hewlett-Packard Company for support.
 
      - Frank da Cruz   [37]fdc@columbia.edu, 30 June 2011
 
@@ -86,21 +88,23 @@ C-Kermit> send /recursive /dotfiles /nobackup *
    index.html.~243~). And then I did the same with the FTP sites, about
    8GB in all. Watching the file-transfer display was kind of like having
    30 years of my life flash before my eyes in a few minutes. Then I
-   copied the two directories to DVD (the FTP site had to split over 2
+   copied the two directories to DVD (the FTP site had to be split over 2
    DVDs). The whole operation took under half an hour. The directory tree
    on the CD is directly usable in Windows, Unix, or any other operating
-   system (unlike if I had made, say, a gzipped tar archive or a zip
+   system (unlike if I had transferred the files all in binary mode or all
+   in text mode, or if I had made, say, a gzipped tar archive or a zip
    archive). I believe that, to this day, Kermit is the only software that
    can do this. If someday I have to upload from these DVDs to Unix, VMS,
    or any other operating system, it can be done exactly the same way,
    with any necessary conversions on text files done automatically, and
-   binary files left intact.
+   binary files left intact, recursively through a whole very large
+   directory tree.
 
 What's New in General
 
    Very briefly, the major items:
      * [39]Open Source license.
-     * [40]64-bit file accesss and transfer and 64-bit integer arithmetic
+     * [40]64-bit file access and transfer and 64-bit integer arithmetic
        on most common platforms.
      * Support for recent releases of Linux, Mac OS X, *BSD, etc ([41]see
        table).
@@ -132,11 +136,11 @@ Large Files
    platforms that support them. A "large file" is one whose size is
    greater than 2^31-1 (2,147,483,647) bytes (2GB-1); that is, one whose
    size requires more than 31 bits to represent. Before now, Kermit was
-   able to accesss such files only on 100% 64-bit platforms such as
-   Digital Unix, later known as Tru64 Unix. In the new release, Kermit
-   takes advantage of the X/Open Single UNIX Specification Version 2 (UNIX
-   98) Large File Support (LFS) specification, which allows 32-bit
-   platforms to create, accesss, and manage files larger than 2GB.
+   able to access such files only on 100% 64-bit platforms such as Digital
+   Unix, later known as Tru64 Unix. In the new release, Kermit takes
+   advantage of the X/Open Single UNIX Specification Version 2 (UNIX 98)
+   Large File Support (LFS) specification, which allows 32-bit platforms
+   to create, access, and manage files larger than 2GB.
 
    Accommodating large files required code changes in many modules,
    affecting not only file transfer, but also file management functions
@@ -272,13 +276,12 @@ FORCE-3 Packet Protocol
 
    In practice, however, it is possible to code the packet receiver
    "cheat" by reading the packet data before verifying the block check.
-   Thus when the receiver is C-Kermit 9.0 Beta.01 or later or E-Kermit 1.7
-   or later, it is only necessary to give the "set block 5" command to the
+   Thus when the receiver is C-Kermit 9.0 or later or E-Kermit 1.7 or
+   later, it is only necessary to give the "set block 5" command to the
    file sender, and the receiver will check for a FORCE-3 first packet. If
-   the receiver does not support this feature, however, the the initial
-   packet will be be rejected (after several retries) and the file
-   transfer will not take place. There is no attempt to "back off" to
-   normal behavior.
+   the receiver does not support this feature, however, the initial packet
+   will be be rejected (after several retries) and the file transfer will
+   not take place. There is no attempt to "back off" to normal behavior.
 
    CAPTION: Table 4. Kermit Protocol Packet Block Check Types
 
@@ -319,7 +322,7 @@ Variable Evaluation
    a single letter, for example \a, \b, etc. The contributed code
    evaluated these variables recursively, meaning if the definition of a
    variable contained variable references, then these were resolved when
-   derefencing the variable, and the process would continue as deep down
+   dereferencing the variable, and the process would continue as deep down
    as necessary to resolve the thing fully.
 
    This was sometimes handy, but it had one severe drawback: There was no
@@ -402,7 +405,7 @@ Variable Evaluation
        anyway there should never be any harm in evaluating them
        recursively because their final value is always (or should be)
        numeric, not some string that might contain backslashes.
-     * The VARIABLE-EVALUTION setting is on the command stack. Thus you
+     * The VARIABLE-EVALUATION setting is on the command stack. Thus you
        can give this command in a macro, command file, or user-defined
        function without affecting the calling environment.
      * The new \frecurse() function forces recursive evaluation of its
@@ -889,7 +892,7 @@ Other New Features
        versions that support large files.
      * User-settable FTP timeout, works on both the data and control
        connection.
-     * FTP accesss to ports higher than 16383.
+     * FTP access to ports higher than 16383.
      * Built-in FTP client for VMS. This is the [70]same FTP client Unix
        C-Kermit has had since version 8.0, minimally adapted to VMS by
        SMS, supporting binary and Stream_LF file transfer only (in other
@@ -1105,7 +1108,7 @@ exit 0
        them to analyze web logs, see the Weblog script below.
      *
 
-        Lazy IF Conditions: Third, now you can do this:
+        Lazy IF Conditions: Now you can do this:
                 define foo some number
                 if foo command
 
@@ -1116,9 +1119,9 @@ exit 0
        Of course the old way still works too. But watch out because if the
        variable name is the same as a symbolic IF condition (for example
        COUNT), it won't do what you expected. (IF COUNT was used for loop
-       control in early versions of MS-DOS Kermit, before it got true FOR
+       control in early versions of MS-DOS Kermit, before it got real FOR
        and WHILE loops; it was added to C-Kermit for compatibility, and it
-       can't be removed because it could break existing scripts).
+       can't be removed because that could break existing scripts).
      * Escape sequences are now stripped from text-mode session logs not
        only in CONNECT sessions but also in whatever is logged by the
        INPUT command; described in the [85]next section.
@@ -1307,16 +1310,16 @@ Using External File-Transfer Protocols on Secure Connections
    ckupty.[ch], which are well-proven in terms of portability and of
    actually working. They are currently used by SET HOST /PTY for making
    terminal connections to external processes. But these routines are
-   written on the assumption that the pty is to be accesssed
-   interactively, and maybe they are setting the fork/pty arrangement up
-   in such a way that that's not suitable for file transfer. The Pass One
-   routine is called xttptycmd() in ckutio.c.
+   written on the assumption that the pty is to be accessed interactively,
+   and maybe they are setting the fork/pty arrangement up in such a way
+   that that's not suitable for file transfer. The Pass One routine is
+   called xttptycmd() in ckutio.c.
 
    So in Pass Two I made a second copy of the routine, yttptycmd(), that
    manages the pty and fork itself, so all the code is in one place and
    it's simple and understandable. But it still doesn't work for Zmodem
    downloads. In this routine, I use openpty() to get the pty pair, which
-   is not portable, so I can have accesss to both the master and slave pty
+   is not portable, so I can have access to both the master and slave pty
    file descriptors. This version can be used only a platforms that have
    openpty(): Linux, Mac OS X, NetBSD, etc.