[comp.sys.amiga.tech] SKsh deficiencies

deven@rpi.edu (Deven T. Corzine) (03/07/90)

Okay, you asked for it...

I said:

Deven> I exit an instance of SKsh, it usually frees about 120-150K of
Deven> memory, and that's with the 70K executable RESIDENT.  I don't
Deven> consider such excessive use of resources to be justified, so I
Deven> have switched back to [AShell...]

On 5 Mar 90 23:15:41 GMT, koren@hpfelg.HP.COM (Steve Koren) said:

Steve> That is bigger than the number I get.  On my system, the
Steve> overhead of an additional SKsh is 48944 bytes if I load only
Steve> the .skshrc file (most of that memory is taken up by hash
Steve> tables and whatnot).  Even when I load my .skshinit file (which
Steve> is big) and the entire Stuff.sksh file, the overhead is still
Steve> only 60952 bytes.  Sure you're not measuring the overhead of
Steve> the addition window?

Yes, I am counting the window, but that's not the point.  50-60K+
overhead for a single shell invocation is utterly insane.  Yes, it's
more functional, but that is simply TOO MUCH overhead.

Steve> That alone consumes some memory, but it would anyway.  You're
Steve> absolutely right, though. SKsh is not for 512K systems.

This was on a 1 Meg system.  I might find the overhead acceptable for
a system with 3 Meg or more, but NOT for 1 Meg or less.

Steve> I can't really make the executable much smaller - for what it
Steve> does, its not bad.  It has comparible functionality to the Un*x
Steve> version, which, depending on your Un*x, is usually over twice
Steve> as big.  I will eventually release a tiny_sksh which has
Steve> reduced memory requirements.

Don't bother comparing to Unix.  Yes, it's smaller than a Unix
version.  No, it doesn't give me reason to use it.  Bear in mind that
the Amiga is NOT a Unix system, and when you use the calls for Unix
compatibility which the compiler provides, you're adding a LOT of
unnecessary overhead, because all that code gets linked into the
executable.  Also, if you're using lex and yacc or equivalents, then
you're adding a lot of overhead for the parser as well.  (but it is a
more reliable parser that way, I'm sure.)

Deven> There are several other major reasons I stopped using SKsh --
Deven> it is EXTREMELY slow, and it also takes a LOT of memory, and it
Deven> doesn't give useful error messages -- only cryptic numbers.
Deven> Granted, I haven't tried SKsh 1.3, but it seems unlike that it
Deven> improves on the stack, memory and speed problems.

Steve> You sure you're using SKsh?  It does tell you more than the
Steve> "cryptic number":

Steve>    blah: can't change to directory (8)

Steve> compare that to "Can't find blah" for the AmigaDos command or
Steve> "Object Not Found blah" in the Dillon shell.  They all seem
Steve> about the same to me.

Yes, I'm sure I'm using SKsh.  A more pertinent example:

more <file>
more: unable to execute program (24)

Great.  Real useful.  The important part is a cryptic number.  In both
cases, SKsh tells me THAT it can't do what I asked.  In neither
example did it let on WHY.  I'm forced to guess.  That more example
was for when more was resident with ARP's ARes.  But SKsh ignores the
resident list.  (1.2 SKsh)  Another reason I stopped using it.

Steve> If you want more error messages, or different wording, send me
Steve> mail with specific suggestions.  It is all open to change.  I
Steve> have been toying with the idea of loading all messages from a
Steve> disk file so they could be customized as you wish.

I want to know WHY a command failed.  If you MUST use a magic number
instead of a text message, then use the AmigaDOS error numbers!  At
LEAST then I can look it up, or possibly recognize it.  Instead you
are using some magic number which isn't even documented.  I don't find
that acceptable behavior for so basic a tool as the shell.

Steve> What is too slow?  If you mean the external commands (wc, etc),
Steve> they are getting much (5 to 10 x ) faster in 1.4.  The script
Steve> language is much slower than a compiler, of course, but again
Steve> it doesn't do too bad when compared with Un*x on a much faster
Steve> processor.  Interactively, it seems about as fast to me as
Steve> other Amiga shells for the same operation.  If you have
Steve> *specific things which you wish were faster, please let me
Steve> know, and I'll see what i can do.  There is some penalty to be
Steve> expected since SKsh is doing much more complex things than
Steve> other shells when you type in a command, but it should be
Steve> barely noticable.

