This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author njs
Recipients Guido.van.Rossum, Mark.Shannon, benjamin.peterson, eltoder, gvanrossum, larry, lemburg, ncoghlan, njs, pitrou, rhettinger, serhiy.storchaka, vstinner
Date 2015-09-03.09:28:42
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1441272523.27.0.228040740293.issue24912@psf.upfronthosting.co.za>
In-reply-to
Content
Since I know there's a lot of text here for people to process, here's an attempted TL;DR (with inspiration from Serhiy's msg249495):

There were three parts to the original change:
1) Bug fixes for typeobject.c
2) Enabling __class__ assignment for module objects
3) Enabling __class__ assignment for other objects, in particular all non-heap types, including 'int', 'str', etc.

Everyone agrees we want to revert (3), which is the bit that has caused all the problems. And I don't think anyone has argued for reverting (1) after learning that it is separable from the rest. So the main question still under discussion is whether we want to revert (2)+(3), or just revert (3) alone.

(Either of these is easy to do; the attached "v2" patch implements the revert (3) alone option.)

My position:

When making changes for rc3 (!), we should definitely revert any functionality that is breaking things, and should definitely not revert any functionality that isn't.

The (3) change obviously meets this bar, so we'll revert it. But when it comes to module objects specifically -- the (2) change -- then (AFAICT) no-one has identified any problem with the functionality itself, even though it's been specifically discussed and reviewed multiple times over the last year, and been enabled all the way through the pre-release with explicit tests provided, etc. The only argument I see raised against it here is that there might be some more-or-less-equivalent but maybe-more-aesthetic way of accomplishing the same thing, so maybe we should revert it now so we can get in another round of bikeshedding. And if this had been raised a few months ago I'd have been sympathetic... but IMO the rc3 release is too late to be churning functionality based purely on aesthetics, so I think we should revert (3) alone, while leaving (1)+(2) in place.
History
Date User Action Args
2015-09-03 09:28:43njssetrecipients: + njs, lemburg, gvanrossum, rhettinger, ncoghlan, pitrou, vstinner, larry, benjamin.peterson, Mark.Shannon, eltoder, serhiy.storchaka, Guido.van.Rossum
2015-09-03 09:28:43njssetmessageid: <1441272523.27.0.228040740293.issue24912@psf.upfronthosting.co.za>
2015-09-03 09:28:43njslinkissue24912 messages
2015-09-03 09:28:42njscreate