Wednesday, October 21, 2009

Two cool (and underreported) things about Snow Leopard.

I recently upgraded my various Macs to Snow Leopard, Apple's streamlined new operating system. So far two things have caught my eye, both of them very nice surprises.
  1. System Perl is now version 5.10.
  2. The Activity Monitor now shows Safari Plug-Ins such as the disastrous resource-hog Adobe Flash as separate processes.
So now when your fans start going nuts over a YouTube video, you can see exactly who's to blame. As usual, Adobe is to blame. I have yet to try killing the Flash process to see if it can be done without affecting the rest of Safari, but I'm hopeful it might. As for the Perl, here are the geeky details:
kfrost@mbp ~/bloc $ perl -V
Summary of my perl5 (revision 5 version 10 subversion 0) configuration:
   osname=darwin, osvers=10.0, archname=darwin-thread-multi-2level
   uname='darwin 10.0 darwin kernel version 10.0.0d8: tue may 5 19:29:59 pdt 2009; root:xnu-1437.2~2release_i386 i386 '
   config_args='-ds -e -Dprefix=/usr -Dccflags=-g  -pipe  -Dldflags= -Dman3ext=3pm -Duseithreads -Duseshrplib -Dinc_version_list=none -Dcc=gcc-4.2'
   hint=recommended, useposix=true, d_sigaction=define
   useithreads=define, usemultiplicity=define
   useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
   use64bitint=define, use64bitall=define, uselongdouble=undef
   usemymalloc=n, bincompat5005=undef
   cc='gcc-4.2', ccflags ='-arch x86_64 -arch i386 -arch ppc -g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -I/usr/local/include',
   cppflags='-g -pipe -fno-common -DPERL_DARWIN -fno-strict-aliasing -I/usr/local/include'
   ccversion='', gccversion='4.2.1 (Apple Inc. build 5646)', gccosandvers=''
   intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
   d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
   ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
   alignbytes=8, prototype=define
 Linker and Libraries:
   ld='gcc-4.2 -mmacosx-version-min=10.6', ldflags ='-arch x86_64 -arch i386 -arch ppc -L/usr/local/lib'
   libpth=/usr/local/lib /usr/lib
   libs=-ldbm -ldl -lm -lutil -lc
   perllibs=-ldl -lm -lutil -lc
   libc=/usr/lib/libc.dylib, so=dylib, useshrplib=true, libperl=libperl.dylib
 Dynamic Linking:
   dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
   cccdlflags=' ', lddlflags='-arch x86_64 -arch i386 -arch ppc -bundle -undefined dynamic_lookup -L/usr/local/lib'

Characteristics of this binary (from libperl):
                       USE_64_BIT_INT USE_ITHREADS USE_LARGE_FILES
                       USE_PERLIO USE_REENTRANT_API
 Locally applied patches:
       /Library/Perl/Updates/ comes before system perl directories
       installprivlib and installarchlib points to the Updates directory
 Built under darwin
 Compiled at Jun 24 2009 00:35:27