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