[comp.os.msdos.programmer] Review of MKS toolkit

ajayshah@almaak.usc.edu (Ajay Shah) (10/26/90)

I bought MKS toolkit recently.  In case you didn't know, The
Programmer's Shop gives you a educational discount, I paid
something like $125.  The toolkit == MKS Shell + MKS Awk + a huge
bunch of /bin programs.

You can install it in several different configurations, each
implies a different extent to which it "takes over" your machine.
The minimal configuration involves leaving your setup essentially
untouched, and filling /bin with 250ish programs which you can
use at will.  The maximal configuration is for the MKS shell to
come up through config.sys.

Personally, I hate MS-DOS so I've given over my machine
completely to MKS.  The only catches derived from the fact that
I'm a 386 and the installation manual doesn't really talk much
about how to do a good job of installing on the 386.  My "best"
solution is pretty weird:

	config.sys starts with 386-max as memory manager, and uses
	it to put all device drivers into high memory.  Last, it
	starts up MKS shell as shell=

	profile.ksh (the autoexec of the MKS shell) fires a strange
	batch file called msdosstart.bat.  This chap uses the
	386-max programs maxhi and maxlo to load a large sidekick
	into high memory.  The reason this is done using a MS-DOS
	batch file is that it leaves me more memory for the SK
	notepad (i can explain further over email).


Goods:
	- Awk is fantastic. It's better than the GNU awk.
	- I don't like the kornshell (or the bourne shell) but it's a
	huge gain over command.com.  I say things like q `which td` 
	all the time and it works!
	- The /bin utilities are largely welldone and faithfully
	replicate a Unix environment, with some limitations.
	- if you have a ramdisk, he makes pipes work through the
	ramdisk, which is great for pipes faster than command.com.
	- In all, I can't live without it.