"Simple things should be simple and complex things should be
possible."  I don't want it to take forever to do simple things.  And
especially, startup and exit take forever.

Steve> [ How fast is significantly faster? ]

Starting an AShell with everything needed resident or on the ramdisk
takes under half a second.  Starting an SKsh under identical
conditions takes something more on the order of 10 seconds.  Exiting
AShell is virtually instant, while exiting SKsh takes at least 5
seconds usually, and often yells about fatal errors on its way out.

Steve> Unfortunately, I didn't save the numbers. I seem to remember
Steve> something around 30-50%, but 1) that's from memory, and 2) it
Steve> will probably depend a whole bunch on the size of block you
Steve> request, memory fragmentation, etc.

All I know is that SKsh is SLOW and LARGE.  It doesn't add enough
functionality to justify my using it, and it inhibits me too much
anyhow.  (not supporting resident programs, etc.)

I want a shell which is resident and reentrant, code size uner 10K if
possible, 20K max, additional memory overhead minimal (<10K when
"idle", including stack), fast startup and faster exit.  I want some
added functionality in the shell (cd, echo, cp, etc builtin) along
with full resident support and concurrent piping available using
either ConMan's PIP: or C-A's PIPE:.  In other words, I want a shell I
can USE.

When SKsh was first announced, it sounded promising, but that promise
wasn't borne out in practice.  I admit that I haven't attempted
installing SKsh 1.3, but SKsh is now in a similar mental category with
Dillon's "csh" and variations thereof.  Well, not quite.  But almost
as useless to me.

Too bad I haven't had time to write a shell myself.

Deven
-- 
Deven T. Corzine        Internet:  deven@rpi.edu, shadow@pawl.rpi.edu
Snail:  2151 12th St. Apt. 4, Troy, NY 12180   Phone:  (518) 274-0327
Bitnet:  deven@rpitsmts, userfxb6@rpitsmts     UUCP:  uunet!rpi!deven
Simple things should be simple and complex things should be possible.

dlj@hpfcso.HP.COM (Dave Jobusch) (03/07/90)

	Deven has an interesting way with constructive criticism...

>/ hpfcso:comp.sys.amiga.tech / deven@rpi.edu (Deven T. Corzine) / 12:28 pm  Mar  6, 1990 /
>
>Okay, you asked for it...
>
> .....
  bitch and moan, bitch and moan...
> .....
>

	Mr. Corzine, please do us a favor and quit whining, and offer
	solutions to the problems you perceive rather than flames.
	Frankly, I'm getting tired of reading drivel like yours in
	c.s.a. from people who haven't contributed a damn thing to
	the Amiga community, yet feel compelled to flame about 
	all that free software you've got from the net.

	And, yes, >I< have software on a couple Fish disks. How 
	about you?

>
>Too bad I haven't had time to write a shell myself.
>

	I'd like to see it. I'm sure _everyone_ would think it was perfect.

>Deven
>-- 
>Deven T. Corzine        Internet:  deven@rpi.edu, shadow@pawl.rpi.edu
>Snail:  2151 12th St. Apt. 4, Troy, NY 12180   Phone:  (518) 274-0327
>Bitnet:  deven@rpitsmts, userfxb6@rpitsmts     UUCP:  uunet!rpi!deven
>Simple things should be simple and complex things should be possible.
>----------

	Grrrr.......

+----------------------+-----------------------------------------------------+
|          ___         |       David L. Jobusch                              |
|         /  /         |       Distributed Systems Suppport                  | 
| HEWLETT/hp/PACKARD   |       3404 East Harmony Road  MS#68                 | 
|       /__/           |       Ft. Collins, CO 80525                         | 
|  Fort Collins Site   |       Internet: dlj@hpfcla.hp.com                   |
|Information Technology|                                                     |
+----------------------+-----------------------------------------------------+

lphillips@lpami.wimsey.bc.ca (Larry Phillips) (03/09/90)

In <683@xdos.UUCP>, doug@xdos.UUCP (Doug Merritt) writes:
>
>As to the basic issue: while it's true that it's in good form to
>be appreciative of people's efforts in the way of free software,
>some go too far with this. There's no reason in the world not to
>discuss both the good *and* the bad points of software, whether it's
>a nobly donated effort or not. Critiques are an important part of
>the design/implement/release/enhance cycle (or should be). See
>Edsger Dijkstra's classic ego-less programming paper. It's not doing
>these (admittedly noble) authors any favors to stick up for their
>ego's by tyring to suppress all critiques.

