<div dir="ltr"><span style="font-family:arial;font-size:small">On Thu, Oct 31, 2013 at 4:19 PM, Geoffrey Irving <<a href="mailto:irving@naml.us">irving@naml.us</a>> wrote:</span><br>><br>> On Thu, Oct 31, 2013 at 2:08 AM, Robert Kern <<a href="mailto:robert.kern@gmail.com">robert.kern@gmail.com</a>> wrote:<br>

> > On Thu, Oct 31, 2013 at 12:52 AM, Geoffrey Irving <<a href="mailto:irving@naml.us">irving@naml.us</a>> wrote:<br>> >><br>> >> Is there a standard way in numpy of getting a char with C-native<br>

> >> integer signedness?  I.e.,<br>> >><br>> >>     boost::is_signed<char>::value ? numpy.byte : numpy.ubyte<br>> >><br>> >> but without nonsensical mixing of languages?<br>

> ><br>> > This is for interop with a C/C++ extension, right? Do this test in that<br>> > extension's C/C++ code to expose the right dtype. As far as I know, this is<br>> > not something determined by the hardware, but the compiler used. Since the<br>

> > compiler of numpy may be different from your extension, only your extension<br>> > can do that test properly.<br>><br>> It's not determined by the hardware, but I believe it is standardized<br>> by each platform's ABI even if it can be adjusted by the compiler.<br>

> >From the gcc man page:<br>><br>>        -funsigned-char<br>>            Let the type "char" be unsigned, like "unsigned char".<br><br>Fair enough. numpy doesn't distinguish between these cases as it only uses plain 'char' for 'S' arrays, which don't really care about the numerical value assigned the bits. It explicitly uses 'signed char' elsewhere, so this platform setting isn't relevant to it. Consequently, numpy also doesn't expose this platform setting. I think I stand by my recommendation.<div>

<div><br>--<br>Robert Kern<br></div></div></div>