How to tell if one is running 32 or 64 bit Ruby on Mac OS X?

W

Wes Gamble

All,

A friend just bought a new Mac and is trying to figure out whether they
have 32 or 64 bit Ruby installed. This is the output of "file `which
ruby`":

/usr/bin/ruby: Mach-O universal binary with 2 architectures
/usr/bin/ruby (for architecture ppc7400): Mach-O executable ppc
/usr/bin/ruby (for architecture i386): Mach-O executable i386

Can't really tell from this. Does anyone know definitively if Mac OS X
is still shipping with a 32 - bit version of Ruby or if there is a way
to check?

Thanks,
Wes
 
R

Rados³aw Bu³at

All,

A friend just bought a new Mac and is trying to figure out whether they
have 32 or 64 bit Ruby installed. This is the output of "file `which
ruby`":

/usr/bin/ruby: Mach-O universal binary with 2 architectures
/usr/bin/ruby (for architecture ppc7400): Mach-O executable ppc
/usr/bin/ruby (for architecture i386): Mach-O executable i386

Can't really tell from this. Does anyone know definitively if Mac OS X
is still shipping with a 32 - bit version of Ruby or if there is a way
to check?

Thanks,
Wes
Maybe
ruby -v
?


--=20
Pozdrawiam

Rados=B3aw Bu=B3at
http://radarek.jogger.pl - m=F3j blog
 
B

Ben Bleything

/usr/bin/ruby: Mach-O universal binary with 2 architectures
/usr/bin/ruby (for architecture ppc7400): Mach-O executable ppc
/usr/bin/ruby (for architecture i386): Mach-O executable i386

I can't say with 100% conviction, but i386 is a 32-bit platform, so my
guess would be that you're running a 32-bit Ruby.

Quick way to find out: download and build (but don't install!) Ruby,
taking care to enable 64-bit. Then run your new ruby with -v and see
what it outputs.

Ben
 
J

Jonathan Hudson

Can't really tell from this. Does anyone know definitively if Mac OS X
is still shipping with a 32 - bit version of Ruby or if there is a way
to check?

$ irb
['foo'].pack('p').size

8 on 64bit, 4 on 32bit. At least on Linux (and hopefully everywhere).

-jh
 
F

F. Senault

Le 02 février à 18:45, Wes Gamble a écrit :
Can't really tell from this. Does anyone know definitively if Mac OS X
is still shipping with a 32 - bit version of Ruby or if there is a way
to check?

I'd try this :

ruby -rrbconfig -rpp -e 'pp Config::CONFIG'

In my case (no MacOSX, though), I see things like this :

"arch"=>"amd64-freebsd7"
"sitearch"=>"amd64-freebsd7",
"host_cpu"=>"amd64",

Etc.

Fred
 
T

Timo Geusch

Wes Gamble said:
Maybe
ruby -v
?

Output of ruby -v:

ruby 1.8.6 (2008-03-03 patchlevel 114) [universal-darwin9.0]

Does "universal-darwin9.0" imply 32-bit?

Not really - a universal binary is one that works both on the older
PowerPC architecture and the Intel Macs...
 
S

Sandor Szücs

Wes Gamble said:
Maybe
ruby -v
?

Output of ruby -v:

ruby 1.8.6 (2008-03-03 patchlevel 114) [universal-darwin9.0]

Does "universal-darwin9.0" imply 32-bit?

Not really - a universal binary is one that works both on the older
PowerPC architecture and the Intel Macs...


Just to add a universal binary is a container binary, in which you
can add several CPU architectures. Use `lipo' if you want more
information or add/delete architectures.

$ lipo -detailed_info /usr/bin/ruby
Fat header in: /usr/bin/ruby
fat_magic 0xcafebabe
nfat_arch 2
architecture ppc7400
cputype CPU_TYPE_POWERPC
cpusubtype CPU_SUBTYPE_POWERPC_7400
offset 4096
size 13776
align 2^12 (4096)
architecture i386
cputype CPU_TYPE_I386
cpusubtype CPU_SUBTYPE_I386_ALL
offset 20480
size 17824
align 2^12 (4096)

