Re: Proposed change to behaviour of "not None"

Kirill Smelkov <[email protected]> Fri, 22 Aug 2008 11:47:36 +0400
Newsgroups gmane.comp.python.pyrex,gmane.comp.python.cython.devel
Organization MNS
Message-ID <[email protected]>
В сообщении от Четверг 21 августа 2008 Greg Ewing написал(a):
> Lisandro Dalcin wrote:
> 
> > I know, I can (and I do) use 'Type arg is not
> > None' in argument lists, but I never liked it.
> 
> Speaking of that, I've been thinking for a while now
> about making "not None" the default, and requiring
> "or None" to specify that None is an acceptable
> parameter value.
> 
> Having seen a number of pieces of Pyrex code that
> were susceptible to being crashed because "not None"
> wasn't used where it should have been, I think
> this would be a safer default. The change may
> break some existing code, though.
> 
> What do people think?

I'm +1 for having "not None" the default.

I was always wondering why was it the vice versa when I was stydying Pyrex --
for internal functions this was creating additional overhead and additional
inconvenience, and I'd better put "or None" explicitely where it makes sence
-- for high-level functions who interface with Python level.


Bearing backward compatibility in mind, maybe let's create a compile option to
switch this behaviour? And we'll remove old behaviour step-by-step:

o first declare there is new "not None" by default with explicit switch, saying
  it will be the default in the next release.
o then make default "not None" default and allow users to switch back with
  cython/pyrex option, but say this old behaviour will be removed in the next
  release
o remove old behaviour in the next release.

Sounds reasonable?

Thanks,
Kirill.

_______________________________________________
Pyrex mailing list
[email protected]
http://lists.copyleft.no/mailman/listinfo/pyrex