On Sun, Feb 26, 2012 at 15:09, Paul Moore <p.f.mo...@gmail.com> wrote:
> On 26 February 2012 12:34, Eli Bendersky <eli...@gmail.com> wrote: > > On Sun, Feb 26, 2012 at 12:33, pmon mail <pmon.m...@gmail.com> wrote: > >> Documentation clearly states that the 'L' is a 4 byte integer. > >> > >> Is this a bug? I'm I missing something? > >> > > > > By default pack uses native size, not standard size. On a 64-bit machine: > > As the OP points out, the documentation says that the "Standard Size" > is 4 bytes (http://docs.python.org/library/struct.html). While > "Standard Size" doesn't appear to be defined in the documentation, and > the start of the previous section (7.3.2.1. Byte Order, Size, and > Alignment) clearly states that C types are represented in native > format by default, the documentation could probably do with some > clarification. > > 7.2.3.1 says, shortly after the first table: " Native size and alignment are determined using the C compiler’s sizeofexpression. This is always combined with native byte order. Standard size depends only on the format character; see the table in the *Format Characters* <http://docs.python.org/library/struct.html#format-characters>section. " To me this appears to be a reasonable definition of what "standard size" is. 7.3.2.2 says before the size table: "Format characters have the following meaning; the conversion between C and Python values should be obvious given their types. The ‘Standard size’ column refers to the size of the packed value in bytes when using standard size; that is, when the format string starts with one of '<', '>', '!' or '='. When using native size, the size of the packed value is platform-dependent." Again, taken together with the previous quote, IMHO this defines the difference between standard and native sizes clearly. If you feel differently, feel free to open an issue suggesting a better explanation. Eli
_______________________________________________ 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