<p dir="auto">As per my <a href="http://stackoverflow.com/questions/26497656/numpy-bug-how-do-i-align-a-numpy-record-array-recarray/26514944" rel="nofollow">stackoverflow question</a>:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="import numpy as np
a = np.zeros(4, dtype=np.dtype([('t', '&lt;f8'), ('d', [('a', '&lt;i4'), ('b', '&lt;f8')], (100,))], align=True))
b = np.require(a, requirements=['ALIGNED'])
print([x.flags['ALIGNED'] for x in [a, b]])"><pre class="notranslate"><code class="notranslate">import numpy as np
a = np.zeros(4, dtype=np.dtype([('t', '&lt;f8'), ('d', [('a', '&lt;i4'), ('b', '&lt;f8')], (100,))], align=True))
b = np.require(a, requirements=['ALIGNED'])
print([x.flags['ALIGNED'] for x in [a, b]])
</code></pre></div>
<p dir="auto">prints <code class="notranslate">[False, False]</code> !</p>
<p dir="auto"><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/charris/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/charris">@charris</a> writes that "The <code class="notranslate">recarray</code> class accepts an aligned parameter, but looks to lose it in <code class="notranslate">format_parser</code>".</p>
<p dir="auto">This bug breaks usage of PyOpenGL as per my <a href="http://stackoverflow.com/questions/26484665/opengl-says-from-param-received-a-non-contiguous-array" rel="nofollow">other stackoverflow question</a>.</p>
<p dir="auto">As an aside why does "c-contiguous" imply "aligned" for recarray?</p>
<p dir="auto">xlc_r -I/opt/include -O2 -qmaxmem=-1 -qarch=pwr5 -q64 -I/opt/buildaix/includes -DNDEBUG -DHAVE_NPY_CONFIG_H=1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1 -D_LARGEFILE64_SOURCE=1 -Ibuild/src.aix-5.3-2.7/numpy/core/src/private -Inumpy/core/include -Ibuild/src.aix-5.3-2.7/numpy/core/include/numpy -Inumpy/core/src/private -Inumpy/core/src -Inumpy/core -Inumpy/core/src/npymath -Inumpy/core/src/multiarray -Inumpy/core/src/umath -Inumpy/core/src/npysort -I/opt/include/python2.7 -Ibuild/src.aix-5.3-2.7/numpy/core/src/private -Ibuild/src.aix-5.3-2.7/numpy/core/src/private -Ibuild/src.aix-5.3-2.7/numpy/core/src/private -c numpy/core/src/private/mem_overlap.c -o build/temp.aix-5.3-2.7/numpy/core/src/private/mem_overlap.o" failed with exit status 1<br>
root@x064:[/data/prj/python/numpy/numpy-1.11.2]aix-5.3-2.7/numpy/core/src/private/mem_overlap.o               &lt;<br>
"/usr/include/unistd.h", line 171.17: 1506-343 (S) Redeclaration of lseek64 differs from previous declaration on line 169 of "/usr/include/unistd.h".<br>
"/usr/include/unistd.h", line 171.17: 1506-050 (I) Return type "long long" in redeclaration is not compatible with the previous return type "long".<br>
"/usr/include/unistd.h", line 171.17: 1506-377 (I) The type "long long" of parameter 2 differs from the previous type "long".<br>
"/usr/include/sys/lockf.h", line 64.20: 1506-343 (S) Redeclaration of lockf64 differs from previous declaration on line 62 of "/usr/include/sys/lockf.h".<br>
"/usr/include/sys/lockf.h", line 64.20: 1506-377 (I) The type "long long" of parameter 3 differs from the previous type "long".<br>
"/usr/include/unistd.h", line 800.33: 1506-343 (S) Redeclaration of ftruncate64 differs from previous declaration on line 798 of "/usr/include/unistd.h".<br>
"/usr/include/unistd.h", line 800.33: 1506-377 (I) The type "long long" of parameter 2 differs from the previous type "long".<br>
"/usr/include/unistd.h", line 836.33: 1506-343 (S) Redeclaration of truncate64 differs from previous declaration on line 834 of "/usr/include/unistd.h".<br>
"/usr/include/unistd.h", line 836.33: 1506-377 (I) The type "long long" of parameter 2 differs from the previous type "long".<br>
"/usr/include/unistd.h", line 853.33: 1506-343 (S) Redeclaration of pread64 differs from previous declaration on line 850 of "/usr/include/unistd.h".<br>
"/usr/include/unistd.h", line 853.33: 1506-377 (I) The type "long long" of parameter 4 differs from the previous type "long".<br>
"/usr/include/unistd.h", line 854.33: 1506-343 (S) Redeclaration of pwrite64 differs from previous declaration on line 851 of "/usr/include/unistd.h".<br>
"/usr/include/unistd.h", line 854.33: 1506-377 (I) The type "long long" of parameter 4 differs from the previous type "long".<br>
"/usr/include/unistd.h", line 921.25: 1506-343 (S) Redeclaration of fclear64 differs from previous declaration on line 918 of "/usr/include/unistd.h".<br>
"/usr/include/unistd.h", line 921.25: 1506-050 (I) Return type "long long" in redeclaration is not compatible with the previous return type "long".<br>
"/usr/include/unistd.h", line 921.25: 1506-377 (I) The type "long long" of parameter 2 differs from the previous type "long".<br>
"/usr/include/unistd.h", line 922.25: 1506-343 (S) Redeclaration of fsync_range64 differs from previous declaration on line 919 of "/usr/include/unistd.h".<br>
"/usr/include/unistd.h", line 922.25: 1506-377 (I) The type "long long" of parameter 3 differs from the previous type "long".</p>