Thomas Heller wrote: > Travis Oliphant schrieb: > >> >> The intent of the struct syntax is to handle describing memory. The >> point is not to replicate how the C-compiler deals with statically >> defined N-D arrays. Thus, even though the struct syntax allows >> *communicating* the intent of a contiguous block of memory inside a >> structure as an N-d array, the fundamental memory block is the >> equivalent of a 1-d array in C. >> >> So, I think the example is correct (and intentional). > > Sorry, I do not think so. If you use a 2-d array in the example, you > must describe it correctly. The difference between this pep and the old > buffer interface is that the pep allows to describe both how the compiler > sees the memory block plus the size and layout of the memory block, while > the old buffer interface only describes single-segment memory blocks. > And 'double data[16][4]' *is* a single memory block containing a 2-d array, > and *not* an array of pointers. >
I don't understand what you mean by "must describe it correctly". The size and layout of the memory block description of the PEP is not supposed to be dependent on the C-compiler. It should also be able to define memory as used in Fortran, C#, a file, or whatever. So, I don't understand the insistence that the example use C-specific 2-d array syntax. The example as indicated is correct. It is true that the 2-d nature of the block of data is only known by Python in this example. You could argue that it would be more informative by showing the C-equivalent structure as a 2-d array. However, it would also create the possibility of confusion by implying an absolute relationship between the C-compiler and the type description. Your insistence that the example is incorrect makes me wonder what point is not being communicated between us. Clearly there is overlap between C structure syntax and the PEP syntax, but the PEP type syntax allows for describing data in ways that the C compiler doesn't. I'd rather steer people away from statically defined arrays in C and don't want to continually explain how they are subtly different. My perception is that you are seeing too much of a connection between the C-compiler and the PEP description of memory. Perhaps that's not it, and I'm missing something else. Best regards, -Travis O. _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com