home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / c-kermit / ck61a10.txt < prev    next >
Internet Message Format  |  2020-01-01  |  16KB

  1. Date: Sun, 21 Dec 97 16:29:54 EST
  2. From: Frank da Cruz <fdc@watsun.cc.columbia.edu>
  3. To: wermit-l@wkuvx1.wku.edu
  4. Subject: C-Kermit 6.1 Alpha.10
  5. Message-ID: <CMM.0.90.4.882739794.fdc@watsun.cc.columbia.edu>
  6.  
  7. Here's Alpha.10 of C-Kermit 6.1.193.  Still a closed Alpha, etc etc, like
  8. last time, but big changes this time.  Also, lots of new people added to the
  9. mailing list (see notes at the end about how to find out what happened in
  10. previous Alphas).
  11.  
  12. GENERAL CHANGES SINCE ALPHA.09 (13 Nov 1997)
  13.  
  14.  . Major file-transfer speedups (explained below).
  15.  . New, more accurate and consistent calculation of transfer time and CPS.
  16.  . Various improvements and fixes to statistics reporting.
  17.  . Fixes to filename pattern-matching for automatic text/binary-mode switching.
  18.  . New SET TRANSFER DISPLAY BRIEF, one line per file, similar to FTP.
  19.  . New SET TRANSACTION-LOG BRIEF, one line per file, suitable for databases.
  20.  . GET /RECURSIVE added, as well as GET /RECURSIVE /DELETE.
  21.  . New dynamic server help text in response to REMOTE HELP.
  22.  . -V command line option = SET FILE PATTERNS OFF + SET XFER MODE MANUAL.
  23.  . New CLOSE command to close current connection (any kind).
  24.  . RETURN now works right when given from within SWITCH.
  25.  . Fixed SHOW MACRO and improved it to allow "?" to display macro names.
  26.  . Minor DELETE command editing and parsing problems fixed.
  27.  . Command recall fixed now, I hope.
  28.  . Assorted Telnet protocol fixes and improvements.
  29.  . Server end of REMOTE SET WINDOW fixed to not overallocate packet buffers.
  30.  . External protocols now properly set SUCCESS/FAILURE and \v(status).
  31.  . IF NUMERIC now properly fails if operand contains imbedded spaces.
  32.  . SET MODEM COMMAND VOLUME HIGH command fixed.
  33.  . No more "more?" prompting when run in batch or background.
  34.  . No more automatic CONNECT after DIAL when in batch or background.
  35.  . SHOW COMM now displays CARRIER-WATCH setting always.
  36.  . Scary messages no longer issued upon failure to set TCP socket options.
  37.  . A couple of minor memory leaks plugged.
  38.  . Numerous "keep compilers happy" changes.
  39.  
  40. Also, lots of problems with the fullscreen file-transfer display were fixed,
  41. primarily those in which an interrupted or failed transfer would nevertheless
  42. report "Transfer OK" as the percent bar would suddenly zoom out to 100%.
  43.  
  44. Oh yeah, and did I mention the new "drain" feature before?  I forgot when I
  45. put it in -- a few Alpha edits ago.  Imagine you are downloading a file with
  46. sliding windows (or, worse, streaming -- see below) and you interrupt it with
  47. an Error packet (or this happens by itself because of a file-write error or
  48. somesuch).  When you CONNECT back to the remote (or, worse, when this happens
  49. automatically because of autodownload), torrents of packets that were launched
  50. by the sender before it got the E packet are gushing out at you, making your
  51. terminal or emulator beep, lose its configuration, or freeze up.  Now
  52. C-Kermit, whenever it is in local mode and receiving files and it sends an E
  53. packet, "drains" the communication channel, reading and discarding all those
  54. queued-up packets until there are no more, before returning to command or
  55. CONNECT mode.
  56.  
  57. UNIX-SPECIFIC CHANGES
  58.  
  59.  . Improved file transfer performance on FIONREAD-deprived platforms.
  60.  . 16-bit QNX version now available.
  61.  . BIGBUFOK now predefined for Linux and SCO OpenServer.
  62.  . Removed references to Linux kernel header files, etc, that now conflict 
  63.    with glib, hopefully with no ill effects (be sure to check that REDIRECT
  64.    and high serial speeds still work in Linux).
  65.  . Rlogin enabled for HP-UX 10.00 (but of course still requires privilege).
  66.  . Improved HP-UX makefile entries (from Peter Eichhorn).
  67.  . "cd ..<Esc>" now works as expected.
  68.  . "Union wait" warnings fixed in Digital UNIX 4.0 (from Lucas Hart).
  69.  . Lots of debugging added to CONNECT module to catch orphaned forks,
  70.    which have been reported in HP-UX, plus a failsafe mechanism to kill
  71.    any leftover forks.
  72.  . Man page updated.
  73.  
  74. I also happened to observe that when telnetted to an IRIX system (at least
  75. versions 5.3 and 6.2), IRIX C-Kermit can't send files if the packet length is
  76. greater than 4K; it can receive files with longer packets, but not send them.
  77. This is evidently a peculiarity of the IRIX Telnet server, since when entering
  78. IRIX in any other way, it doesn't happen.
  79.  
  80. Open UNIX issues:
  81.  
  82.  . Orphan CONNECT forks reported in HP-UX.
  83.  . HP-UX 10.x version doesn't pop back to prompt if carrier drops on cua0p0
  84.    device; as far as I can tell, it never did, even though most other
  85.    SVR4-based versions do and HP-UX 10.x shares the same code.
  86.  . Still no C-Kermit 6.1 version for the BeBox.
  87.  . This version not yet checked out in Plan 9 (and when it is, that would be
  88.    a good opportunity to add TCP/IP support).
  89.  
  90. VMS-SPECIFIC CHANGES
  91.  
  92.  . Outbound LAT connections fixed and tested.
  93.  . Fixed SEND /MAIL:<address> <filename>.
  94.  . NOVMSSHARE selection added to CKVKER.COM + much cleanup, from Lucas Hart.
  95.  . OLD_VMS conditionals updated for VMS 4.7, from Lucas Hart.
  96.  . Incoming filetype attribute was improperly overriding FILE TYPE IMAGE.
  97.  . No more testing for controller type on Alpha, so SHOW MODEM should work.
  98.  . Changed SET CARRIER and HELP SET CARRIER to print informative messages.
  99.  . VMS buffered serial-port read code changed to try not to lose the last few
  100.    incoming characters (like NO CARRIER) when a serial connection is hung up.
  101.  . VMS server now shows directory names when given the REMOTE DIR command.
  102.  . CKVKER.BWR (VMS C-Kermit Beware) file reorganized and augmented.
  103.  
  104. I learned after much experimentation -- and maybe some VMS experts will
  105. explain this to me -- that when sending to remote-mode VMS C-Kermit (at least
  106. when entering VMS via the UCX 2.0 Telnet server), the following control
  107. characters can NOT be unprefixed:
  108.  
  109.  Ctrl-C, Ctrl-M (obviously), Ctrl-N, Ctrl-O, Xon/Xoff and their high-bit
  110.  equivalents, Ctrl-X, Ctrl-Y, and CR with high bit.
  111.  
  112. Now I thought we were putting the terminal into the most transparent of modes.
  113. I suppose I'm not surprised by Xon/Xoff being swallowed (after all, the
  114. terminal must have HOSTSYNC/TTSYNC for file transfer to work at all, even on a
  115. Telnet connection) but some of the others are surprising.  For example, why
  116. Ctrl-X and -Y but not Ctrl-Z?  Why SO/SI?  Is there some magic I can utter in
  117. CKVTIO.C to make these pass through?  (Yes, I do put the device in PASSTHRU
  118. mode...)
  119.  
  120. In any case, I changed C-Kermit to never unprefix any of these characters when
  121. it knows it's sending to VMS, no matter what the user said, and SET PREFIXING
  122. CAUTIOUS to include the ones that weren't included previously (14,15,24,25).
  123.  
  124. (Obviously, this does not happen with all VMS systems, but it does happen
  125. with enough of them to warrant these precautions.)
  126.  
  127. Open VMS issues:
  128.  
  129.  . The new serial-port handling code is completely untested; I don't have a
  130.    way to test it myself.
  131.  . Inability to transfer certain types of files that Kermit-32 can transfer.
  132.  . Inability to transfer files under DECIntact or other environments that
  133.    "own" the TT: device and won't share it.
  134.  . Inability to creat or CD to a directory when the directory specification
  135.    includes a DECnet node.
  136.  . Getting/setting file permissions in VMS.
  137.  . Need subsecond timers like the ones added for UNIX.  Does VMS have a system
  138.    call that returns the time of day in milliseconds or somesuch?  (See UNIX
  139.    rftimer() and gftimer() in ckutio.c -- we need this for VMS too.)
  140.  . Receipt of broadcasts during CONNECT & file transfer still not disabled?
  141.  
  142. FILE-TRANSFER SPEEDUPS
  143.  
  144.  1. Streaming
  145.  
  146. A new, experimental Kermit protocol option called "streaming" has been added
  147. in Alpha.10.  The idea is that if the two Kermits have a reliable transport
  148. (such as TCP/IP or X.25) between them, then there is no need to send ACKs for
  149. Data packets, since a reliable transport will, by definition, deliver all
  150. packets in order and undamaged, and keeping the traffic all in one direction,
  151. in turn, has certain benefits on various kinds of connections (TCP, modems
  152. that allocate their bandwidth dynamically, etc).
  153.  
  154. Streaming is like using an infinite window size, with no timeouts, and zero
  155. tolerance for transmission errors.  It goes much faster than non-streaming
  156. when a small packet length is used, and it also tends to go faster even with
  157. the longest packet lengths; the results vary with the particular connection,
  158. and so this is just another tuning knob, but one that will kick in
  159. automatically when it is safe to do so.
  160.  
  161. For now, streaming can be used only between two copies of C-K 6.1 Alpha.10, or
  162. between C-K 6.1 Alpha.10 and MS-DOS Kermit 3.16 Alpha.1.  After the shakeout
  163. period, it will also become available in future releases of Kermit 95 and
  164. MS-DOS Kermit.
  165.  
  166. More about streaming (much more) in ckermit2.upd, Section 4.20.
  167.  
  168.  2. Unprefixing NUL (0)
  169.  
  170. As of Alpha.10, C-Kermit can finally send and receive file-transfer packets
  171. in which NUL (ASCII 0) is unprefixed (no more NUL-terminated packets!).
  172. NUL-bearing packets are properly entered in the packet log, and shown
  173. "symbolically" in the debug.log.
  174.  
  175. NUL is, of course, extremely prevalent in binary files such as executables,
  176. and this has been a significant source of packet overhead.  For example, when
  177. transferring itself (the SunOS C-Kermit executable) with minimal prefixing and
  178. 9000-byte packets, we see:
  179.  
  180.   File size:                       1064960
  181.   Packet chars with 0 prefixed:    1199629  overhead = 12.65%
  182.   Packet chars with 0 unprefixed:  1062393  overhead = -0.03%
  183.  
  184. Transfer rates go up accordingly, not only because of the reduced amount of
  185. i/o, but also because less computation is done on each end.
  186.  
  187.  3. Clear-Channel Protocol
  188.  
  189. Now that C-Kermit itself is capable of sending and receiving any byte at all
  190. on a clear channel, it is, for the first time, in a position to negotiate a
  191. clear channel with the other Kermit, giving it permission to unprefix any and
  192. all characters that it knows are safe.  In general this means all but the
  193. Kermit start-of-packet character (normally Ctrl-A), Carriage Return (not only
  194. Kermit's end-of-packet character, but also treated specially on Telnet NVT
  195. links), and IAC (255, also special to Telnet).  By default, C-Kermit will say
  196. it has a clear channel only if it has opened a TCP socket.  More about this
  197. in ckermit2.upd, Section 4.19.
  198.  
  199. For now, unprefixed 0's can be sent only between two copies of C-Kermit 6.1
  200. Alpha.10, and/or MS-DOS Kermit 3.16 Alpha 1.
  201.  
  202.  4. Other Speed Improvements
  203.  
  204. The last couple Alphas had a bug in which two identical characters in a row
  205. were turned into a repeat prefix plus count (2) plus one copy of the
  206. character, i.e. two characters replaced by three.  This did not cause file
  207. damage, but it hurt performance.  This is fixed in Alpha.10.
  208.  
  209. There was also lots of under-the-hood tuning with respect to buffer sizes,
  210. i/o methods, etc, plus continued microtuning: function-call removal, loop
  211. tightening, registerizing, etc.
  212.  
  213.  
  214. WHERE TO FIND IT
  215.  
  216. C-Kermit 6.1.193 Alpha.10 is in the usual places for C-Kermit test versions,
  217. along with early drafts of all the update documentation, etc:
  218.  
  219.  ftp://kermit.columbia.edu/kermit/test/tar/
  220.    cku193src.tar.Z   Source code (UNIX and VMS), tar, UNIX compress
  221.    cku193src.tar.gz  Source code (UNIX and VMS), tar, gzipped
  222.    cku193txt.tar.Z   Other text files, tar, UNIX compress
  223.    cku193txt.tar.gz  Other text files, tar, gzipped
  224.  
  225.  ftp://kermit.columbia.edu/kermit/test/text/
  226.    Individual source and text files.
  227.  
  228.  Among the interesting text files:
  229.    ckermit2.upd    -- Detailed documentation of new features since 6.0.
  230.    ckc193.upd      -- Program edit history since 6.0.
  231.    ckuins.doc      -- UNIX installation instructions.
  232.    ckvins.doc      -- VMS installation instructions.
  233.    ckvker.bwr      -- VMS C-Kermit "beware file" (hints and tips).
  234.    ckuker.bwr      -- UNIX C-Kermit beware file.
  235.    ckcplm.doc      -- Program logic manual, API definition, etc.
  236.    alpha*.txt      -- Announcements of each Alpha test.
  237.  
  238. INDIVIDUAL ALPHA.10 BINARIES:
  239.  
  240. The binaries marked with (*) are Alpha.10, transferred using itself (in
  241. streaming mode this time) to the Kermit ftp site; the others are mostly
  242. Alpha.09 or earlier (built at sites I can't reach any more or sent in by
  243. others).
  244.  
  245.  ftp://kermit.columbia.edu/kermit/test/bin/
  246.  * ckdker-aosvsii.pr:           DG AOS/VS-II (it lives!)
  247.  * ckuker.bsd44c-hp9000_300     HP-9000/300 4.4BSD-Lite
  248.  * ckuker.bsdi2-2.1             PC, BSDI 2.1
  249.    ckuker.bsdi2-3.0             PC, BSDI 3.0
  250.  * ckuker.bsdi2-3.1             PC, BSDI 3.1
  251.  * ckuker.du32                  DEC Alpha Digital UNIX 3.2
  252.  * ckuker.du40                  DEC Alpha Digital UNIX 4.0
  253.    ckuker.hpux500wintcp         HP-9000/550 HP-UX 5.21 + TWG-TCP/IP 1.2
  254.  * ckuker.hpux80c-hp9000_385    HP-9000/385 HP-UX 8.00 (not optimized)
  255.  * ckuker.hpux80oc-hp9000_385   HP-9000/385 HP-UX 8.00 (optimized)
  256.  * ckuker.hpux90o700            HP-9000/712 HP-UX 9.05
  257.  * ckuker.hpux100o-10.20        HP-9000/715 HP-UX 10.20
  258.  * ckuker.irix51-5.3            SGI IRIX 5.3
  259.  * ckuker.irix60-6.2            SGI IRIX 6.2
  260.  * ckuker.irix62-6.2            SGI IRIX 6.2 (**)
  261.  * ckuker.linux-1.2.13-i386     PC, Red Hat Linux 1.2.13
  262.  * ckuker.next-3.1-mc68040      NeXT 68040 NeXTSTEP 3.1
  263.  * ckuker.qnx16                 QNX 4.24 16-bit
  264.  * ckuker.qnx32                 QNX 4.24 32-bit
  265.  * ckuker.rs6aix41c             IBM RS/6000 AIX 4.1
  266.  * ckuker.sco32v504net          PC, SCO OpenServer 5.0.4
  267.  * ckuker.sinix542-5.42-mips    SNI SINIX 5.4.2 MIPS (RM200)
  268.  * ckuker.solaris2x-2.4-sparc   Sun Sparc, Solaris 2.4
  269.  * ckuker.solaris2x25-2.4-sparc Sun Sparc, Solaris 2.4 + SunLink X.25
  270.  * ckuker.solaris25-2.5.1-sparc Sun Sparc, Solaris 2.5.1
  271.    ckuker.solaris25-2.6-sparc   Sun Sparc, Solaris 2.6
  272.  * ckuker.sunos41c-4.1.3-sparc  Sun Sparc, SunOS 4.1.3_U1
  273.  * ckuker.ultrix42c-4.3-mips    DECstation 5000, Ultrix 4.3
  274.  * ckuker.unixware2-2.1.1       PC, Unixware 2.1.1
  275.  * ckuker.unixware2-2.1.2       PC, Unixware 2.1.2
  276.  * ckvaker-vms62-nonet.exe:     Alpha CPU, VMS 6.2,   no TCP/IP
  277.  * ckvaker-vms62-tgv40a.exe:    Alpha CPU, VMS 6.2,   MultiNet 4.0A
  278.  * ckvaker-vms71-nonet.exe:     Alpha CPU, VMS 7.1,   no TCP/IP
  279.  * ckvaker-vms71-tgv40b.exe:    Alpha CPU, VMS 7.1,   MultiNet 4.0B
  280.  * ckvvker-vms55-nonet.exe:     VAX CPU,   VMS 5.5-2, no TCP/IP
  281.  * ckvvker-vms55-ucx20.exe:     VAX CPU,   VMS 5.5-2, UCX 2.0
  282.  * ckvvker-vms61-nonet.exe:     VAX CPU,   VMS 6.1,   no TCP/IP
  283.  * ckvvker-vms61-tgv40a.exe:    VAX CPU,   VMS 6.1,   MultiNet 4.0AX
  284.  * ckvvker-vms71-nonet.exe:     VAX CPU,   VMS 7.1,   no TCP/IP
  285.  * ckvvker-vms71-tgv40b.exe:    VAX CPU,   VMS 7.1,   MultiNet 4.0B
  286.  
  287. (**) The IRIX 6.2 version that I built on IRIX 6.2 does not support 
  288.      high serial speeds because it was not built on an O-Class machine;
  289.      the header files did contain definitions for the higher speeds.
  290.  
  291. I'd be glad to do more of these myself and spare you the trouble -- for that
  292. I'd need guest IDs on systems or configurations not listed above, to which I
  293. can Telnet from here, and which have the necessary C compilers, header files,
  294. & libraries.
  295.  
  296. Version 6.1 has not yet been checked out in OS-9, Amiga, VOS, Atari ST, or
  297. Macintosh -- volunteers?
  298.  
  299. Thanks to all of you for your help with & comments on this version so far!
  300. Please continue to beat on it and send any bug reports straight to me.
  301.  
  302. If you do succeed in building it on a platform not listed above, please let 
  303. me know the details (machine make & model, OS and version, separate TCP/IP
  304. product, if any, and the size (in bytes) of the resulting executable (for
  305. addition to the table at the end of the ckc193.upd file).  And if you have
  306. trouble, of course, let me know.
  307.  
  308. BONUS: MS-DOS KERMIT 3.16 ALPHA 1
  309.  
  310. This is a brand-new test version of MS-DOS Kermit that incorporates some of
  311. the same new features found in C-Kermit 6.1:
  312.  
  313.  . Recursive file transfers (descent through directory tree)
  314.  . \frfiles() and \frdirectories() functions
  315.  . Unprefixing 0
  316.  . Streaming
  317.  . Numerous other file-transfer speedups
  318.  . Accumulation of transfer CRC in \v(crc) variable
  319.  . Various fixes
  320.  
  321. In MS-DOS Kermit, streaming is activated by SET STREAMING ON, and deactivated
  322. with SET STREAMING OFF.  Find this version in:
  323.  
  324.   ftp://kermit.columbia.edu/kermit/test/bin/msk316.zip
  325.  
  326. containing the msk316.exe executable and msk316.doc, some brief update notes.
  327.  
  328. - Frank
  329.  
  330. P.S. If you want off this mailing list, let me know.
  331.  
  332.