Path: utzoo!attcan!uunet!samsung!sdd.hp.com!hplabs!hpfcso!hpfelg!koren From: koren@hpfelg.HP.COM (Steve Koren) Newsgroups: comp.sys.amiga.tech Subject: Re: SKsh Version 1.4 Stack Problems with Lattice "C" Programs.. Message-ID: <13920066@hpfelg.HP.COM> Date: 8 Jun 90 14:41:17 GMT References: <00237.AA00237@theweav.cts.com> Organization: HP Elec. Design Div. -FtCollins Lines: 47 > quite used to the way it works and I'm very happy with it.. However, I do > get quite frustrated when I try to run virtually ANY "stock" program that > was compiled under Lattice "C" and the program puts up a requester saying Are you sure? All of SKsh (including the external binaries) was compiled with Lattice C. > routine before the "C" code's 'main' is even called.. I don't believe that > I am doing anything incorrect (please flame me if I've setup something > incorrectly and don't know it!).. I'm just curious if anyone else is > running into this problem.. (and yes, I'm running AmigaDos 1.3) Sigh. Assuming that you have your stack size set to something reasonable (try 10000 bytes) then I don't think you're doing anything wrong. But this is enough of a problem that I am considering documenting it in the SKsh manuals. In short, SKsh does *not* do low level command invocation. It uses arp's SyncRun() command. Now, it turns out that without Arp, invoking programs is a non-trivial thing to do on the Amiga; there are bazillions of special cases to consider; Execute() is useless, Lattice's System() crashes on BCPL programs, some methods work with programs compiled under Lattice but not Manx or vice verca, etc. Its really a horrible situation; I was quite frustrated when I ran into it. The best solution I found that works in *most* cases is the arp ASyncRun() command. However, there are still a few that have problems; I don't know if these problems are caused by ASyncRun() itself or something that the Lattice startup code is producing, but in either case, I can't do anything about it. All SKsh does is call ASyncRun() after building up a command line, and I'm pretty much 100% sure that this command line is being built correctly. Just out of curiousity, what are the programs you are having problems with? I haven't seen this problem with more than maybe 1% of all programs. Perhaps this situation will get better in AmigaDos 2.0 if there is a *real* way to invoke *all* programs that is supported by Commodore. Until then, I'm more or less stuck, unless I do alot of really low level mucking around that I really don't want to do. - steve PS - Just a brief note to all those who were asking for ARexx support in SKsh - its implemented and will appear in 1.5. Its asynchronous, too - you don't have to type a command to SKsh to get it to listen to Arp - it will do that anytime that is not doing something else.