On the other hand, a posting that starts out with 'OK, you asked for it', and
goes downhill from there, is likely to be viewed as a mindless flame,
detracting from any valid content the posting might have. I haven't read
anything from him since that posting, because I summarily delete it when I see
his name.

-larry

--
Entymology bugs me.
+-----------------------------------------------------------------------+ 
|   //   Larry Phillips                                                 |
| \X/    lphillips@lpami.wimsey.bc.ca -or- uunet!van-bc!lpami!lphillips |
|        COMPUSERVE: 76703,4322  -or-  76703.4322@compuserve.com        |
+-----------------------------------------------------------------------+

deven@rpi.edu (Deven T. Corzine) (03/09/90)

On 7 Mar 90 15:57:58 GMT, dlj@hpfcso.HP.COM (Dave Jobusch) said:

Dave> Deven has an interesting way with constructive criticism...

Much as you have a way with sarcasm.

Dave> Mr. Corzine, please do us a favor and quit whining, and offer
Dave> solutions to the problems you perceive rather than flames.

I can't offer solutions on SKsh specifically, as I don't have the code
available...

Dave> Frankly, I'm getting tired of reading drivel like yours in
Dave> c.s.a. from people who haven't contributed a damn thing to the
Dave> Amiga community, yet feel compelled to flame about all that free
Dave> software you've got from the net.

Ah, you want a "good old boys" network.  How quaint.  If you're not a
lodge member, clearly you couldn't possibly have any idea what you're
talking about.

Dave> And, yes, >I< have software on a couple Fish disks. How about
Dave> you?

Not yet.  Getting software on a Fish disk is hardly a glorious
accomplishment, anyhow.  Makes me feel a little like old Orson Wells
mumbling about no wine before its time.  But I am disinclined to
release poor code.  For example, a few days ago, I wrote a GLP (grungy
little program) to read in a library and split it into object files. 

Specifically, I wanted to break up amiga.lib into its component
modules.  Partly, so I could disassemble the few routines in it.
(such as BeginIO and NewList which I had earlier recreated from the
RKM's...)  More importantly, I wanted to be able to create a smaller
library with the same functionality of amiga.lib, but without the stub
routines, so I wouldn't have to scan the whole thing when the compiler
is using #pragma's to generate calls to ROM routines.

Unfortunately, I can't just use the "stdio" modules from amiga.lib
without the stub routines, because they depend on those stub routines,
as well as certain global variables.  So, I need to rewrite anything I
want.  Fine, so I have a program I wrote to extract object modules
from a library (oml chokes horribly on amiga.lib, you see) and a bunch
of modules, most of which I can't use separately anyhow.  (The _LVO
offsets are in modules I can save and plug in another library, should
I need them.)

But I don't care to release this program as it stands.  It is slow,
uses unbuffered I/O (4 bytes at a time) and not very comprehensive.
It fails on a library generated by oml, since such a library uses a
hunk type which is not documented in the AmigaDOS manual.  (presumably
an indexing hunk...)  It is merely a quick & dirty hack to take a
closer look at amiga.lib and it has served its intended purpose.

Could I get it put on the Fish disks?  Probably.  But I won't do so as
it stands.  *I* don't consider it good enough that I would want to
have it distributed with my name on it.  I could put about 3-5 times
the effort into it than I already have, and create a more professional
program which I would release.  But what I have now is just a hack.
A simple hack, at that.  If you want it, you could surely write it
yourself, right?

Deven> Too bad I haven't had time to write a shell myself.

Dave> I'd like to see it. I'm sure _everyone_ would think it was perfect.

I don't claim that _everyone_ would think it would be perfect.  It is
NOT possible to please EVERYONE.  But if I write a shell and release
it, then it will be _good_, in *my* opinion.  If everyone agrees,
great.  If not, it won't stop me from using it.  Considering what a
following Dillon's csh kludge has, I think I could find a lot of
people who would like the kind of shell I would (and likely will)
write.

Deven> Simple things should be simple and complex things should be possible.
[from my .sig]

Dave> Grrrr.......

You have a problem with that philosophy?

p.s. You say I should do something to enrich the Amiga community or
shut up.  Well, what do people want?

