<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jun 17, 2009, at 12:06 PM, Mark Shannon wrote:</div><blockquote type="cite"><div>2.<br>The major CHANGE is:  the JIT will no longer be safe for executing<br>threaded applications without first invoking llvm_start_multithreaded(). <br>  Please begin to update your client applications now if this affects <br>you, as I will be throwing the switch in SVN sooner rather than later.<br><font class="Apple-style-span" color="#000000"><font class="Apple-style-span" color="#144FAE"><br></font></font></div></blockquote><div><br></div><div>This one is necessary for the ongoing work to make the LLVM APIs thread-safe.  Because of portability issues (mostly concerned with differences between Windows and Unix-like systems), this is the only acceptable way we have found to ensure that the necessary guard structures are allocated and available when they are needed.</div><br><blockquote type="cite"><div>Remember, its not just gcc-llvm and clang that use llvm.<br><br>So please treat the API with respect.<br>Don't change it often, and document EACH and EVERY change.<br></div></blockquote></div><br><div>I'm not sure exactly what you're getting at here.  If anything, I've been very impressed in the recent days with the effort people are putting in to announce their API-breaking changes.  It's much improved from the old days of no notice breakage.</div><div><br></div><div>The API can and will evolve over time, and we're making efforts to make it easier for client programs to keep up by announcing API changes, including recipes for how to deal with them, in an obvious manner in advance of the change itself.</div><div><br></div><div>--Owen</div></body></html>