NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.
All the Perl that's Practical to Extract and Report
Stories, comments, journals, and other submissions on use Perl; are Copyright 1998-2006, their respective owners.
Strongly, strongly disagree (Score:1)
You're way off base on this one.
I've been using Mac for Perl dev for about 6-7 years (whenever OS X 10.1 came out) and consider it first class. The Mac:: packages are largely irrelevant -- Carbon is a legacy API from the 90s, about as relevant today as a Win95-specific API would be I suppose. If you used a Win95:: library, you'd get similar complaints from users of a modern Windows OS.
The "flood" of Win32:: packages is because you need those platform-specific hacks to get anything done on Windows Perl. N
Re: (Score:2)
File::HomeDir, for the Mac, requires Mac::Files which is unfortunately bundled with Mac::Carbon. The latter does not and will never run on a 64-bit Perl, but that's the direction we're going. Because Bundle::CPAN requires File::HomeDir, a fresh Perl installation on a Mac is very painful if you have a 64-bit Perl. I had to manually install File::HomeDir after locally patching it to work around the Mac::Files pain.
Re:Strongly, strongly disagree (Score:2)
Ovid, no, you're significantly wrong.
First, let me correct what Alias said: Mac::Carbon has always worked reliably. It has not always INSTALLED reliably, due to changes that break both compiling and testing.
Second, as to Mac::Files specifically, you cannot separate it from Mac-Carbon. There is no reason to do that: the same reasons why much of Mac-Carbon as a whole won't run on 64-bit perl, is the same reason why Mac::Files also won't. In fact, Mac::Files probably has more incompatibilies with 64-bit than any of the other modules in Mac-Carbon: we rely heavily in Mac-Carbon on the FSSpec type (and the corresponding APIs) that is provided (and used heavily) by Mac::Files, but this has been replaced by FSRef.
To sum up, if you're going to make Mac::Files work on 64-bit, that would be most of the work required to get Mac-Carbon as a whole working on 64-bit. And it's a chore, and might not be worth the effort. Although someday I would like to get Mac::Glue running on 64-bit, so I'll be looking into it eventually.
The answer (for both the reasons of immediate 64-bit compatibility, and for ease in installation of HomeDir) is -- as Alias said -- to have a replacement. This could be Carbon or Cocoa. Doesn't really matter. FindFolder itself should work just fine in 64-bit, for a long time. Of course, Cocoa might be better for future-proofing, but it will likely be a long time before Carbon's FindFolder stops working. If my help is desired, it'll be Carbon, since I don't know Cocoa well.
Reply to This
Parent
Re: (Score:2)
Hi Adam!
http://pudge.net/tmp/Darwin.tar.gz [pudge.net]
Re: (Score:2, Informative)
and a simple Cocoa implementation. Only tested on 10.5.
http://idisk.mac.com/christian.hansen/Public/perl/Mac-SystemDirectory-0.01.tar.g z [mac.com]
perl -MMac::SystemDirectory=:all -wle 'print FindDirectory(NSDocumentDirectory);'
/Users/chansen/Documents
--
chansen
Re: (Score:1)
Re: (Score:2)
chansen, this looks awesome: works fine on 10.5 and 10.6.
Updated my patch to use Mac::SystemDirectoty on 64bit perl, Carbon in 32bit and then fallback to pure perl: http://gist.github.com/198615 [github.com]
Re: (Score:2)
Now committed to http://svn.ali.as/cpan/trunk/File-HomeDir [svn.ali.as] as r9436 and r9437.
Re: (Score:1)
I have pushed Mac::SystemDirectory 0.02_01 to cpan. I have added support for DomainMask and returning multiple directories in list context.
http://idisk.mac.com/christian.hansen/Public/perl/Mac-SystemDirectory-0.02_01.ta r.gz [mac.com]
Example http://idisk.mac.com/christian.hansen/Public/perl/macdirs.pl [mac.com] (I was not allowed to post it here: Your comment violated the "postercomment" compression filter.)
I'll add you and Alias as co-maint, feel free to hack on it as you see fit.
--
chansen