The main reason for this is that Pike has a very small user base, and invalidating lots of old code might mean that it will never work again, and it will scare away lots of people from Pike. Especially if the change is between 7.6 and a future 7.8.
Personally I have no real problem with this specific change, if it only throws exceptions for _really_ exceptional situations, such as permission errors etc.
Usually this makes it easier for the user of the pike-application to debug (see also: The changes I made to the output of the master when failing to read scripts etc).
Well, if it *doesn't* invalidate a lot of old code I don't have a problem with it, of course. :)
But I'm still againt starting to use exceptions before there is a useful exception system with syntactic sugar. Preparing is ok, though. But forcing programmers to use catch is not the way to go.
There is no way I'm letting that pass into 7.8. If anyone wants to break stuff do it in Pike 8 where we already have such thing scheduled.
It wouldn't invalidate a lot of old code - see my argument and earlier discussion. If anyone thinks otherwise then let's hear a counter argument.
Again, the intention with this change is _not_ to force people to add catches. That since it throws only errors that one typically doesn't want to handle anyway. These are bail-out-and-die errors we're talking about, just like out-of-memory etc. I.e. the kind of errors that one usually handles in a catch-all clause at the top of the thread, as the master already does.
An improved exception system is therefore not a prerequisite. If these were errors needing catching, I wouldn't accept this change any more than Zino, new fancy exception system or not.
So imo it's not much of a compatibility issue. It is a little one, and that's why I made the change in the development version only. But it's way smaller than e.g. the continually better type checking (which is great, btw). Really, there are many a lot more incompatible things in 7.7 than this. Several libraries, believed to be unused, have been dropped completely, for instance.
Still, it would probably be prudent to add #pike 7.6 compatibility versions. I could do that.
Oh, I already did. Good.
Thanks, then I'm not very worried anymore. (But a good exception system would be nice anyway.)
pike-devel@lists.lysator.liu.se