Date: Mon, 14 Aug 1995 13:44:01 -0700 Reply-To: Macintosh Scripting Systems Sender: Macintosh Scripting Systems From: "John W. Baxter" Subject: Re: IdleTime INIT crashing 6100/60 Comments: To: Macintosh Scripting Systems It would be helpful if someone who is using the IdleTime init on a PowerMac successfully would say so. It's entirely possible that it won't work (it patches traps, and as far as I know hasn't been vetted for PowerMac). On the other hand, there has been a year and a quarter of opportunity for someone to have reported a problem before now, and I don't remember any such reports. I don't run IdleTime (I don't need it, and it patches traps: therefore I don't run it). --John -- It's MY fonts folder, not Adobe's or Microsoft's! jwbaxter@pt.olympus.net (John W. Baxter) Port Ludlow, WA Date: Mon, 14 Aug 1995 22:28:36 -0700 Reply-To: Macintosh Scripting Systems Sender: Macintosh Scripting Systems From: Doug Baron Subject: Re: IdleTime INIT crashing 6100/60 Comments: To: Macintosh Scripting Systems At 1:44 PM 8/14/95, John W. Baxter wrote: >It would be helpful if someone who is using the IdleTime init on a PowerMac >successfully would say so. Full-time. Doug Date: Wed, 16 Aug 1995 12:34:24 -0400 Reply-To: Macintosh Scripting Systems Sender: Macintosh Scripting Systems From: Mike Alexander Subject: Re: IdleTime INIT crashing 6100/60 Comments: To: Macintosh Scripting Systems >Date: Mon, 14 Aug 1995 22:28:36 -0700 >From: Doug Baron >Subject: Re: IdleTime INIT crashing 6100/60 > >At 1:44 PM 8/14/95, John W. Baxter wrote: >>It would be helpful if someone who is using the IdleTime init on a PowerMac >>successfully would say so. > >Full-time. > >Doug I've been running it on an 8100 too, and it doesn't patch any traps. It installs a Gestalt selector and an jGNEFilter, but no trap patches. Mike Alexander Internet: Mike.Alexander@umich.edu University of Michigan America Online: MAlexander ITD - Research Systems AppleLink: UMICH Date: Wed, 16 Aug 1995 15:01:39 -0700 Reply-To: Macintosh Scripting Systems Sender: Macintosh Scripting Systems From: "John W. Baxter" Subject: Re: IdleTime INIT crashing 6100/60 Comments: To: Macintosh Scripting Systems >>Date: Mon, 14 Aug 1995 22:28:36 -0700 >>From: Doug Baron >>Subject: Re: IdleTime INIT crashing 6100/60 >> >>At 1:44 PM 8/14/95, John W. Baxter wrote: >>>It would be helpful if someone who is using the IdleTime init on a PowerMac >>>successfully would say so. >> >>Full-time. >> >>Doug > >I've been running it on an 8100 too, and it doesn't patch any traps. It >installs a Gestalt selector and an jGNEFilter, but no trap patches. Thanks, Mike and Doug. So it would seem likely that some other jGNEFilter installer on the machine where IdleTime is accused of causing crashes is conflicting somehow. [I now forget whose machine that was.] And it's good to know that IdleTime uses the jGNEFilter: if I ever *need* IdleTime, I'll feel better about installing it. --John -- It's MY fonts folder, not Adobe's or Microsoft's! jwbaxter@pt.olympus.net (John W. Baxter) Port Ludlow, WA Date: Thu, 17 Aug 1995 03:00:59 -0700 Reply-To: Macintosh Scripting Systems Sender: Macintosh Scripting Systems From: Dave Ely Subject: Re: IdleTime INIT crashing 6100/60 Comments: To: Macintosh Scripting Systems Comments: cc: "John W. Baxter" John, > It would be helpful if someone who is using the IdleTime init on a > PowerMac successfully would say so. > It's entirely possible that it won't work (it patches traps, and as > far as I know hasn't been vetted for PowerMac). On the other hand, > there has been a year and a quarter of opportunity for someone to have > reported a problem before now, and I don't remember any such reports. The IdleTime INIT (v1.0, dated Nov 1993) looks mostly safe, but has a couple of problems I noticed a while back and which ought to be fixed (I've just disassembled the INIT I have lying around so current versions could be different). These could (possibly) be causing part of the problems people are seeing. First, it's both a head and tail patch which it doesn't need to be (all it really needs to do is monitor... let downstream patches do what they want). The two problems I see are both caused because it wants to patch both ends... jGNEFilters need to be really defensive because there are so many which do silly things. It doesn't make sure it preserves A1 for any patches which are wrapped around it and make dumb assumptions about being able to look at the event pointer at any time. Second, it makes a stack copy of the input boolean state before calling downstream filters, but ignores the return value and pops the value for D0 from the stack. Since some filters do it right and some wrong (e.g. this one... the stack is supposed to be passed downstream, D0 is passed upstream... to 'fix' things you need to know both values and adjust accordingly). I think it's also pushing and pulling a long, which might be wrong (should be a short value -- could be wrong there), around the downstream calls. Either of these slight idiosyncrasies could cause a problem, although I would doubt they'd cause crashes all by themselves. The more likely case is that a combination of this patch with others which are doing even more bizzare things is causing the crash. Filters are strange beasts... and here's a strange story to back that up. I had a filter once which was off by a few bytes (I think it ate 4 bytes -- can't remember now) on it's return. On any '030 system (mainstream at the time), it could work for a couple of days before causing a crash. When run on a 68000 system and it would crash almost immediately. It took me much longer than it should have before I noticed I had a stack imbalance which for whatever reason was _not_ causing an immediate crash on newer systems. These stupid things happen from time to time, and filters tend to be one place where one's system makes them harder to find at times. Anyway, if someone has the sources for IdleTime (Dave, Doug or John?), please send them my way and I'll take care of the problems I've mentioned (if you'd like). __________________________________________________________________ Dave Ely ely@metrowerks.com Metrowerks, Inc. Date: Thu, 17 Aug 1995 06:34:37 -0700 Reply-To: Macintosh Scripting Systems Sender: Macintosh Scripting Systems From: Dave Winer Subject: Re: IdleTime INIT crashing 6100/60 Comments: To: Macintosh Scripting Systems >Anyway, if someone has the sources for IdleTime (Dave, Doug or John?), >please send them my way and I'll take care of the problems I've >mentioned (if you'd like). That would be Doug. And I think it's great that you're willing to adopt the IdleTime INIT. It's an incredibly useful thing, I want to include it with Clay Basket (it actually *is* included with Clay Basket!). Knowing how long it's been since the user did anything is major stuff. Dave Date: Thu, 17 Aug 1995 11:23:39 -0700 Reply-To: Macintosh Scripting Systems Sender: Macintosh Scripting Systems From: "John W. Baxter" Subject: Re: IdleTime INIT crashing 6100/60 Comments: To: MacScripting@Dartmouth.EDU >Anyway, if someone has the sources for IdleTime (Dave, Doug or John?), >please send them my way and I'll take care of the problems I've >mentioned (if you'd like). Dave, Many, many thanks for taking a look at IdleTime (I've never written one of those filters, so I'm both innocent of causing problems, and unable to fix them). I don't think I have the source (which is much the same as not having it). --John -- It's MY fonts folder, not Adobe's or Microsoft's! jwbaxter@pt.olympus.net (John W. Baxter) Port Ludlow, WA Date: Thu, 17 Aug 1995 15:57:24 -0700 Reply-To: Macintosh Scripting Systems Sender: Macintosh Scripting Systems From: Doug Baron Subject: Re: IdleTime INIT crashing 6100/60 Comments: To: Macintosh Scripting Systems At 3:00 AM 8/17/95, Dave Ely wrote: >The IdleTime INIT (v1.0, dated Nov 1993) looks mostly safe, but has a >couple of problems I noticed a while back and which ought to be fixed... Dave, You're right on here. The INIT isn't actually trying to "tail patch". It just made the poor choice of JSR'ing to the next filter instead of setting up the stack correctly and RTS'ing. It doesn't intend to do any further processing after it let's the next one run. I'd be happy to send you the source if you have time to make it right. Watch for it in private email. Doug