Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?

Re: CHAR_BIT != 8

by davido (Archbishop)
on Mar 08, 2013 at 15:51 UTC ( #1022452=note: print w/ replies, xml ) Need Help??

in reply to CHAR_BIT != 8

This isn't addressing specifically how Perl is compiled, but rather how Perl implements the notion of characters: Because of Perl's Unicode implementation, a Perl character isn't necessarily a single byte. Consider the following:

binmode STDOUT, ':encoding(utf8)'; my $cp = "\x{3a3}"; print "$cp\n"; # Prints an upper case sigma. print ord( $cp ), "\n"; # prints 931. print 0x00FF & ord( $cp ), "\n"; # prints 163. if( ord( $cp ) > 255 ) { print "Wide character.\n"; } if( ord( $cp ) != ( 0x00FF & ord( $cp ) ) ) { print "Wide character.\n"; }

If you're not dropping into XS, what application is there for getting at the actual value of CHAR_BIT during compilation? (Just to satisfy my own curiosity, and to learn something new).

Update: To be more clear in my final question: I do understand that the C implementation could possibly be compiled with CHAR_BIT != 8. We see checks for it within the XS code of Scalar::Vec::Util and Math::MPC, for example. But what I'm curious about is how it makes any difference from the perspective of a Perl script that doesn't use XS (aside from the potential that some XS modules will break because they're not checking like they should).


Comment on Re: CHAR_BIT != 8
Download Code
Replies are listed 'Best First'.
Re^2: CHAR_BIT != 8
by ribasushi (Monk) on Mar 08, 2013 at 16:20 UTC

    No particular reason other than completeness. I am adding a larger set of exportable constants to Devel::PeekPoke::Constants and wanted to be as thorough as possible ;)

    As far as why care about C stuff if you are not in C land - well again Devel::PeekPoke.


      Making Devel::PeekPoke::Constants more thorough is a great reason! :)


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1022452]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (10)
As of 2015-11-25 16:57 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (683 votes), past polls