On Nov 18, 2010, at 2:10 AM, Greg Lewis wrote: > On Tue, Nov 16, 2010 at 11:22:06PM -0800, Mike Swingler wrote: >> >> As for the targeted version of Mac OS X-specific changes, you can expect >> that we will use Mac OS X 10.6 as a baseline. The Mac OS X 10.6 SDK >> allows us to use blocks (which _greatly_ simplifies interacting with >> AppKit on the main thread), and has many key pieces of functionality >> exposed as full Cocoa API (as opposed to using private SPI or Carbon >> functions). > > By blocks you mean Grand Central Dispatch, yes?
GCD has a block-based API, but blocks themselves are a C/ObjC/C++ language extension (coupled with a basic runtime included in libc, as well as additional support specific to ObjC): http://clang.llvm.org/docs/BlockLanguageSpec.txt http://clang.llvm.org/docs/Block-ABI-Apple.txt Regarding Denis Lussier's about supporting older versions of OS X -- I don't personally have any requirement for anything other than X11 on 10.5 and earlier, and it seems like the dependencies on other 10.6+ only Cocoa APIs would likely be a show-stopper for anyone interested in native AWT/Swing support on 10.5 and earlier. That said, I have backported Apple's GCC patches and implemented a replacement block runtime (based on the available Apple LLVM compiler_rt sources). We (Plausible Labs) primarily use this to support using blocks for client projects on iOS <= 3.2 and Mac OS X 10.5, and it could be used to get around the block dependency for the JDK: http://code.google.com/p/plblocks/ -landonf