Mac::Carbon is a Carbon/Mac OS X port of the Mac:: modules included with
MacPerl. It's in development, but a lot of it works, and it is
available, on the CPAN (soon) and on SourceForge.net (now).
To discuss Mac::Carbon, check out the macosx@perl mailing list.
README - Carbon API for perl on Mac OS X
This is not release-quality software. It is still in development,
and not recommend for use in a production environment.
Mac::Carbon is a collection of perl modules for accessing the Carbon
API under Mac OS X. It is a port of the Toolbox modules written by
Matthias Neeracher for MacPerl.
Part of the current strategy is to make Mac::Carbon the intersection
of the old and new Mac OS APIs. We will not be adding new function-
ality from Carbon, except as needed, for now. This may change over
time as Mac::Carbon stabilizes.
See the documentation in the Mac::Carbon manpage for more
implementation details, bugs, etc.
There are probably a lot of bugs, especially in Carbon.h. Bugs are
listed in the section on "Known Bugs" in the Mac::Carbon manpage;
please feel free to report them on the MacPerl bug reporting page,
in the "Mac Toolbox" category. Patches are welcome, too, of course.
For large patches, such as stuff for test suites and building,
please do coordinate with me before spending much time on it.
These modules all build under Mac OS, but it is recommended you build
them as a part of MacPerl itself, or at least under the MacPerl
source. See http://dev.macperl.org/ for more information.
Under Mac OS, the full Mac OS API is available, not just the
Mac OS X
To build these modules on Mac OS X, the Developer Tools are required.
The Test::More module is required for running tests.
The separate Mac::Errors module is not required, but is highly
These modules have only been tested with perl 5.6.0 on Mac OS X. See
the note in the BUILDING manpage.
The modules will compile and test remotely (such as via ssh, instead
of via the Terminal), but some of the tests might not run properly,
and one of the tests (for Mac::Notification) wants user feedback
(though will work without it).
Matthias added some extensions to XS for his Toolbox modules; they
were never fully embraced by p5p, and as a result, we have a
separate xsubpp for these additional XS macros. There is currently
no resolution to this problem. Either we write a pre-preprocessor
that converts the .xs files to be able to be handled by perl's
xsubpp, or we modify the .xs so that it can be handled by perl's
xsubpp, or we distribute a separate xsubpp (which is dangerous, as
xsubpp changes with versions of perl).
Currently, Mac::Carbon is distributed with the already-processed .c
files. If you really want to compile with the .xs files, you can use
the xsubpp programs (either the 5.6 or 5.8 versions) included in the
distribution. This is only temporary, until we have a permanent
resolution to these issues.
You might want to run the test suite with `make test TEST_VERBOSE=1'.
Currently, only a subset of the modules are supported. The ported
Coming next, hopefully:
Mac::AppleEvents is going to take more work than the others, as it
involves some significant API changes.
Following those, the pure-perl modules, which should not take much
work, as long as the core XS modules they rely on are working:
There are currently no plans for the other (GUI) modules, including:
We could do these eventually, if there is enough interest. They don't
port as easily as some of the others, for many reasons, not the
least of which is that we need a framework to handle events etc.,
which for MacPerl is mostly implemented in macish.c / macish.h.
The Mac Toolbox modules were written by Matthias Neeracher
<firstname.lastname@example.org>. They are currently maintained by Chris Nandor
$Id: README,v 1.1 2002/11/13 02:04:50 pudge Exp $