I am having some trouble with PerlObjCBridge on 10.6. The following code executes fine on 10.5 but crashes perl on my 10.6 (32bit) machine (both intel):
#!/usr/bin/perl use Foundation; @SBApplication::ISA = qw(PerlObjCBridge); NSBundle->bundleWithPath_('/System/Library/Frameworks/ScriptingBridge.framework')->load; my $terminal = SBApplication->applicationWithBundleIdentifier_("com.apple.terminal"); my $tab = $terminal->doScript_in_("exec sleep 10", undef); # Spawn a terminal warn $tab->selected; # <-- Crash Expected output is: > 1 at ./bool.pl line 11. But on 10.6 I get the following error and a crash-reporter dialog: > **** ERROR **** PerlObjCBridge:: convertObjCToPerl(): Unrecognized or > unsupported argument type B (66) This appears to only be an issue for objects with accessing BOOL properties of objects. (I'm using the generated header file for Terminal as a reference: http://csshx.googlecode.com/svn/rewrite/Terminal.h) Below is a highlight from the crash report for perl, and the "perl -V" and "sw_vers" output from each machine. Any ideas would be greatly appreciated. Regards, Gavin 10.6 Crash Report > Thread 0 Crashed: Dispatch queue: com.apple.main-thread > 0 libSystem.B.dylib 0x99590132 __kill + 10 > 1 libSystem.B.dylib 0x99590124 kill$UNIX2003 + 32 > 2 libSystem.B.dylib 0x996228e5 raise + 26 > 3 libSystem.B.dylib 0x9963899c abort + 93 > 4 PerlObjCBridge.bundle 0x00164323 convertObjCToPerl + 2041 > 5 PerlObjCBridge.bundle 0x001647b3 convertResult + 1157 > 6 PerlObjCBridge.bundle 0x001687a9 > XS_PerlObjCBridge_sendObjcMessage + 3685 > 7 libperl.dylib 0x0007f4b0 Perl_pp_entersub + 2384 > 8 libperl.dylib 0x00077faa Perl_runops_standard + 41 > 9 libperl.dylib 0x00077d79 perl_run + 427 > 10 perl5.10.0 0x00001e17 main + 273 > 11 perl5.10.0 0x00001cfd start + 53 10.6 sw_vers > ProductName: Mac OS X > ProductVersion: 10.6.3 > BuildVersion: 10D573 10.6 perl -V > Summary of my perl5 (revision 5 version 10 subversion 0) configuration: > Platform: > osname=darwin, osvers=10.0, archname=darwin-thread-multi-2level > uname='darwin neige.apple.com 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 > Compiler: > 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', > optimize='-Os', > 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=4, ptrsize=4, doublesize=8, byteorder=1234 > d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 > ivtype='long', ivsize=4, 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 > gnulibc_version='' > 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): > Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV > PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_ITHREADS > USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API > Locally applied patches: > /Library/Perl/Updates/<version> comes before system perl directories > installprivlib and installarchlib points to the Updates directory > Built under darwin > Compiled at Jun 24 2009 00:35:28 > %ENV: > PERL5LIB="/sw/lib/perl5:/sw/lib/perl5/darwin" > @INC: > /sw/lib/perl5/5.10.0/darwin-thread-multi-2level > /sw/lib/perl5/5.10.0 > /sw/lib/perl5/darwin-thread-multi-2level > /sw/lib/perl5 > /sw/lib/perl5/darwin > /Library/Perl/Updates/5.10.0/darwin-thread-multi-2level > /Library/Perl/Updates/5.10.0 > /System/Library/Perl/5.10.0/darwin-thread-multi-2level > /System/Library/Perl/5.10.0 > /Library/Perl/5.10.0/darwin-thread-multi-2level > /Library/Perl/5.10.0 > /Network/Library/Perl/5.10.0/darwin-thread-multi-2level > /Network/Library/Perl/5.10.0 > /Network/Library/Perl > /System/Library/Perl/Extras/5.10.0/darwin-thread-multi-2level > /System/Library/Perl/Extras/5.10.0 > . 10.5 sw_vers > ProductName: Mac OS X > ProductVersion: 10.5.8 > BuildVersion: 9L30 10.5 perl -V > Summary of my perl5 (revision 5 version 8 subversion 8) configuration: > Platform: > osname=darwin, osvers=9.0, archname=darwin-thread-multi-2level > uname='darwin b04.apple.com 9.0 darwin kernel version 9.6.0: mon nov 24 > 17:37:00 pst 2008; root:xnu-1228.9.59~1release_i386 i386 ' > config_args='-ds -e -Dprefix=/usr -Dccflags=-g -pipe -Dldflags= > -Dman3ext=3pm -Duseithreads -Duseshrplib' > hint=recommended, useposix=true, d_sigaction=define > usethreads=define use5005threads=undef useithreads=define > usemultiplicity=define > useperlio=define d_sfio=undef uselargefiles=define usesocks=undef > use64bitint=define use64bitall=define uselongdouble=undef > usemymalloc=n, bincompat5005=undef > Compiler: > cc='cc', ccflags ='-arch ppc -arch i386 -g -pipe -fno-common -DPERL_DARWIN > -no-cpp-precomp -fno-strict-aliasing -Wdeclaration-after-statement > -I/usr/local/include', > optimize='-O3', > cppflags='-no-cpp-precomp -arch ppc -g -pipe -fno-common -DPERL_DARWIN > -no-cpp-precomp -fno-strict-aliasing -Wdeclaration-after-statement > -I/usr/local/include' > ccversion='', gccversion='4.0.1 (Apple Inc. build 5465)', gccosandvers='' > intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 > d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 > ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', > lseeksize=8 > alignbytes=8, prototype=define > Linker and Libraries: > ld='cc -mmacosx-version-min=10.5.6', ldflags ='-arch ppc -arch i386 > -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 > gnulibc_version='' > Dynamic Linking: > dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' ' > cccdlflags=' ', lddlflags='-arch ppc -arch i386 -bundle -undefined > dynamic_lookup -L/usr/local/lib' > > > Characteristics of this binary (from libperl): > Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT > PERL_MALLOC_WRAP USE_ITHREADS USE_LARGE_FILES > USE_PERLIO USE_REENTRANT_API > Locally applied patches: > fix for regcomp CVE-2007-5116 security vulnerability > fix for double-free CVE-2008-1927 security vulnerability > /Library/Perl/Updates/<version> comes before system perl directories > installprivlib and installarchlib points to the Updates directory > Built under darwin > Compiled at Jan 27 2010 23:39:09 > @INC: > /Library/Perl/Updates/5.8.8 > /System/Library/Perl/5.8.8/darwin-thread-multi-2level > /System/Library/Perl/5.8.8 > /Library/Perl/5.8.8/darwin-thread-multi-2level > /Library/Perl/5.8.8 > /Library/Perl > /Network/Library/Perl/5.8.8/darwin-thread-multi-2level > /Network/Library/Perl/5.8.8 > /Network/Library/Perl > /System/Library/Perl/Extras/5.8.8/darwin-thread-multi-2level > /System/Library/Perl/Extras/5.8.8 > /Library/Perl/5.8.6/darwin-thread-multi-2level > /Library/Perl/5.8.6 > /Library/Perl/5.8.1/darwin-thread-multi-2level > /Library/Perl/5.8.1 > .