Skip navigation

Hosting by: digital.forest

ADHOC/MacHack 20 Papers

Here the papers for the 2005 ADHOC Conference.


Cross-Platform Approaches from a Macintosh Perspective
Jonathan Hoyle
One of the many difficulties that Macintosh software developers must face is how to justify to their management the expense of development on the Mac when less than 1/10 of the users are it. Cross-platform development seems to be the only economically feasible, yet so many of these approaches give you "least common denominator" solutions. This paper will detail the many approaches to cross-platform development from the Macintosh perspective, looking at the pros and cons of various frameworks and modern RAD applications. Hilights and pitfalls will be addressed for environments such as RealBasic and Java, but most emphasis will be placed from a C++ perspective. Frameworks such as CPLAT, wxWindows and Qt will be looked at, as well external libraries which take platform specific frameworks like PowerPlant and make them cross-platform. Examples of professional applications who have used these various strategies and their success (or lack thereof). Design principles which expedite a cross-platform strategy (like an MVC architecture) will also be examined. In the end, a few recommendations can be made for best practices and viable approaches, plus some downloadable starting sample projects will be made available.

Hacking the Mac OS X Kernel for Unsupported Machines
Ryan Rempel
To get Mac OS X running on machines that Apple no longer supports, some changes to the behavior of the kernel and certain IOKit kernel extensions were required. Since most of the relevant code is open source, it would have been possible to substitute custom components for the ones that Apple supplies. However, this would have required recompilation and redistribution for every minor version change in Mac OS X. Fortunately, the IOKit system provides a sophisticated run-time environment that often allows your own kernel extensions to inherit Apple's code, and fix only the things that need to be fixed. The techniques involved can be useful for anyone doing driver development, even on supported systems.

Program Analysis and Verification on Mac OS X
Gordon Worley
Computational techniques to analyze and verify computer programs give developers powerful tools that can help them write quickly and efficiently correct programs that accomplish their intended goals. In this paper we explain the computer science foundations of program analysis and verification, review some of the important literature, and look at the program analysis and verification tools available on Mac OS X.

simg5
Mark Szymczyk
Profilers like Shark tell you what parts of your code are running slowly. To learn why your code is running slowly, Apple includes tracing tools with the CHUD Tools. simg5 tells you why your code is running slowly on G5 processors. The paper shows you how to create the trace files simg5 needs, how to run simg5, and how to use Scroll Pipe Viewer to view the path each assembly language instruction takes.

Types++: Typesafe Metadata, and Other Thoughts Beyond int
Ryan Wilcox
C/C++ (and other strongly, statically typed languages) use type data as a compile-time check: you can't put that there, or the ever popular "some data might be truncated" warnings. Still there is possibility for error: can you know for certain, just by looking at a function prototype, that the Str255 parameter is a PString, or a shortcut by a lazy programmer? Or can you ever be certain that your divisor (int) is not zero, without checks all over? What character encoding does that std::string contain? In essence: metadata, not just type, is an important factor of many variables. Metadata focus can be achieved by using metadata class templates, which supply both compile-time checks, runtime checks, and also serve as form of documentation for future maintainers. This paper will further discuss metadata, metadata templates (implementation, usage, examples, and drawbacks), and other thoughts for modern "type" safety.

XGP: Turning a UNIX Prolog compiler into a Mac OS X development environment
Lindsey Spratt
This paper describes how gprolog, a UNIX compiler for Prolog implemented in C, was turned into XGP, a graphical-user-interface-oriented integrated development environment on Mac OS X using Cocoa and Objective-C. This development effort involved many aspects of UNIX and Mac OS X. This paper is meant to help other developers contemplating complex porting projects by providing pointers on some possible problems and some of the possibly useful technologies. The sofware involved (gprolog and XGP) is open source (GPL). The XGP project can be found at http://xgp.sourceforge.net.

[/PastShows/ADHOC20] Link to this story
Last updated 2006-03-29