Bads:
	- the shell commandline editing mechanism is terrible,
	- Kornshell is inferior to cshell, IMHO, in many ways,
	- it takes a while to move mindsets.  Also, running DOS
	programs from MKS Shell is sometimes downright irritating.
	I sometimes fire a command.com for the purpose :-(
	- there are more bugs than I'd have expected from a
	commercial package.
	- the documentation is good but not great.

Bugs I found:
	- If you exceed the size of the commandline he can deal
	with (max = 8192 instead of microsoft's 128), he hangs.  In
	my /bin which has a huge number of progams, ls *.exe hangs
	him.
	- I tried on tar-compress-uncompress on a large file system
	and the uncompressed version was different from the
	original.  It worked correctly on a few other files, but I
	can't use it with peace of mind anymore..
	- A few other minor shell+/bin bugs.

-- 
_______________________________________________________________________________
Ajay Shah, (213)734-3930, ajayshah@usc.edu
                              The more things change, the more they stay insane.
_______________________________________________________________________________

andy@mks.com (Andy Toy) (10/30/90)

I will try to respond to Ajay's comments and the problems which he has
encountered.

In article <27731@usc> ajayshah@almaak.usc.edu (Ajay Shah) writes:
>	profile.ksh (the autoexec of the MKS shell) fires a strange
>	batch file called msdosstart.bat.  
			  ^^^^^^^^^^^^^^
That's an amazingly long name on a msdos filesystem :-)

>	This chap uses the
>	386-max programs maxhi and maxlo to load a large sidekick
>	into high memory.  The reason this is done using a MS-DOS
>	batch file is that it leaves me more memory for the SK
>	notepad (i can explain further over email).

It is typical to run a command.com batch file from the Korn Shell to
load programmes that require command.com.  However, most problems
usually stem from programmes that cannot parse pathnames that have `/'
in them so sometimes it is possible to invoke these programmes using the
full pathname using `\' from the Korn Shell and still avoid using
command.com.

	i.e.  c:\\wp\\wp.exe (double backslashes like in C)
	or    'c:\wp\wp.exe' (use single quotes)

>Goods:
[comments deleted]

Thanks for the good comments.  Now I will try to address the "Bads".

>Bads:

Note that I do not want to start a flame war about favourite shells.

>	- the shell commandline editing mechanism is terrible,

If you are used to VMS, OS/2 or DOS command-line editors then this is
true for you, but if one's fingers are already accustomed to vi or emacs 
editing commands then it is great :-)

>	- Kornshell is inferior to cshell, IMHO, in many ways,

That's each person's opinion, like you said, but I certainly prefer the
Korn Shell over the Bourne (sh), C (csh) or bourne again (bash) shells.

>	- it takes a while to move mindsets.  Also, running DOS
>	programs from MKS Shell is sometimes downright irritating.
>	I sometimes fire a command.com for the purpose :-(

Sometimes, you need to use command.com, but there may be workarounds.
Please contact toolkit@mks.com with your problems and MKS will try to
solve them.

>	- there are more bugs than I'd have expected from a
>	commercial package.

By all means, please report them to MKS so that they can be fixed.

>	- the documentation is good but not great.

If you have some suggestions then I would appreciate receiving them.
MKS is always on the lookout for good suggestions.

>Bugs I found:
>	- If you exceed the size of the commandline he can deal
>	with (max = 8192 instead of microsoft's 128), he hangs.  In
>	my /bin which has a huge number of progams, ls *.exe hangs
>	him.

You may be encountering some unusual interaction between some
programmes because I cannot duplicate this behaviour.  I get
the error message ``Argument list too long''.  Try the same command
after booting a ``clean'' machine with no device drivers or TSRs
loaded and starting `sh' from the command.com command-line.

>	- I tried on tar-compress-uncompress on a large file system
>	and the uncompressed version was different from the
>	original.  It worked correctly on a few other files, but I
>	can't use it with peace of mind anymore..

Do you have a sample file which will exhibit this problem?  I have
compressed and uncompressed large files (35 Mbytes) without problems.

>	- A few other minor shell+/bin bugs.

I suggest that you send e-mail directly to toolkit@mks.com so that technical
support can attempt to solve the problems which you are encountering.  It is
important to MKS that we provide good tools for programmers (especially 
since we use them too).
-- 
Andy Toy, Mortice Kern Systems Inc.,       Internet: andy@mks.com
  35 King Street North, Waterloo,       UUCP: uunet!watmath!mks!andy
      Ontario, CANADA N2J 2W9      Phone: 519-884-2251  FAX: 519-884-8861

feustel@netcom.UUCP (David Feustel) (10/31/90)

Andy, are the problems with M4 that I reported a year ago when it
first came out fixed yet?
-- 
David Feustel, 1930 Curdes Ave, Fort Wayne, IN 46805, (219) 482-9631

wdr@wang.com (William Ricker) (11/01/90)

I enjoyed andy@mks.com (Andy Toy)'s reply; wish I'd seen 
article <27731@usc> ajayshah@almaak.usc.edu (Ajay Shah), which probably
expired before I saw it.  (We've got expiration set too high due to disk
space :-(.)

I am a satisfied user of MKS Toolkit; I won't touch a DOS machine
without it for very long.  I'm not such a died-in-the-wool Unix bigot
that I insist on loggin in to my DOS machine, though; I use
"Configuration #1", where the DOS uses Windows3 and COMMAND.COM as the
primary command interpreters.  I typically have one KSH window open
and two COMMAND.COM windows open (one of which contains either a
Micro-Emacs or a shareware outliner on top of a spell-check TSR) as
well as my Windows Apps (like Terminal -- which I use to read
mail/news).  I'm happy typing /path/ in one window and \path\ in the
other. But then, I happily switch between VI and EMACS routinely, too.
I'm known to be weird.  I even run some MKS commands with mixtures of
/ and \ from COMMAND.COM at times ... just have to learn which is which.

If I could get a Requisition for a site license  and stuff KSH down my
colleagues' throats, I'd probably happily use Config#2 or #3, with KSH
the default command interpreter, on my PC and Config#4 on our demo
machine, just to provide home directories.  I don't expect to win this one,
since I'm the only tool-collector in the bunch. 


>> Bads:
> Note that I do not want to start a flame war about favourite shells.
I'll try to avoid fanning the embers...

>>	- the shell commandline editing mechanism is terrible,

>If you are used to VMS, OS/2 or DOS command-line editors then this is
>true for you, but if one's fingers are already accustomed to vi or emacs 
>editing commands then it is great :-)

It is compatible with KSH on SCO Unix V, which has VI and choice of two
EMAC modes.

>>	- Kornshell is inferior to cshell, IMHO, in many ways,

as a user interface or as a script language?

>That's each person's opinion, like you said, but I certainly prefer the
>Korn Shell over the Bourne (sh), C (csh) or bourne again (bash) shells.

The major advantage I saw to CSH was when I was on BSD4.2 Unix was as
a user interface shell.  The superior Job Control features of CSH were
supported by the OS.  CSH on Unixes without Job Control in the OS --
or on DOS, without process control at all -- is markedly less
outstanding.  Bourne (SH) shell was always the winner for programming
shell scripts for me, although I did program a number of scripts in
CSH which were mostly pipeline macros, which I've converted to KSH.
KSH's history editing supplies the other major capability that SH
lacked and CSH has.

>>	- it takes a while to move mindsets.

I've heard this before, but only rarely found it so.  If you find
each program's metaphor (or its programmer's mental model), and
*expect* these to be different, you may find that you automatically
"load" the relevant metaphore/model with the software.


>Sometimes, you need to use command.com, but there may be workarounds.

I have run COMMAND.COM under SH, and viceversa.  Easiest, by far, is to
run both concurrently under Windows-3, which on a 386 is a real operating
system.  When I've stopped windows (it autoexec's for me), I'll nest
command->sh->command as necessary -- and conservatively: if I'm not certain
a given command will accept args they way I want to type them, I'll
push one level of interpreter to get the one I know can feed it straight.
No :-(, just reasonable paranoia.


Of course, the clean way to get Unix commands to work where DOS programs
run is to get a 386 Unix with a good DOS BOX -- almost all do -- and run
a DOS partition on disk and as a process.  Then you get CSH and KSH
(although SCO's CSH is a little broken, last I saw; my scripts that rely
on && working as documented, like it does on 4.2Berklix and Ultrix, 
fail miserably; also, I noticed some oddities in AWK under SCO Unix V...)

>>	- there are more bugs than I'd have expected from a
>>	commercial package.

eh. I've encountered fewer Bugs in MKS's port of the unix toolkit in
three years than I've found in SCO's in three months.

>>	- the documentation is good but not great.

The documentation is well above the pitiful average of the market they
address -- unix toolkits.  Compared to a Spreadsheet's, no unix
toolkit's documentation, looks good.  So? The DIAGNOSTICS, FILES,
PORTABILITY, and LIMITATIONS sections are unexpected, useful, and
apparently correct.  To damn with faint praise, it is GREAT for a unix
toolkit.  . . .  I am not compentent to address whether the Common
Questions and Quick Overview sections are sufficient to bootstrap a
DOS user without unix experience; it might not be sufficient in volume
and organization to provide a full tutorial on the toolkit to someone who
doesn't know what they wanted it for.

>If you have some suggestions then I would appreciate receiving them.
>MKS is always on the lookout for good suggestions.

Put an introduction to SHell programming book (someone else's) on your
order sheet, and recommend it to anyone who orders an MKS Toolkit who
isn't a Unix user as well as a DOS user.

>>Bugs I found:
>>	- If you exceed the size of the commandline he can deal
>>	with (max = 8192 instead of microsoft's 128), he hangs.  In
>>	my /bin which has a huge number of progams, ls *.exe hangs
>>	him.

>You may be encountering some unusual interaction between some
[motherpie deleted]
I certainly wouldn't rely on bug reports in a mail message which mentions
using memhi/memlo & TSRs until it has been replicated without them.
[further flammable comments of my own suppressed.][

All unix derived software has the basic flaw of fixed input buffer
sizes.  MKS is not imune to or alone in this predicament.  They do at
least publish the buffer sizes in the manual (as noted above), which
is better than many.  I would certainly appreciate versions of SORT &
AWK which would accept a flag to authorize using the less efficient
GETMEM() to ensure buffers never overrun.  (I like using 'paragraph'
mode, to sort or select paragraphs -- which frequenly hover around
1k, the buffer size. in at least an earlier release of MKS toolkit.)

Cc: toolkit@mks.com  andy@mks.com ajayshah@almaak.usc.edu
-- 
/bill ricker/
wdr@wang.com a/k/a wricker@northeastern.edu
*** Warning: This account not authorized to express opinions ***

rja7m@surya.cs.Virginia.EDU (Ran Atkinson) (11/01/90)

In several years of daily use of the MKS Toolkit, I have only run into
one bug in the toolkit and when I reported that to MKS, they sent me a
fixed version of KSH at no cost within 10 days.  I would be more inclined
to believe in bug reports if they were detailed -- a posting which just
says there are lots of bugs without detailing them is less credible to me.

I found one case where there was a bad interaction between KSH and the
RAF software used to network my PS/2 to a VMS cluster.  MKS Tech Support
was really helpful to me in isolating what was happening and understanding
how their implementation expected things to work.  I eventually got the folks
who make the RAF software to acknowledge that it was their software (i.e. not
MKS's software) that had the bug.

People who are used to CSH will find using KSH awkward, but on our UNIX
systems here the KSH (ksh88b is the version) has all of the capabilities
of CSH (as distributed with 4.3-Tahoe BSD) including history and job control.
Certainly VI and EMACS users will prefer the KSH history mechanism.  
Your milage will vary.  Further discussion of shells probably belongs
in comp.unix.shells

I have no affiliation with MKS other than as an ordinary (very satisfied)
customer.