I'm talking specifically about Pymacs, but this would be useful to know if anything like that happens in other circumstances.
The problem: when something goes wrong in Pymacs, it will no matter what try to restart itself, and especially so when it fails to start at all. But somehow it is adding a hook to run before any file (not necessary in Python mode) should be saved or closed. So, what happens - it becomes impossible to shut down Emacs in a "nice" way - I can only terminate the process from shell, because Pymacs would enter an infinite loop: when saving a file - it would try to restart itself, fail and prevent the file from being saved - since it failed, it'll prompt to restart - no matter if I answer yes or no to restarting it, it will fail and ask again to restart itself.
M-x unload-feature
doesn't help because it can't unload it (because .emacs loads it). I'm not sure at all by the way if the unload-feature
can ever do anything meaningful :| I was trying to evaluate (setq kill-buffer-hook nil)
but this didn't seem to help either. Perhaps there are some other hooks? Is there a way to force unload-feature
to actually do something? In this situation I'd prefer save file and crash, then infinite loop and no crash, but file not saved situation.