cafebabe python macosx easter egg?

2013-02-10 Thread Rodrick Brown
$ hexdump -n4 -C $(which python) | awk '{print $2 $3 $4 $5 }'
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: cafebabe python macosx easter egg?

2013-02-10 Thread Chris Angelico
On Mon, Feb 11, 2013 at 5:10 PM, Rodrick Brown rodrick.br...@gmail.com wrote:
 $ hexdump -n4 -C $(which python) | awk '{print $2 $3 $4 $5 }'

I believe that's used as a file signature. All you're doing is looking
at the first four bytes of the file; 0xCAFEBABE is used as a signature
by Java class files, and some others. You can probably find the same
signature in other programs on your system.

ChrisA
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: cafebabe python macosx easter egg?

2013-02-10 Thread Chris Rebert
On Sun, Feb 10, 2013 at 10:10 PM, Rodrick Brown rodrick.br...@gmail.com wrote:
 Subject: cafebabe python macosx easter egg?

 $ hexdump -n4 -C $(which python) | awk '{print $2 $3 $4 $5 }'
cafebabe

~ $ # Huh. Let's google...
http://en.wikipedia.org/wiki/Hexspeak :
0xCAFEBABE (cafe babe) is used by Mach-O to identify Universal
object files, and by the Java programming language to identify Java
bytecode class files.


Some background:

http://en.wikipedia.org/wiki/Mach-O : Mach-O […] is a file format for
executables […] used by most systems based on the Mach kernel (OS X's
kernel is based on the Mach kernel.)

http://en.wikipedia.org/wiki/Universal_binary :
A universal binary is, in Apple parlance, an executable file or
application bundle that runs natively on either PowerPC or […] Intel
64-based Macintosh computers; it is an implementation of the concept
more generally known as a fat binary.


Confirmation:

OS X ABI Mach-O File Format Reference:
https://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/MachORuntime/Reference/reference.html
:
struct fat_header
[...]
Fields:
magic
An integer containing the value 0xCAFEBABE in big-endian byte order format.


So, there you have it. Mach-O and Java bytecode just happen to use the
same magic number. Coincidence.

Cheers,
Chris R.
-- 
http://mail.python.org/mailman/listinfo/python-list