RMTidyX
Rick Murray (539) 13840 posts |
I have had, since the dawn of time, a little utility called “RMTidyX” which looks for zombie modules and gets rid of them. If you have ever had a dead module that trying to kill gives to “Incarnation not found”, then this is the utility you need to fix that. The original was short and sweet, so I’m guessing it may have been a Gerph creation. I patched mine for 26/32 ages ago. But noticed that it fails on high vector systems. In lieu of another patch, I decided to simply poke around RISC OS’ ModHand to see what might be going wrong. I’ve not spotted any cause for the zombie modules – clearly an error being raised at a specific part of the finalisation is aborting unlinking the module leaving the zombie behind. However I figured out how to detect a zombie module, and how to bludgeon it out of existence. Thus, I present you the alpha version of my version of RMTidyX. If you wish to try it, you’ll find it at http://heyrick.ddns.net/files/rmtidyx.zip (unless my server is off due to thunderstorm). I say “alpha”. It is supposed to work correctly on high vector systems (or, rather, be agnostic) and it is supposed to work on 26 bit systems. However I have not tested it on anything other than low vector RISC OS 5.23, in which case it works as expected. It is a Utility. Stick it in your Library (that’s usually $.!Boot.Library). The code is licenced EUPL v1.1 (only), sources are supplied, and there is extensive commenting if you’re interested in looking “under the hood”. If you should have need of this utility, feedback would be appreciated. |
Chris Evans (457) 1614 posts |
Anyone know of a repeatable way to get an orphaned module? |
Rick Murray (539) 13840 posts |
Bizarre crash during finalisation. It’s one of those “this shouldn’t happen” type errors. ;-) |