classification
Title: Hashable memoryviews
Type: enhancement Stage: resolved
Components: Interpreter Core Versions: Python 3.3
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: eric.snow, haypo, meador.inge, ncoghlan, neologix, pitrou, python-dev, skrah
Priority: normal Keywords: patch

Created on 2011-11-15 22:20 by pitrou, last changed 2012-01-25 17:44 by skrah. This issue is now closed.

Files
File name Uploaded Description Edit
memhash.patch pitrou, 2011-11-15 22:20 review
Messages (10)
msg147714 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2011-11-15 22:20
This patch allows hashing of memoryviews, as discussed on python-dev.
msg147811 - (view) Author: STINNER Victor (haypo) * (Python committer) Date: 2011-11-17 16:50
Does memory_hash() reject non-contiguous memory?

_Py_HashBytes() might be reused by unicode_hash() for PyUnicode_1BYTE_KIND.
msg147812 - (view) Author: STINNER Victor (haypo) * (Python committer) Date: 2011-11-17 16:51
Except these two minor nits, the patch looks good to me.
msg147813 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2011-11-17 16:57
> Does memory_hash() reject non-contiguous memory?

It should, since it checks the strides array.

> _Py_HashBytes() might be reused by unicode_hash() for PyUnicode_1BYTE_KIND.

I don't really see how unicode hashing should be related to bytes
hashing (even though apparently an (outdated?) test checks for that).
msg147814 - (view) Author: Charles-Fran├žois Natali (neologix) * (Python committer) Date: 2011-11-17 17:55
I'm not sure that the "register" storage class specifier is still relevant with modern compilers: I'm pretty sure gcc ignores it unless -O0, and I think I've read somewhere Microsoft's compiler ignores it too.
msg147815 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2011-11-17 18:00
> I'm not sure that the "register" storage class specifier is still
> relevant with modern compilers: I'm pretty sure gcc ignores it unless
> -O0, and I think I've read somewhere Microsoft's compiler ignores it
> too.

I don't think so either. I was lazily moving the original code, but I
could remove those bits.
msg148080 - (view) Author: Roundup Robot (python-dev) Date: 2011-11-21 19:54
New changeset 215690b782f8 by Antoine Pitrou in branch 'default':
Issue #13411: memoryview objects are now hashable when the underlying object is hashable.
http://hg.python.org/cpython/rev/215690b782f8
msg148082 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2011-11-21 19:57
Fixed, thanks.
msg151451 - (view) Author: Stefan Krah (skrah) * (Python committer) Date: 2012-01-17 12:59
Reopening as a reminder that it isn't fixed yet in http://hg.python.org/features/pep-3118 .
msg151955 - (view) Author: Stefan Krah (skrah) * (Python committer) Date: 2012-01-25 17:44
Done in: http://hg.python.org/features/pep-3118/rev/508d5e3c579c
History
Date User Action Args
2012-01-25 17:44:39skrahsetstatus: open -> closed
resolution: remind -> fixed
2012-01-25 17:44:16skrahsetdependencies: - Problems with Py_buffer management in memoryobject.c (and elsewhere?)
messages: + msg151955
2012-01-17 12:59:40skrahsetmessages: + msg151451
2012-01-17 12:58:03skrahsetstatus: closed -> open
dependencies: + Problems with Py_buffer management in memoryobject.c (and elsewhere?)
resolution: fixed -> remind
2011-11-21 19:57:02pitrousetstatus: open -> closed
resolution: fixed
messages: + msg148082

stage: patch review -> resolved
2011-11-21 19:54:08python-devsetnosy: + python-dev
messages: + msg148080
2011-11-17 18:00:57pitrousetmessages: + msg147815
2011-11-17 17:55:56neologixsetnosy: + neologix
messages: + msg147814
2011-11-17 16:57:46pitrousetmessages: + msg147813
2011-11-17 16:51:20hayposetmessages: + msg147812
2011-11-17 16:50:59hayposetnosy: + haypo
messages: + msg147811
2011-11-16 03:36:45eric.snowsetnosy: + eric.snow
2011-11-15 22:26:44meador.ingesetnosy: + meador.inge
2011-11-15 22:20:43pitroucreate