If you want to run it on a specific platform use `arch'
$ arch -arch x86_64 /usr/bin/ruby
arch: posix_spawnp: /usr/bin/ruby: Bad CPU type in executable
zsh: exit 1 arch -arch x86_64 /usr/bin/ruby
$ arch -arch ppc /usr/bin/ruby
^C

The manpage of `arch' :
-------------8<-------------
The arch_name argument must be one of the currently supported =20
architectures:

i386 32-bit intel

ppc 32-bit powerpc

ppc64 64-bit powerpc

x86_64 64-bit intel
------------->8-------------

regards, Sandor Sz=FCcs
--
 
O

Ollivier Robert

/usr/bin/ruby: Mach-O universal binary with 2 architectures
/usr/bin/ruby (for architecture ppc7400): Mach-O executable ppc
/usr/bin/ruby (for architecture i386): Mach-O executable i386

Can't really tell from this. Does anyone know definitively if Mac OS X
is still shipping with a 32 - bit version of Ruby or if there is a way
to check?

A 64-bit binary will show x86_64 and ppc64:

1011 [0:41] roberto@rron:yarv/build> file =trn
/usr/local/bin/trn: Mach-O 64-bit executable x86_64

(my trn is not universal but it is a 64 bit one).
 
H

hengist podd

Wes said:
All,

A friend just bought a new Mac and is trying to figure out whether they
have 32 or 64 bit Ruby installed. This is the output of "file `which
ruby`":

/usr/bin/ruby: Mach-O universal binary with 2 architectures
/usr/bin/ruby (for architecture ppc7400): Mach-O executable ppc
/usr/bin/ruby (for architecture i386): Mach-O executable i386

Can't really tell from this. Does anyone know definitively if Mac OS X
is still shipping with a 32 - bit version of Ruby or if there is a way
to check?

The stock Ruby 1.8.6 installation on 10.5 consists of a 4-way fat (ppc +
ppc64 + i386 + x86_64) framework build which you'll find in
/System/Library/Frameworks, with a 32-bit fat command line interpreter
symlinked to /usr/bin/ruby. This means Ruby will run as 32-bit in 32-bit
processes (e.g. when running scripts via /usr/bin/ruby) and as 64-bit in
64-bit processes.

HTH

has
 
R

Rob Biedenharn

The stock Ruby 1.8.6 installation on 10.5 consists of a 4-way fat
(ppc +
ppc64 + i386 + x86_64) framework build which you'll find in
/System/Library/Frameworks, with a 32-bit fat command line interpreter
symlinked to /usr/bin/ruby. This means Ruby will run as 32-bit in 32-
bit
processes (e.g. when running scripts via /usr/bin/ruby) and as 64-
bit in
64-bit processes.

HTH

has
--
Control AppleScriptable applications from Python, Ruby and ObjC:
http://appscript.sourceforge.net

--


This came up at least once before so a search of the archive may yield
a better answer, but one possible way is to see how big a Fixnum is in
bytes:

$ ruby -v
ruby 1.8.6 (2008-03-03 patchlevel 114) [universal-darwin9.0]
$ ruby -e "puts 1.size"
4

-Rob

Rob Biedenharn http://agileconsultingllc.com
(e-mail address removed)
 
R

Roger Pack

A friend just bought a new Mac and is trying to figure out whether they
have 32 or 64 bit Ruby installed.

As a note for linode users, you should probably install the 32 bit
version of your OS instead of the 64 bit version so that your rails
processes use half as much memory :)

Cheers!
-=r
 
G

Greg Willits

The stock Ruby 1.8.6 installation on 10.5 consists of a 4-way fat (ppc +
ppc64 + i386 + x86_64) framework build which you'll find in
/System/Library/Frameworks, with a 32-bit fat command line interpreter
symlinked to /usr/bin/ruby. This means Ruby will run as 32-bit in 32-bit
processes (e.g. when running scripts via /usr/bin/ruby) and as 64-bit in
64-bit processes.


So, /usr/bin/ruby invokes the 32-bit version, how do we invoke the
64-bit version?

-- gw
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,068
Latest member
MakersCBDIngredients

Latest Threads

Top