Deven
-- 
Deven T. Corzine        Internet:  deven@rpi.edu, shadow@pawl.rpi.edu
Snail:  2151 12th St. Apt. 4, Troy, NY 12180   Phone:  (518) 274-0327
Bitnet:  deven@rpitsmts, userfxb6@rpitsmts     UUCP:  uunet!rpi!deven
Simple things should be simple and complex things should be possible.

bigbroth@babcock.cerc.wvu.wvnet.edu (James M. Coleman) (03/09/90)

From article <DEVEN.90Mar8201819@netserv2.rpi.edu>, by deven@rpi.edu (Deven T. Corzine):
> 
> 
> p.s. You say I should do something to enrich the Amiga community or
> shut up.  Well, what do people want?

Since you seem to have the time to complain but claim you do not have the
time to write code worthy of being released, shut up.

Sorry, but you asked and that's what I want.

My vote is for the most worthy shell to date SKsh!
 
                                        Jim Coleman
                                  bigbroth@cerc.wvu.wvnet.edu
                                                  

peter@sugar.hackercorp.com (Peter da Silva) (03/09/90)

In article <DEVEN.90Mar8201819@netserv2.rpi.edu> deven@rpi.edu (Deven T. Corzine) writes:
> p.s. You say I should do something to enrich the Amiga community or
> shut up.  Well, what do people want?

I want you to spend less time on News and more time writing a UNIX emulator.
-- 
 _--_|\  Peter da Silva <peter@sugar.hackercorp.com>.
/      \
\_.--._/ I haven't lost my mind, it's backed up on tape somewhere!
      v  "Have you hugged your wolf today?" `-_-'

doug@xdos.UUCP (Doug Merritt) (03/10/90)

In article <419@cerc.wvu.wvnet.edu.edu> bigbroth@babcock.cerc.wvu.wvnet.edu (James M. Coleman) writes:
>Since you seem to have the time to complain but claim you do not have the
>time to write code worthy of being released, shut up.
>
>Sorry, but you asked and that's what I want.

Who cares? What *most* of us want is for the flame wars to stay off
the net.

Cool it.
	Doug

P.S. It takes very little time to post (whether complaining or not);
it takes a lot of time to polish code to release for general use. As
you should know.
-- 
Doug Merritt		{pyramid,apple}!xdos!doug
Member, Crusaders for a Better Tomorrow		Professional Wildeyed Visionary

doug@xdos.UUCP (Doug Merritt) (03/10/90)

In article <DEVEN.90Mar8201819@netserv2.rpi.edu> deven@rpi.edu (Deven T. Corzine) writes:
:
:Ah, you want a "good old boys" network.  How quaint.  If you're not a
:lodge member, clearly you couldn't possibly have any idea what you're
:talking about.

If it'll stop this inane flaming, I nominate Deven for the old boys
network. Good, we're all on equal footing now, let's get back to
business.

:Dave> And, yes, >I< have software on a couple Fish disks. How about
:Dave> you?
:
:Not yet.  Getting software on a Fish disk is hardly a glorious
:accomplishment, anyhow.  Makes me feel a little like old Orson Wells
:mumbling about no wine before its time.  But I am disinclined to
:release poor code.

Absolutely agree. Strangely enough, there's nothing in the news.announce.
newusers guidelines that says anything about Fish disk releases being
a prerequistie to posting.

:For example, a few days ago, I wrote a GLP (grungy
:little program) to read in a library and split it into object files. 

Yep. I wrote essentially the same program last month, and didn't
send mine to a Fish disk, either, for the same reason (it was a
grungy hack). If you ask me, there's already too many grungy
hacks on Fish disks (along with, I admit, a lot of really superb
software).

As to the basic issue: while it's true that it's in good form to
be appreciative of people's efforts in the way of free software,
some go too far with this. There's no reason in the world not to
discuss both the good *and* the bad points of software, whether it's
a nobly donated effort or not. Critiques are an important part of
the design/implement/release/enhance cycle (or should be). See
Edsger Dijkstra's classic ego-less programming paper. It's not doing
these (admittedly noble) authors any favors to stick up for their
ego's by tyring to suppress all critiques.
	Doug
-- 
Doug Merritt		{pyramid,apple}!xdos!doug
Member, Crusaders for a Better Tomorrow		Professional Wildeyed Visionary