<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ch&#233; zOlive</title>
	<atom:link href="http://ochafik.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://ochafik.com/blog</link>
	<description>prograblah blah (yawn)</description>
	<lastBuildDate>Tue, 17 Apr 2012 09:01:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>JavaCL 1.0.0-RC2 released : bugfixes, Maven Central repository</title>
		<link>http://ochafik.com/blog/?p=747</link>
		<comments>http://ochafik.com/blog/?p=747#comments</comments>
		<pubDate>Tue, 17 Apr 2012 09:01:19 +0000</pubDate>
		<dc:creator>zOlive</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ochafik.com/blog/?p=747</guid>
		<description><![CDATA[Tweet JavaCL v1.0.0 RC2 is available ! Download / Install &#124; Browse JavaDoc &#124; Getting Started (Tutorial) &#124; Discuss Launch the new JavaCL Interactive Image Transform Editor. Release Notes Here are the main changes between 1.0.0-RC1 and 1.0.0-RC2 (see full change log) : Release artifacts are available &#8230; <a href="http://ochafik.com/blog/?p=747">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton747" class="tw_button" style="float:right;margin-left:10px;"><a  href="http://twitter.com/share?url=http%3A%2F%2Fgoo.gl%2FQEvGi&#038;via=ochafik&#038;text=JavaCL%201.0.0-RC2%20released%20%3A%20bugfixes%2C%20Maven%20Central%20repository&#038;related=ochafik:Author+of+BridJ%2C+JNAerator%2C+JavaCL%2C+ScalaCL+and+NativeLibs4Java&#038;lang=en&#038;count=vertical&#038;counturl=http%3A%2F%2Fochafik.com%2Fblog%2F%3Fp%3D747" class="twitter-share-button" style="width:55px;height:22px;background:transparent url('http://ochafik.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><div>
<p><a  href="http://code.google.com/p/javacl/">JavaCL</a> v1.0.0 RC2 is available !</p>
<p><a  href="http://code.google.com/p/javacl/wiki/Usage">Download / Install</a> | <a  href="http://nativelibs4java.sourceforge.net/javacl/api/stable">Browse JavaDoc</a> | <a  href="http://code.google.com/p/javacl/wiki/GettingStarted">Getting Started (Tutorial)</a> | <a  href="http://groups.google.fr/group/nativelibs4java/">Discuss</a></p>
<p><a  href="http://nativelibs4java.sourceforge.net/webstart/OpenCL/InteractiveImageTransformDemo.jnlp"><img title="JavaCLInteractiveImageTransformDemo" src="http://ochafik.com/blog/wp-content/uploads/2011/02/JavaCLInteractiveImageTransformDemo-300x120.png" alt="" width="300" height="120" /></a></p>
<p><a  href="http://nativelibs4java.sourceforge.net/webstart/OpenCL/InteractiveImageTransformDemo.jnlp">Launch the new JavaCL Interactive Image Transform Editor.</a></p>
<h2>Release Notes</h2>
<p>Here are the main changes between <a  href="http://ochafik.com/blog/?p=615">1.0.0-RC1</a> and 1.0.0-RC2 (<a  href="http://code.google.com/p/nativelibs4java/source/browse/trunk/libraries/OpenCL/CHANGELOG">see full change log</a>) :</p>
</div>
<ul>
<li>Release artifacts are available in Maven Central</li>
<li>Added support for sub-images reading/writing from/to CLImage2D (slower than with full images)</li>
<li>Fixed endianness issues with CLBuffer (<a  href="https://github.com/ochafik/nativelibs4java/issues/80">issue #80</a>)</li>
<li>Fixed migration of cached binaries to newer versions of OS (e.g. upgrading from Snow Leopard to Lion) (<a  href="https://github.com/ochafik/nativelibs4java/issues/81">issue #81</a>)</li>
<li>Fixed handling compiler options containing spaces (<a  href="https://github.com/ochafik/nativelibs4java/issues/274">issue #274</a>)</li>
<li>Fixed tutorial artifact pom repositories (<a  href="https://github.com/ochafik/nativelibs4java/issues/279">issue #279</a>)</li>
<li>Fixed support of Intel&#8217;s OpenCL 1.5 Windows runtime (<a  href="https://github.com/ochafik/nativelibs4java/issues/297">issue #297</a>)</li>
<li>Fixed many Javadoc typos</li>
<li>Enhanced LocalSize API (added static factory methods for all primitive types)</li>
<li>Deprecated CLContext.getKernelsDefaultByteOrder() and CLDevice.getKernelsDefaultByteOrder()</li>
<li>Added more informative exceptions when passing null pointers to CLBuffer.writeBytes (<a  href="https://github.com/ochafik/nativelibs4java/issues/257">issue #257</a>)</li>
<li>Updated to OpenCL 1.2 headers</li>
<li>Added -cl-nv-verbose, -cl-nv-maxrregcount, -cl-nv-opt-level + proper log even without error when nv-verbose is set</li>
<li>Enhanced handling of endianness : warn when creating contexts with devices that have mismatching endianness, throw when creating buffer out of Buffer / Pointer with bad endianness</li>
<li>Changed signature of CLPlatform.listDevices (now takes a single CLDevice.Type, including All, instead of an EnumSet thereof)</li>
</ul>
<h2>Getting started</h2>
<p>You can read the <a  href="http://code.google.com/p/javacl/wiki/GettingStarted">Getting Started (Tutorial) page</a> on the wiki to get started very quickly !</p>
<p>Please join the <a  href="http://groups.google.fr/group/nativelibs4java/">NativeLibs4Java Google Group</a> to discuss JavaCL / ScalaCL, get the latest news and ask for support from the growing JavaCL community.</p>
]]></content:encoded>
			<wfw:commentRss>http://ochafik.com/blog/?feed=rss2&#038;p=747</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JNAerator 0.10 released : bugfixes, added Maven project output modes</title>
		<link>http://ochafik.com/blog/?p=741</link>
		<comments>http://ochafik.com/blog/?p=741#comments</comments>
		<pubDate>Tue, 17 Apr 2012 08:57:43 +0000</pubDate>
		<dc:creator>zOlive</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ochafik.com/blog/?p=741</guid>
		<description><![CDATA[TweetJNAerator (licensed under LGPL 3.0) lets Java programmers access native libraries transparently, using a runtime such as BridJ (C / C++, BSD-license), JNA (C only, LGPL) or Rococoa (Objective-C). This new release contains tons of critical fixes, so all JNAerator &#8230; <a href="http://ochafik.com/blog/?p=741">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton741" class="tw_button" style="float:right;margin-left:10px;"><a  href="http://twitter.com/share?url=http%3A%2F%2Fgoo.gl%2FKcAcy&#038;via=ochafik&#038;text=JNAerator%200.10%20released%20%3A%20bugfixes%2C%20added%20Maven%20project%20output%20modes&#038;related=ochafik:Author+of+BridJ%2C+JNAerator%2C+JavaCL%2C+ScalaCL+and+NativeLibs4Java&#038;lang=en&#038;count=vertical&#038;counturl=http%3A%2F%2Fochafik.com%2Fblog%2F%3Fp%3D741" class="twitter-share-button" style="width:55px;height:22px;background:transparent url('http://ochafik.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p><a  href="http://code.google.com/p/jnaerator/">JNAerator</a> (<a  href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">licensed under LGPL 3.0</a>) lets Java programmers access native libraries transparently, using a runtime such as <a  href="http://code.google.com/p/bridj/">BridJ</a> (C / C++, BSD-license), <a  href="http://jna.java.net/">JNA</a> (C only, LGPL) or <a  href="http://code.google.com/p/rococoa/">Rococoa</a> (Objective-C).</p>
<p>This new release contains tons of critical fixes, so all JNAerator users are strongly encouraged to migrate to this new version.</p>
<p>Here&#8217;s a summary of the changes between <a  href="http://ochafik.com/blog/?p=715">version 0.6</a> and 0.6.1 (see <a  href="https://github.com/ochafik/nativelibs4java/blob/master/libraries/BridJ/CHANGELOG">full change log here</a>) :</p>
<ul>
<li>Fixed generation of large long values</li>
<li>Fixed conditional parsing of __in modifier (and COM modifiers in general)</li>
<li>Fixed generation of globals and variables included more than once</li>
<li>Fixed parsing of unary &#8216;-&#8217; operator</li>
<li>Fixed parsing of C++ constructors and class inheritance</li>
<li>Fixed parsing of default values for type name template arguments</li>
<li>Fixed parsing of const type mutator (fixes `void f(struct x * const);`) (<a  href="https://github.com/ochafik/nativelibs4java/issues/205">issue #205</a>)</li>
<li>Fixed parsing of null char escape &#8216;\0&#8242; (<a  href="https://github.com/ochafik/nativelibs4java/issues/214">issue #214</a>)</li>
<li>Fixed conversion of `int a; f(&amp;a);`</li>
<li>Fixed handling of &#8220;long int&#8221; and &#8220;short int&#8221; (<a  href="https://github.com/ochafik/nativelibs4java/issues/267">issue #267</a>)</li>
<li>Fixed parsing of __declspec, __attribute__ and some modifiers-related regressions</li>
<li>Fixed conversion of __inline functions when -convertBodies is on</li>
<li>Fixed NPE in JNAeratorUtils.findBestPlainStorageName (<a  href="https://github.com/ochafik/nativelibs4java/issues/258">issue #258</a>)</li>
<li>Fixed parsing of empty strings (spotted by @ENargit in <a  href="https://github.com/ochafik/nativelibs4java/issues/255">issue #255</a>)</li>
<li>Fixed generation of typedefs (<a  href="https://github.com/ochafik/nativelibs4java/issues/273">issue #273</a>)</li>
<li>Fixed generation of casted constants (<a  href="https://github.com/ochafik/nativelibs4java/issues/96">issue #96</a>)</li>
<li>Fixed generation of unnamed structs and unions (<a  href="https://github.com/ochafik/nativelibs4java/issues/94">issue #94</a>)</li>
<li>Fixed multidimensional array sizes for JNA target (<a  href="https://github.com/ochafik/nativelibs4java/issues/165">issue #165</a>)</li>
<li>Fixed handling of hexadecimal constants (<a  href="https://github.com/ochafik/nativelibs4java/issues/296">issue #296</a>)</li>
<li>Fixed conversion of comments for BridJ target runtime</li>
<li>Fixed generation of BridJ calling conventions (<a  href="https://github.com/ochafik/nativelibs4java/issues/282">issue #282</a>)</li>
<li>Fixed handling of __stdcall function pointers and functions (<a  href="https://github.com/ochafik/nativelibs4java/issues/282">issue #282</a>)</li>
<li>Fixed mapping of bool for JNA(erator) target runtime (<a  href="https://github.com/ochafik/nativelibs4java/issues/289">issue #289</a>)</li>
<li>Fixed parsing of malloc, free and many potential modifiers (<a  href="https://github.com/ochafik/nativelibs4java/issues/278">issue #278</a> and <a  href="https://github.com/ochafik/nativelibs4java/issues/280">issue #280</a>)</li>
<li>Fixed handling of unicode library paths (<a  href="https://github.com/ochafik/nativelibs4java/issues/276">issue #276</a>)</li>
<li>Fixed parsing of friend members in C++ classes, and of assignment operators (operator+=, &#8230;)</li>
<li>Fixed generation of very simple edge cases &#8220;long f();&#8221;, &#8220;short f();&#8221;, &#8220;f();&#8221; (<a  href="https://github.com/ochafik/nativelibs4java/issues/270">issue #270</a>)</li>
<li>Changed naming of anonymous function pointer types : `void f(void (*arg)());` now yields callback `f_arg_callback`</li>
<li>Enhanced handling of parsing failures : faster failover to &#8220;sliced&#8221; parsing, reduced verbosity of errors</li>
<li>Added Maven output modes and -mode switch to choose between Jar, StandaloneJar, Directory, Maven, AutoGeneratedMaven (deprecated -noJar and -noComp)</li>
<li>Added support for MSVC asm soups + added -removeInlineAsm hack switch that tries to regex-remove __asm soups that still cannot be parsed out</li>
<li>Added support for BridJ&#8217;s bundled libraries mechanism and paths (+ enforce them using an enum param)</li>
<li>Added parsing of expression initializer blocks `v = { 1, 2, 3};`</li>
<li>Added preservation of original textual representation of constants</li>
<li>Added tr1 to default C++ includes</li>
<li>Generate symbols of all files in directories where any file was explicitly listed</li>
<li>Added support for command-line definition of macros with arguments : -Df(x)=whatever</li>
<li>Added conversion of `malloc(x * y * sizeof(whatever))`</li>
<li>Removed C++ name mangling feature for JNA target runtime (was simplistic anyway)</li>
<li>Release artifacts are available in Maven Central</li>
</ul>
<p>Special thanks to the users and bug reporters that helped getting this version out !</p>
<p>You can contribute to the project by <a  href="https://github.com/ochafik/nativelibs4java/issues?labels=JNAerator">reporting bugs here</a> and joining the <a  href="http://groups.google.com/group/nativelibs4java">NativeLibs4Java Community</a>.</p>
<p>Wait no longer : <a  href="http://nativelibs4java.sourceforge.net/webstart/jnaerator/JNAeratorStudio.jnlp">try JNAerator through Java Web Start</a>, or <a  href="http://code.google.com/p/jnaerator/downloads/list">download it</a> now !</p>
]]></content:encoded>
			<wfw:commentRss>http://ochafik.com/blog/?feed=rss2&#038;p=741</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BridJ 0.6.1 released : bugfixes, Maven Central, better performance</title>
		<link>http://ochafik.com/blog/?p=737</link>
		<comments>http://ochafik.com/blog/?p=737#comments</comments>
		<pubDate>Tue, 17 Apr 2012 08:56:07 +0000</pubDate>
		<dc:creator>zOlive</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ochafik.com/blog/?p=737</guid>
		<description><![CDATA[TweetBridJ (BSD-licensed) is an innovative native bindings library that lets Java programmers use native libraries (written in C, C++, ObjectiveC and more) in a very natural way (inspired by the great JNA, with better performance, C++ and generics added). Here&#8217;s a summary &#8230; <a href="http://ochafik.com/blog/?p=737">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton737" class="tw_button" style="float:right;margin-left:10px;"><a  href="http://twitter.com/share?url=http%3A%2F%2Fgoo.gl%2FT7Mfa&#038;via=ochafik&#038;text=BridJ%200.6.1%20released%20%3A%20bugfixes%2C%20Maven%20Central%2C%20better%20performance&#038;related=ochafik:Author+of+BridJ%2C+JNAerator%2C+JavaCL%2C+ScalaCL+and+NativeLibs4Java&#038;lang=en&#038;count=vertical&#038;counturl=http%3A%2F%2Fochafik.com%2Fblog%2F%3Fp%3D737" class="twitter-share-button" style="width:55px;height:22px;background:transparent url('http://ochafik.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p><a  href="http://code.google.com/p/bridj/">BridJ</a> (<a  href="http://code.google.com/p/bridj/wiki/CreditsAndLicense">BSD-licensed</a>) is an innovative native bindings library that lets Java programmers use native libraries (written in C, C++, ObjectiveC and more) in a very natural way (inspired by the great <a  href="http://jna.java.net/">JNA</a>, with better performance, C++ and generics added).</p>
<p>Here&#8217;s a summary of the changes between <a  href="http://ochafik.com/blog/?p=715">version 0.6</a> and this bugfix-release version 0.6.1 (see <a  href="https://github.com/ochafik/nativelibs4java/blob/master/libraries/BridJ/CHANGELOG">full change log here</a>) :</p>
<ul>
<li>Release artifacts are available in Maven Central</li>
<li>Fixed wchar_t and WideCString on MacOS X (<a  href="https://github.com/ochafik/nativelibs4java/issues/295">issue #295</a>)</li>
<li>Fixed @Name annotation</li>
<li>Fixed deletion of temporary extracted library files with shutdown hook (<a  href="https://github.com/ochafik/nativelibs4java/issues/197">issue #197</a>)</li>
<li>Fixed Unix binaries dependency on GLIBC 2.11 (lowered to version 2.2.5) (<a  href="https://github.com/ochafik/nativelibs4java/issues/195">issue #195</a>)</li>
<li>Fixed some pointer methods : 3D pointers allocation, Pointer.setXXXsAtOffset, float endianness conversion</li>
<li>Fixed regression on struct-valued struct fields (when implemented by java fields) (<a  href="https://github.com/ochafik/nativelibs4java/issues/200">issue #200</a>)</li>
<li>Fixed crash with valued enum return values (<a  href="https://github.com/ochafik/nativelibs4java/issues/196">issue #196</a>)</li>
<li>Fixed crash of dynamic callbacks on Win32</li>
<li>Fixed attachment of native threads in native -&gt; Java callbacks (should attach them as JVM daemon threads)</li>
<li>Fixed C++ inner class name-mangling matching</li>
<li>Fixed signature of ITaskbarList3.SetProgressValue (<a  href="https://github.com/ochafik/nativelibs4java/issues/218">issue #218</a>)</li>
<li>Fixed Pointer.getByteBuffer() and Pointer.getBytes() (and all their type variants !)</li>
<li>Fixed StructIO.getEnumField (now returns an IntValuedEnum&lt;E&gt;)</li>
<li>Fixed handling of CLong / SizeT java fields in structs (cf. <a  href="https://github.com/ochafik/nativelibs4java/issues/253">issue #253</a>)</li>
<li>Fixed StructIO.FieldDecl accessibility to allow override of all StructIO.Customizer methods (cf. <a  href="https://github.com/ochafik/nativelibs4java/issues/220">issue #220</a>)</li>
<li>Fixed regression on libc, created with null path (<a  href="https://github.com/ochafik/nativelibs4java/issues/217">issue #217</a>)</li>
<li>Fixed back-references in Visual C++ demangler (<a  href="https://github.com/ochafik/nativelibs4java/issues/291">issue #291</a>)</li>
<li>Fixed binding of IntValuedEnum&lt;E&gt; types</li>
<li>Fixed handling of virtual destructors with GCC-compiled libraries (and virtual table pointer + runtime guess / check of virtual index for virtual methods) (<a  href="https://github.com/ochafik/nativelibs4java/issues/281">issue #281</a>)</li>
<li>Fixed shortcuts in GCC4Demangler (contrib from Rémi Émonet, <a  href="https://github.com/ochafik/nativelibs4java/issues/211">issue #211</a>)</li>
<li>Added support for PointerIO&lt;IntValuedEnum&lt;E&gt;&gt; (<a  href="https://github.com/ochafik/nativelibs4java/issues/261">issue #261</a>)</li>
<li>Added ProcessUtils.getCurrentProcessId()</li>
<li>Allow libname.so and name.so for embedded libraries on Unix (<a  href="https://github.com/ochafik/nativelibs4java/issues/215">issue #215</a>)</li>
<li>Enhanced multi-threaded performance of PointerIO.getInstance (<a  href="https://github.com/ochafik/nativelibs4java/issues/203">issue #203</a>)</li>
<li>Added Pointer.getXxxs(XxxBuffer)</li>
<li>Added alias mechanism for annotations : any annotation which class is itself annotated by @Ptr / @CLong can serve as an alias (<a  href="https://github.com/ochafik/nativelibs4java/issues/202">issue #202</a>)</li>
<li>Added native error log when LoadLibrary or dlopen failed</li>
<li>Added IntValuedEnum&lt;E&gt; FlagSet.fromValue(int, E&#8230;)</li>
<li>Enabled all compiler optimizations on all platforms but win32</li>
<li>Updated doc of Pointer.getXxxs()</li>
<li>Added experimental by-value struct support on amd64 for structs larger than 64 bits (disabled by default, set -Dbridj.structsByValue=true or BRIDJ_STRUCTS_BY_VALUE=1 to enable)</li>
</ul>
<div>
<p>Special thanks to the users, <a  href="http://code.google.com/p/bridj/wiki/CreditsAndLicense">contributors</a> and bug reporters that helped getting this version out !</p>
<p>You can contribute to the project by <a  href="https://github.com/ochafik/nativelibs4java/issues?labels=BridJ">reporting bugs here</a> and joining the <a  href="http://groups.google.com/group/nativelibs4java">NativeLibs4Java Community</a>.</p>
<p>Wait no longer : <a  href="http://code.google.com/p/bridj/wiki/Download">download and use BridJ</a> now !</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://ochafik.com/blog/?feed=rss2&#038;p=737</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>January Update : JNAerator, BridJ, JavaCL, ScalaCL and&#8230; Scalaxy !</title>
		<link>http://ochafik.com/blog/?p=724</link>
		<comments>http://ochafik.com/blog/?p=724#comments</comments>
		<pubDate>Fri, 06 Jan 2012 00:43:52 +0000</pubDate>
		<dc:creator>zOlive</dc:creator>
				<category><![CDATA[BridJ]]></category>
		<category><![CDATA[In English]]></category>
		<category><![CDATA[JavaCL]]></category>
		<category><![CDATA[JNAerator]]></category>
		<category><![CDATA[NativeLibs4Java]]></category>
		<category><![CDATA[ScalaCL]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ochafik.com/blog/?p=724</guid>
		<description><![CDATA[TweetHappy New Year ! First, I&#8217;d like to thank all the users of JNAerator, BridJ, JavaCL and ScalaCL for their continued support and help. The progress over this year wouldn&#8217;t have been possible without the contributions of Rémi Émonet (biggest &#8230; <a href="http://ochafik.com/blog/?p=724">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton724" class="tw_button" style="float:right;margin-left:10px;"><a  href="http://twitter.com/share?url=http%3A%2F%2Fgoo.gl%2FjnrtR&#038;via=ochafik&#038;text=January%20Update%20%3A%20JNAerator%2C%20BridJ%2C%20JavaCL%2C%20ScalaCL%20and%26%238230%3B%20Scalaxy%20%21&#038;related=ochafik:Author+of+BridJ%2C+JNAerator%2C+JavaCL%2C+ScalaCL+and+NativeLibs4Java&#038;lang=en&#038;count=vertical&#038;counturl=http%3A%2F%2Fochafik.com%2Fblog%2F%3Fp%3D724" class="twitter-share-button" style="width:55px;height:22px;background:transparent url('http://ochafik.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><h2>Happy New Year !</h2>
<p>First, I&#8217;d like to thank all the users of <a  title="JNAerator" href="http://code.google.com/p/jnaerator/">JNAerator</a>, <a  title="BridJ" href="http://code.google.com/p/bridj/">BridJ</a>, <a  title="JavaCL" href="http://code.google.com/p/javacl/">JavaCL</a> and <a  title="ScalaCL" href="http://code.google.com/p/scalacl/">ScalaCL</a> for their continued support and help.</p>
<p>The progress over this year wouldn&#8217;t have been possible without the contributions of Rémi Émonet (biggest patcher), Kazó Csaba (who even created <a  title="javaclpp" href="https://gitorious.org/javaclpp">javaclpp</a>) and Atsushi Eno (Android support).</p>
<p>I&#8217;d also like to give a special thank to some of the most prolific and friendliest bug-reporters of this year : Andrei Sochirca, Raphael Cohn, Andrea Aime (but there are so <a  href="https://github.com/ochafik/nativelibs4java/issues">many others</a> !).</p>
<p>Now here are some news about the projects, for those who don&#8217;t follow the <a  href="https://github.com/ochafik/nativelibs4java/commits/master">commits on github</a> <img src='http://ochafik.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<h2>Maven Central</h2>
<p>I&#8217;m in the process of getting all NativeLibs4Java artifacts on the <a  href="http://search.maven.org/">Maven Central</a> repository (using <a  href="http://nexus.sonatype.org/oss-repository-hosting.html">Sonatype OSS</a>). What this means is that you won&#8217;t need to add repository and/or pluginRepository tags to your Maven project files to get the releases, and that the snapshots will now be available from <a  href="http://oss.sonatype.org/content/groups/public/">Sonatype&#8217;s OSS Snapshots</a> Repository (see <a  href="http://code.google.com/p/bridj/wiki/Download#Use_with_Maven">updated usage instructions</a>).</p>
<p>There are still a few blocking points (like, deploying Android&#8217;s dex tool to Maven Central), but I&#8217;m optimistic about finishing this task in the next few weeks.</p>
<p>In the meanwhile, should you want to build from sources or even just depend on a snapshot version, you might need to install dx to your local repository manually using the script <a  href="https://github.com/ochafik/nativelibs4java/blob/master/libraries/BridJ/admin/android-dx-package">BridJ/admin/android-dx-package</a>.</p>
<h2>BridJ</h2>
<p>I&#8217;ll be releasing version 0.6.1 of <a  href="http://code.google.com/p/bridj/">BridJ</a> with tons of fixes as soon as the Maven Central work is completed.</p>
<p>Please note that passing or returning structs by value will still not be supported in that release, although some experimental work has been shoved in (for very large structs on select platforms).</p>
<p>For more details please see <a  href="https://github.com/ochafik/nativelibs4java/blob/master/libraries/BridJ/CHANGELOG">BridJ&#8217;s CHANGELOG</a>.</p>
<h2>JNAerator</h2>
<p>This year I&#8217;ve been criminally lazy with <a  href="http://code.google.com/p/jnaerator/">JNAerator</a> release notes : I haven&#8217;t announced versions 0.9.8 and 0.9.9 publicly&#8230; maybe because I wasn&#8217;t that proud of the stability of these two versions :-S</p>
<p>Anyway, 2012 should be much better since the upcoming version 0.9.10 is bound to become the best version of JNAerator ever, with a few quantum leaps in features and stability (will release it in within a few weeks).</p>
<p>For more details please see <a  href="https://github.com/ochafik/nativelibs4java/blob/master/libraries/jnaerator/CHANGELOG">JNAerator&#8217;s CHANGELOG</a>.</p>
<p>Oh, and please note a big change here : <strong>JNAerator artifact&#8217;s groupId was changed to com.nativelibs4java</strong> (was previously com.jnaerator), and snapshots are available on <a  href="http://oss.sonatype.org/content/groups/public/">Sonatype&#8217;s OSS Snapshots</a> Repository.</p>
<h2>JavaCL</h2>
<p>Version 1.0-RC2 of <a  href="http://code.google.com/p/javacl/">JavaCL</a> will ship soon, with quite a few bug fixes.</p>
<p>For more details please see <a  href="https://github.com/ochafik/nativelibs4java/blob/master/libraries/OpenCL/CHANGELOG">JavaCL&#8217;s CHANGELOG</a>.</p>
<p>Oh, and last but not least : JavaCL is now covered in the chapter of <a  href="http://www.manning.com/scarpino2/">OpenCL in Action</a> (clearly the best OpenCL reference and hands-on guide out there, packed with amazing real-world examples !)</p>
<p><a  href="http://www.manning.com/scarpino2/"><img class="alignnone" src="http://2.bp.blogspot.com/-Tk16qtGKxOo/TVxNqRZOw2I/AAAAAAAAAAU/QztUYmvmq-A/s272/OpenCL_new.gif" alt="" width="256" height="250" /></a></p>
<h2>ScalaCL vs. Scalaxy</h2>
<p>Since last summer&#8217;s <a  href="http://scalathon.org/">Scalathon</a>, progress on <a  href="http://code.google.com/p/scalacl/">ScalaCL</a> hasn&#8217;t been very visible because it&#8217;s been a bit slow : the new stream rewrite pipeline broke all the tests (especially those that compare the compiled bytecode to some reference hand-rewritten version), so it&#8217;s become hard and unrewarding to work on the project. But now the tests are almost back to normal, and it&#8217;s time to split the project in two parts :</p>
<ul>
<li>Scalaxy Compiler Plugin for generalistic loop rewrites, performance warnings and compile-time coding guidelines enforcement</li>
<li>ScalaCL Collections &amp; Compiler Plugin for GPGPU computation (the plugin obviously depends on Scalaxy since it needs to rewrite loops found in Scala functions converted to OpenCL kernels)</li>
</ul>
<p>If you have any idea of a better name for Scalaxy, please contribute it <a  href="http://groups.google.com/group/nativelibs4java">on the list</a> or <a  href="http://twitter.com/#!/ochafik">on twitter</a> : previous codename was FaSca (for Faster Scala), but I&#8217;m not sure I like the new one much more :-S</p>
<p>It&#8217;s hard to say when a release will be ready for either ScalaCL or Scalaxy, since the latter still requires quite a bit of stabilization, but <a  href="http://code.google.com/p/scalacl/wiki/Usage">snapshots should already be usable right now</a>.</p>
<p>That&#8217;s it for today, happy hacking to everyone !</p>
]]></content:encoded>
			<wfw:commentRss>http://ochafik.com/blog/?feed=rss2&#038;p=724</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BridJ 0.6 released : new protected mode, more stable (especially on Windows), Objective-C delegates &amp; blocks</title>
		<link>http://ochafik.com/blog/?p=715</link>
		<comments>http://ochafik.com/blog/?p=715#comments</comments>
		<pubDate>Mon, 07 Nov 2011 23:29:05 +0000</pubDate>
		<dc:creator>zOlive</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ochafik.com/blog/?p=715</guid>
		<description><![CDATA[TweetBridJ is an innovative native bindings library that lets Java programmers use native libraries (written in C, C++, ObjectiveC and more) in a very natural way (inspired by the great JNA, with better performance, C++ and generics added). Here&#8217;s a &#8230; <a href="http://ochafik.com/blog/?p=715">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton715" class="tw_button" style="float:right;margin-left:10px;"><a  href="http://twitter.com/share?url=http%3A%2F%2Fgoo.gl%2FzfQJQ&#038;via=ochafik&#038;text=BridJ%200.6%20released%20%3A%20new%20protected%20mode%2C%20more%20stable%20%28especially%20on%20Windows%29%2C%20Objective-C%20delegates...%20&#038;related=ochafik:Author+of+BridJ%2C+JNAerator%2C+JavaCL%2C+ScalaCL+and+NativeLibs4Java&#038;lang=en&#038;count=vertical&#038;counturl=http%3A%2F%2Fochafik.com%2Fblog%2F%3Fp%3D715" class="twitter-share-button" style="width:55px;height:22px;background:transparent url('http://ochafik.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p><a  href="http://code.google.com/p/bridj/">BridJ</a> is an innovative native bindings library that lets Java programmers use native libraries (written in C, C++, ObjectiveC and more) in a very natural way (inspired by the great <a  href="http://jna.java.net/">JNA</a>, with better performance, C++ and generics added).</p>
<p>Here&#8217;s a summary of the changes between <a  href="http://ochafik.com/blog/?p=674">version 0.5</a> and this new version 0.6 (see <a  href="https://github.com/ochafik/nativelibs4java/blob/master/libraries/BridJ/CHANGELOG">full change log here</a>) :</p>
<ul>
<li>Added errno/GetLastError() mechanism : declare methods to throw org.bridj.LastError and it&#8217;s all handled automatically (issue #74)</li>
<li>Added protected mode (-Dbridj.protected=true / BRIDJ_PROTECTED=1), to prevent native crashes (makes BridJ bindings slower + disables optimized raw calls).</li>
<li>Added proxy-based Objective-C delegates support (forwards unknown methods to a Java instance) (issue #188)</li>
<li>Added Objective-C 2.0 blocks support (similar to callbacks, inherit from ObjCBlock instead of Callback) (issue #192)</li>
<li>Added Pointer.asList() and .asList(ListType) to get a List view of the pointed memory
<ul>
<li>depending on the ListType, the view can be mutable / resizeable</li>
<li>removed the List interface from Pointer (which is now just an Iterable)</li>
<li>added Pointer.allocateList(type, capacity) to create a NativeList from scratch (has a .getPointer method to grab the resulting memory at the end)</li>
</ul>
</li>
<li>Added Pointer.moveBytesTo(Pointer)</li>
<li>Added support for embedded libraries extraction from &#8220;lib/arch&#8221; paths (along with &#8220;org/bridj/lib/arch&#8221;, where arch uses BridJ&#8217;s convention)</li>
<li>Added TimeT (time_t), timeval classes (issue #72)</li>
<li>Added Platform.getMachine() (same result as `uname -m`)</li>
<li>Added support for multiarch Linux distributions (issue #2)</li>
<li>Added support for versioned library file names (issue #72)</li>
<li>Added global allocated memory alignment setting (BRIDJ_DEFAULT_ALIGNMENT env. var. &amp; bridj.defaultAlignment property), + Pointer.allocateAlignedArray</li>
<li>Added basic calls log mechanism (disables direct mode) : -Dbridj.logCalls=true or BRIDJ_LOG_CALLS=1 (only logs the method name &amp; signature, not the arguments or returned values)</li>
<li>Added BridJ.setMinLogLevel(Level) (issue #190)</li>
<li>Added Platform.addEmbeddedLibraryResourceRoot(root) to use &amp; customize the embedded library extraction feature in user projects</li>
<li>Added support for packed structs (@Struct(pack = 1), or any other pack value)</li>
<li>Added check of BridJ environment variables and Java properties : if any BRIDJ_* env. var. or bridj.* property does not exist, it will log warnings + full list of valid options</li>
<li>Added @JNIBound annotation to mark native methods that should not be bound by BridJ but by plain old JNI</li>
<li>Fixed Pointer.next/.offset methods (used to throw errors a the end of iteration)</li>
<li>Fixed Pointer.getNativeObjectAtOffset(long byteOffset, Type type)</li>
<li>Fixed struct fields implemented as Java fields</li>
<li>Fixed resolution of MacOS X &#8220;ApplicationServices&#8221; framework binaries, such as CoreGraphics</li>
<li>Fixed some COM bugs with IUnknown</li>
<li>Fixed demangling/matching of CLong &amp; SizeT</li>
<li>Fixed CLong &amp; SizeT arguments</li>
<li>Fixed Objective-C runtime (basic features), added NSString constructor &amp; NSDictionary (with conversion to/from Map&amp;lt;NSString, NSObject&amp;gt;)</li>
<li>Fixed crashes on Win32 (when using Pointer class in bound function arguments)</li>
<li>Fixed crash during deallocation of Callbacks + fixed leak of Callbacks (now need to retain a reference to callbacks or use BridJ.protectFromGC / unprotectFromGC)</li>
<li>Made the StructIO customization mechanism more flexible</li>
<li>Made JawtLibrary public</li>
<li>Various Javadoc tweaks</li>
</ul>
<p>Special thanks to the users, <a  href="http://code.google.com/p/bridj/wiki/CreditsAndLicense">contributors</a> and bug reporters that helped getting this version out !</p>
<p>You can contribute to the project by <a  href="https://github.com/ochafik/nativelibs4java/issues?labels=BridJ">reporting bugs here</a> and joining the <a  href="http://groups.google.com/group/nativelibs4java">NativeLibs4Java Community</a>.</p>
<p>Wait no longer : <a  href="http://code.google.com/p/bridj/wiki/Download">download and use BridJ</a> now !</p>
]]></content:encoded>
			<wfw:commentRss>http://ochafik.com/blog/?feed=rss2&#038;p=715</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaCL 1.0.0-RC1 released : switched to BridJ, added FFT utils and UJMP matrices, bugfixes, API updates…</title>
		<link>http://ochafik.com/blog/?p=615</link>
		<comments>http://ochafik.com/blog/?p=615#comments</comments>
		<pubDate>Wed, 22 Jun 2011 23:22:54 +0000</pubDate>
		<dc:creator>zOlive</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ochafik.com/blog/?p=615</guid>
		<description><![CDATA[TweetJavaCL v1.0.0 RC1 is available ! Feedback needed : last-minute bugs will be fixed in next release candidates within the coming weeks, then a final 1.0 version will be released. Download / Install &#124; Browse JavaDoc &#124; Getting Started (Tutorial) &#8230; <a href="http://ochafik.com/blog/?p=615">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton615" class="tw_button" style="float:right;margin-left:10px;"><a  href="http://twitter.com/share?url=http%3A%2F%2Fgoo.gl%2FtUu3o&#038;via=ochafik&#038;text=JavaCL%201.0.0-RC1%20released%20%3A%20switched%20to%20BridJ%2C%20added%20FFT%20utils%20and%20UJMP%20matrices%2C%20bugfixes%2C%20API%20updates%E2%80%A6&#038;related=ochafik:Author+of+BridJ%2C+JNAerator%2C+JavaCL%2C+ScalaCL+and+NativeLibs4Java&#038;lang=en&#038;count=vertical&#038;counturl=http%3A%2F%2Fochafik.com%2Fblog%2F%3Fp%3D615" class="twitter-share-button" style="width:55px;height:22px;background:transparent url('http://ochafik.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p><a  href="http://code.google.com/p/javacl/" _mce_href="http://code.google.com/p/javacl/">JavaCL</a> v1.0.0 RC1 is available !</p>
<p><em>Feedback needed</em> : last-minute bugs will be fixed in next release candidates within the coming weeks, then a final 1.0 version will be released.</p>
<p><a  href="http://code.google.com/p/javacl/wiki/Usage">Download / Install</a> | <a  href="http://nativelibs4java.sourceforge.net/javacl/api/stable">Browse JavaDoc</a> | <a  href="http://code.google.com/p/javacl/wiki/GettingStarted">Getting Started (Tutorial)</a> | <a  href="http://groups.google.fr/group/nativelibs4java/">Discuss</a></p>
<p><a  href="http://nativelibs4java.sourceforge.net/webstart/OpenCL/InteractiveImageTransformDemo.jnlp" _mce_href="http://nativelibs4java.sourceforge.net/webstart/OpenCL/InteractiveImageTransformDemo.jnlp"><img class="size-medium wp-image-489" title="JavaCLInteractiveImageTransformDemo" src="http://ochafik.com/blog/wp-content/uploads/2011/02/JavaCLInteractiveImageTransformDemo-300x120.png" _mce_src="http://ochafik.com/blog/wp-content/uploads/2011/02/JavaCLInteractiveImageTransformDemo-300x120.png" alt="" width="300" height="120"></p>
<p>
Launch the new JavaCL Interactive Image Transform Editor.</p>
<p>
</a></p>
<h2>Release Notes</h2>
<p>Here are the main changes from this new version (<a  href="http://code.google.com/p/nativelibs4java/source/browse/trunk/libraries/OpenCL/CHANGELOG">see full change log</a>) :</p>
<ul>
<li>The <a  href="http://code.google.com/p/bridj/">BridJ</a>-powered version now becomes the default !<br />The JNA version is still maintained and available with all Maven artifact ids suffixed with &#8220;-jna&#8221;. See migration notes below&#8230;</li>
<li>Added simple Fourier-analysis classes (package <a  href="http://nativelibs4java.sourceforge.net/javacl/api/stable/com/nativelibs4java/opencl/util/fft/package-summary.html">com.nativelibs4java.opencl.util.fft</a>), with double and float variants, usable with primitive arrays or OpenCL buffers :
<ul>
<li>naive Discrete Fourier Transform (DFT) :<br />
<a  href="http://nativelibs4java.sourceforge.net/javacl/api/stable/com/nativelibs4java/opencl/util/fft/FloatDFT.html">FloatDFT</a>, <a  href="http://nativelibs4java.sourceforge.net/javacl/api/stable/com/nativelibs4java/opencl/util/fft/DoubleDFT.html">DoubleDFT</a>
	</li>
<li>Fast Fourier Transform (FFT) for power-of-two arrays / buffers (performs better than <a  href="http://commons.apache.org/math/api-2.1/org/apache/commons/math/transform/FastFourierTransformer.html">Apache Commons</a> on a CPU) :<br />
<a  href="http://nativelibs4java.sourceforge.net/javacl/api/stable/com/nativelibs4java/opencl/util/fft/FloatFFTPow2.html"> FloatFFTPow2 </a>, <a  href="http://nativelibs4java.sourceforge.net/javacl/api/stable/com/nativelibs4java/opencl/util/fft/DoubleFFTPow2.html">DoubleFFTPow2</a>
	</li>
</ul>
</li>
<li>Added some math-related compiler options to <a  href="http://nativelibs4java.sourceforge.net/javacl/api/stable/com/nativelibs4java/opencl/CLProgram.html" _mce_href="http://nativelibs4java.sourceforge.net/javacl/api/stable/com/nativelibs4java/opencl/CLProgram.html">CLProgram</a> :
<ul>
<li>setFastRelaxedMath() (triggers all the others !)
	</li>
<li>setFiniteMathOnly()
	</li>
<li>setUnsafeMathOptimizations()
	</li>
<li>setMadEnable()
	</li>
<li>setNoSignedZero()
	</li>
</ul>
</li>
<li>Added <a  href="http://nativelibs4java.sourceforge.net/javacl/api/stable/com/nativelibs4java/opencl/CLContext.html">CLContext</a>.createBuffer(Usage, Buffer)
</li>
<li>Added <a  href="http://nativelibs4java.sourceforge.net/javacl/api/stable/com/nativelibs4java/opencl/CLBuffer.html">CLBuffer</a>.copyTo(CLQueue, CLMem destination, CLEvent&#8230;) and CLBuffer.emptyClone(Usage)
</li>
<li>Added <a  href="http://nativelibs4java.sourceforge.net/javacl/api/stable/com/nativelibs4java/util/NIOUtils.html">NIOUtils</a>.indirectBuffer(size, bufferClass)
</li>
<li>Added CLContext.toString
</li>
<li>Deprecated CLXXXBuffer in favor of CLBuffer&lt;xxx&gt; (CLIntBuffer becomes CLBuffer&lt;Integer&gt;, etc&#8230;)</li>
<li>Changed CLContext.createBuffer(Usage, length, class) to <a href="http://nativelibs4java.sourceforge.net/javacl/api/stable/com/nativelibs4java/opencl/CLContext.html#createBuffer(com.nativelibs4java.opencl.CLMem.Usage, java.lang.Class, long)">createBuffer(Usage, class, length)</a> to match the JavaCL/BridJ API (and provoke migration issues : people should now use a primitive class rather than an NIO buffer class !!!
</li>
<li>Complete rewrite of <http: www.ujmp.org="">UJMP <a  href="http://code.google.com/p/nativelibs4java/source/browse/branches/OpenCL-BridJ/libraries/OpenCL/Blas/src/test/java/com/nativelibs4java/opencl/blas/ujmp/UJMPOpenCLTest.java" _mce_href="http://code.google.com/p/nativelibs4java/source/browse/branches/OpenCL-BridJ/libraries/OpenCL/Blas/src/test/java/com/nativelibs4java/opencl/blas/ujmp/UJMPOpenCLTest.java">Matrix implementation</a>, using a design borrowed to <a  href="http://scalacl.googlecode.com/" _mce_href="http://scalacl.googlecode.com/">ScalaCL</a> (uses the BridJ port of JavaCL)<br />
</http:></li>
<li>Fixed <a  href="http://code.google.com/p/nativelibs4java/issues/detail?id=66" _mce_href="http://code.google.com/p/nativelibs4java/issues/detail?id=66">issue #66</a> (create temp files in ~/.javacl subdirectories instead of /tmp)
</li>
<li>Fixed OpenGL sharing on MacOS X
</li>
<li>Fixed CLProgram.getBinaries() in some cases
</li>
<li>Fixed CLBuffer.read on indirect buffers
</li>
<li>Fixed NPE that happens with null varargs CLEvent[] array
</li>
<li>Fixed length = 1 case in reduction utility
</li>
<li>Fixed ATI detection (&#8220;ATI Stream&#8221; now replaced by &#8220;AMD Accelerated Parallel Processing&#8221;, cf. Csaba&#8217;s comment in <a  href="http://code.google.com/p/nativelibs4java/issues/detail?id=39" _mce_href="http://code.google.com/p/nativelibs4java/issues/detail?id=39">issue #39</a>)
</li>
<li>Fixed <a  href="http://code.google.com/p/nativelibs4java/issues/detail?id=55" _mce_href="http://code.google.com/p/nativelibs4java/issues/detail?id=55">issue #55</a> : applied Kazo Csaba&#8217;s patch to fix the bounds of CLBuffer.map&#8217;s returned buffer
</li>
<li>Fixed inheritance of CLBuildException (now derives from CLException)
</li>
</ul>
<h2>Migration notes : from JNA to BridJ</h2>
<p>The &#8220;javacl&#8221; Maven artifact now refers to the BridJ version of JavaCL, while &#8220;javacl-jna&#8221; corresponds to the JNA version (which was the default version up to <a  href="http://ochafik.com/blog/?p=485" _mce_href="http://ochafik.com/blog/?p=485">1.0 beta 6</a>).</p>
<p>While the JNA version is still maintained (and will get patches at least for the 1.0.x versions), it is advised that all users migrate to the BridJ port at some point. The main selling points are :</p>
<ul>
<li>Smaller call overhead (<a  href="http://code.google.com/p/bridj/" _mce_href="http://code.google.com/p/bridj/">BridJ beats out JNA</a> in interop. performance)</li>
<li>BSD-licensed (as opposed to the LGPL license of the JNA version)</li>
<li>Nicer API, with generic CLBuffer&lt;T&gt; instead of typed buffer classes (CLIntBuffer is now CLBuffer&lt;Integer&gt;)</li>
<li>All the new features will be reserved to the BridJ version</li>
</ul>
<p>This <a  href="http://code.google.com/p/javacl/wiki/MigratingFromJNAToBridJ">quick migration guide on the wiki</a> will help you perform the move in minutes.</p>
<h2>Getting started</h2>
<p>You can read the <a  href="http://code.google.com/p/javacl/wiki/GettingStarted">Getting Started (Tutorial) page</a> on the wiki to get started very quickly !</p>
<p>Please join the <a  href="http://groups.google.fr/group/nativelibs4java/" _mce_href="http://groups.google.fr/group/nativelibs4java/">NativeLibs4Java Google Group</a> to discuss JavaCL / ScalaCL, get the latest news and ask for support from the growing JavaCL community.</p>
]]></content:encoded>
			<wfw:commentRss>http://ochafik.com/blog/?feed=rss2&#038;p=615</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BridJ 0.5 released : Android support, dynamic callbacks, prepackaged subsets, support for old Java and MacOS X versions&#8230;</title>
		<link>http://ochafik.com/blog/?p=674</link>
		<comments>http://ochafik.com/blog/?p=674#comments</comments>
		<pubDate>Tue, 21 Jun 2011 19:49:17 +0000</pubDate>
		<dc:creator>zOlive</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ochafik.com/blog/?p=674</guid>
		<description><![CDATA[TweetBridJ is an innovative native bindings library that lets Java programmers use native libraries (written in C, C++, ObjectiveC and more) in a very natural way (inspired by the great JNA, with better performance, C++ and generics added). Here&#8217;s a &#8230; <a href="http://ochafik.com/blog/?p=674">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton674" class="tw_button" style="float:right;margin-left:10px;"><a  href="http://twitter.com/share?url=http%3A%2F%2Fgoo.gl%2FFsK0b&#038;via=ochafik&#038;text=BridJ%200.5%20released%20%3A%20Android%20support%2C%20dynamic%20callbacks%2C%20prepackaged%20subsets%2C%20support%20for%20old%20Java%20and...%20&#038;related=ochafik:Author+of+BridJ%2C+JNAerator%2C+JavaCL%2C+ScalaCL+and+NativeLibs4Java&#038;lang=en&#038;count=vertical&#038;counturl=http%3A%2F%2Fochafik.com%2Fblog%2F%3Fp%3D674" class="twitter-share-button" style="width:55px;height:22px;background:transparent url('http://ochafik.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p><a  href="http://code.google.com/p/bridj/">BridJ</a> is an innovative native bindings library that lets Java programmers use native libraries (written in C, C++, ObjectiveC and more) in a very natural way (inspired by the great <a  href="http://jna.java.net/">JNA</a>, with better performance, C++ and generics added).</p>
<p>Here&#8217;s a summary of the changes between <a  href="http://ochafik.com/blog/?p=607">version 0.4.1</a> and this new version 0.5 (see <a  href="http://nativelibs4java.googlecode.com/svn/trunk/libraries/Runtime/BridJ/CHANGELOG">full change log here</a>) :</p>
<ul>
<li>Added support for the <a  href="http://www.android.com/">Android / arm</a> platform (<a  href="http://code.google.com/p/nativelibs4java/issues/detail?id=69">issue #69</a>)</li>
<li>Added <a  href="http://nativelibs4java.sourceforge.net/bridj/api/development/org/bridj/Pointer.html#clone()">Pointer.clone()</a> that duplicates the pointed memory (requires a pointer with bounds information)</li>
<li>Added various pre-packaged specialized subsets of BridJ : c-only, windows-only, macosx-only, unix-only, linux-only, ios-only, android (see <a  href="http://code.google.com/p/bridj/wiki/Download">details on the wiki</a>)</li>
<li>Added <a href="http://nativelibs4java.sourceforge.net/bridj/api/development/org/bridj/Pointer.html#allocateDynamicCallback(org.bridj.DynamicCallback, org.bridj.ann.Convention.Style, java.lang.reflect.Type, java.lang.reflect.Type...)">Pointer.allocateDynamicCallback(DynamicCallback, callingConv, returnType, paramTypes&#8230;)</a></li>
<li>Added BridJ native library path override : one can set the BRIDJ_LIBRARY environment variable or the &#8220;bridj.library&#8221; property to the full path of libbridj.so/.dylib/.dll</li>
<li>Fixed behaviour in environments with a null default classloader (as in Scala 2.9.0)</li>
<li>Added support for Java 1.5 (<a  href="http://code.google.com/p/nativelibs4java/issues/detail?id=57">issue #57</a>)</li>
<li>Added support for MacOS X 10.4, 10.5 (was previously restricted to 10.6)</li>
</ul>
<p>Special thanks to <a  href="https://github.com/atsushieno">Atsushi Eno</a>, whose testing and many patch proposals were instrumental in getting BridJ to work on Android.</p>
<p>By the way : anyone can contribute to the project by <a  href="http://code.google.com/p/nativelibs4java/issues/list">reporting bugs here</a>.</p>
<p>Wait no longer : <a  href="http://code.google.com/p/bridj/wiki/Download">download and use BridJ</a> and join the <a  href="http://groups.google.com/group/nativelibs4java">NativeLibs4Java Community</a> !</p>
]]></content:encoded>
			<wfw:commentRss>http://ochafik.com/blog/?feed=rss2&#038;p=674</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BridJ 0.4.1 released (r1990): many callbacks fixes, better windows APIs support, enhanced C++ templates&#8230;</title>
		<link>http://ochafik.com/blog/?p=607</link>
		<comments>http://ochafik.com/blog/?p=607#comments</comments>
		<pubDate>Fri, 13 May 2011 15:59:14 +0000</pubDate>
		<dc:creator>zOlive</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ochafik.com/blog/?p=607</guid>
		<description><![CDATA[TweetBridJ is an innovative native bindings library that lets Java programmers use native libraries (written in C, C++, ObjectiveC and more) in a very natural way (inspired by the great JNA, with better performance, C++ and generics added). Here are &#8230; <a href="http://ochafik.com/blog/?p=607">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton607" class="tw_button" style="float:right;margin-left:10px;"><a  href="http://twitter.com/share?url=http%3A%2F%2Fgoo.gl%2Fvg0it&#038;via=ochafik&#038;text=BridJ%200.4.1%20released%20%28r1990%29%3A%20many%20callbacks%20fixes%2C%20better%20windows%20APIs%20support%2C%20enhanced%20C%2B%2B...%20&#038;related=ochafik:Author+of+BridJ%2C+JNAerator%2C+JavaCL%2C+ScalaCL+and+NativeLibs4Java&#038;lang=en&#038;count=vertical&#038;counturl=http%3A%2F%2Fochafik.com%2Fblog%2F%3Fp%3D607" class="twitter-share-button" style="width:55px;height:22px;background:transparent url('http://ochafik.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p><a  href="http://code.google.com/p/bridj/">BridJ</a> is an innovative native bindings library that lets Java programmers use native libraries (written in C, C++, ObjectiveC and more) in a very natural way (inspired by the great <a  href="http://jna.java.net/">JNA</a>, with better performance, C++ and generics added).</p>
<p>Here are the changes since <a  href="http://ochafik.com/blog/?p=588">version 0.4</a> (see <a  href="http://nativelibs4java.googlecode.com/svn/trunk/libraries/Runtime/BridJ/CHANGELOG">full change log here</a>) :</p>
<ul>
<li>Fixed callbacks on Windows x86
	</li>
<li>Fixed multithreaded callbacks ! (callbacks called in a different thread than the one that created them used to hang indefinitely)
	</li>
<li>Fixed Pointer and ValuedEnum arguments and return values in callbacks
	</li>
<li>Fixed loading of libraries that depend on other libraries in the same directory on Windows (<a  href="http://code.google.com/p/nativelibs4java/issues/detail?id=65">issue #65</a>)
	</li>
<li>Fixed BridJ.sizeOf(Pointer.class), sizeOf(SizeT.class), sizeOf(CLong.class)&#8230;
	</li>
<li>Enhanced C++ templates support
	</li>
<li>Added support for Windows APIs Unicode vs. ANSI functions renaming (e.g. SendMessage being one of SendMessageW or SendMessageA, depending on Platform.useUnicodeVersionOfWindowsAPIs)
	</li>
<li>Added deprecated support for struct fields implemented as Java fields, to ease up migration from JNA (needs manual calls to BridJ.writeToNative(struct) and BridJ.readFromNative(struct)) (<a  href="http://code.google.com/p/nativelibs4java/issues/detail?id=54">issue #54</a>)
	</li>
<li>Added preliminary read-only support for STL&#8217;s std::vector<T> C++ type
	</li>
<li>Added BridJ.describe(Type) to describe structs layouts (automatically logged for each struct type when BRIDJ_DEBUG=1 or -Dbridj.debug=true)
	</li>
<li>Added BridJ.describe(NativeObject).
	</li>
<li>Added StructObject.toString() (calls BridJ.describe(this))
	</li>
<li>Added BRIDJ_DEBUG_POINTERS=1 (or -Dbridj.debug.pointers=true) to display extended pointer allocation / deallocation debug information
	</li>
<li>Reorganized Windows COM packages (moved out DirectX code to it own top-level project : com.nativelibs4java:directx4java)
	</li>
<li>Implemented FlagSet.equals
	</li>
</ul>
<p>Special thanks to Andrei Sochirca for this release : couldn&#8217;t have made it without his patient and tireless testing and bugs reporting.<br/><br />
Anyone can contribute to the project by <a  href="http://code.google.com/p/nativelibs4java/issues/list">reporting bugs here</a>).</p>
<p>Now what ?</p>
<ol>
<li><a  href="http://code.google.com/p/bridj/wiki/Download">Download</a> Bridj&#8217;s binaries : works on Windows (x86/x64), Linux (x86/x64), MacOS X (universal) and Solaris (x86)</li>
<li><a  rel="nofollow" href="http://jnaerator.sourceforge.net/webstart/JNAerator/JNAeratorStudio.jnlp">Generate BridJ wrappers</a> for your library using <a  rel="nofollow" href="http://jnaerator.googlecode.com">JNAerator</a> (just select &#8220;BridJ&#8221; in the &#8220;Runtime&#8221; combobox).</li>
<li>Read some documentation :
<ul>
<li>The <a  href="http://code.google.com/p/bridj/wiki/FAQ">FAQ</a> might save your life</li>
<li>BridJ API Javadoc :
<ul>
<li><a  rel="nofollow" href="http://nativelibs4java.sourceforge.net/bridj/api/development">BridJ Development API</a> (direct link : <a  rel="nofollow" href="http://nativelibs4java.sourceforge.net/bridj/api/development/org/bridj/Pointer.html">Pointer class</a>)</li>
<li><a  rel="nofollow" href="http://nativelibs4java.sourceforge.net/bridj/api/stable">BridJ Stable API (0.4.1)</a> (direct link : <a  rel="nofollow" href="http://nativelibs4java.sourceforge.net/bridj/api/stable/org/bridj/Pointer.html">Pointer class</a>)</li>
</ul>
</li>
</ul>
</li>
<p>	FYI Pointer is probably the most important class to look at, the only other classes you need to know about are the ones created by <a  rel="nofollow" href="http://jnaerator.googlecode.com">JNAerator</a>.</p>
<li>Join the <a  href="http://groups.google.com/group/nativelibs4java">NativeLibs4Java Google Group</a> to share your questions and remarks with the community !</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://ochafik.com/blog/?feed=rss2&#038;p=607</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>BridJ 0.4 released (r1869): subclass C++ from Java, better Javadoc and many fixes</title>
		<link>http://ochafik.com/blog/?p=588</link>
		<comments>http://ochafik.com/blog/?p=588#comments</comments>
		<pubDate>Fri, 08 Apr 2011 10:16:23 +0000</pubDate>
		<dc:creator>zOlive</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ochafik.com/blog/?p=588</guid>
		<description><![CDATA[TweetBridJ is an innovative native bindings library that lets Java programmers use native libraries (written in C, C++, ObjectiveC and more) in a very natural way (inspired by the great JNA, with better performance, C++ and generics added). In this &#8230; <a href="http://ochafik.com/blog/?p=588">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton588" class="tw_button" style="float:right;margin-left:10px;"><a  href="http://twitter.com/share?url=http%3A%2F%2Fgoo.gl%2FP7wfV&#038;via=ochafik&#038;text=BridJ%200.4%20released%20%28r1869%29%3A%20subclass%20C%2B%2B%20from%20Java%2C%20better%20Javadoc%20and%20many%20fixes&#038;related=ochafik:Author+of+BridJ%2C+JNAerator%2C+JavaCL%2C+ScalaCL+and+NativeLibs4Java&#038;lang=en&#038;count=vertical&#038;counturl=http%3A%2F%2Fochafik.com%2Fblog%2F%3Fp%3D588" class="twitter-share-button" style="width:55px;height:22px;background:transparent url('http://ochafik.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p><a  href="http://code.google.com/p/bridj/">BridJ</a> is an innovative native bindings library that lets Java programmers use native libraries (written in C, C++, ObjectiveC and more) in a very natural way (inspired by the great <a  href="http://jna.java.net/">JNA</a>, with better performance, C++ and generics added).</p>
<p>In this new version (0.4), there are a lot of bug fixes and new features :</p>
<ul>
<li>Added parsing of GNU LD scripts (<a  href="http://code.google.com/p/nativelibs4java/issues/detail?id=61">issue #61</a>)</li>
<li>Fixed demangling of size_t / long C types with GCC</li>
<li>Fixed Linux x86 symbols extraction</li>
<li>Added experimental C++ virtual overrides : it is now possible to subclass C++ classes from Java, even with anonymous inner classes ! (no support for multiple inheritance yet)</li>
<li>Fixed crash in C++ destructors at the JVM shutdown (<a  href="http://code.google.com/p/nativelibs4java/issues/detail?id=60">issue #60</a>)</li>
<li>Fixed callbacks with float args</li>
<li>Added support for varargs functions</li>
<li>Introduced basic C++ templates support (binding of compiled template classes, not template methods / functions yet)</li>
<li>Added dynamic functions support : Pointer.asDynamicFunction(callConv, returnType, argTypes&#8230;)</li>
<li>Added support for arbitrary C++ constructors</li>
<li>Added support for __stdcall callbacks</li>
<li>Added COM VARIANT class with very basic data conversion support</li>
<li>Added many COM UUID definitions (from uuids.h, codecapi.h, ksuuids.h)</li>
<li>Added Solaris x86 support</li>
<li>Added @DisableDirect annotation to force-disable raw assembly optimizations (also see BRIDJ_DIRECT=0 or -Dbridj.direct=false for global disable)</li>
<li>Fixed long return values (<a  href="http://code.google.com/p/nativelibs4java/issues/detail?id=47">issue #47</a>)</li>
<li>Fixed &#8216;@Ptr long&#8217; return values on 32 bits platforms</li>
<li>Fixed structs sub-structs and array fields</li>
<li>Fixed unions :
<ul>
<li>pure unions can be created with the @Union annotation on the union class (+ fields annotated with @Field(value = uniqueId))</li>
<li>structs with unioned fields can be defined with fields annotated with @Field(value = uniqueId, unionWith = indexOfTheFirstFieldOfTheUnion)</li>
</ul>
</li>
<li>Fixed size computation of unions &amp; structs (<a  href="http://code.google.com/p/nativelibs4java/issues/detail?id=51">issue #51</a>, <a  href="http://code.google.com/p/nativelibs4java/issues/detail?id=64">issue #64</a>)</li>
<li>Fixed JAWTUtils on win32 (<a  href="http://code.google.com/p/nativelibs4java/issues/detail?id=52">issue #52</a>)</li>
<li>Fixed Pointer.pointerToAddress(long, Class, Releaser) (<a  href="http://code.google.com/p/nativelibs4java/issues/detail?id=48">issue #48</a>)</li>
<li>Fixed incomplete refactoring (<a  href="http://code.google.com/p/nativelibs4java/issues/detail?id=58">issue #58</a>)</li>
<li>Moved all the is64Bits(), isWindows()&#8230; methods and SIZE_T_SIZE constants out of JNI class into new Platform class</li>
<li>Moved the C++ symbols demanglers to package org.bridj.demangling</li>
<li>Renamed Pointer.asPointerTo(Type) to Pointer.as(Type)</li>
<li>Enhanced FlagSet (added toString(), toEnum(), fromValue(ValuedEnum))</li>
<li>Enhanced Pointer (added allocate(Type), allocateArray(Type, long))</li>
<li>Greatly enhanced the API Javadoc : <a  href="http://nativelibs4java.sourceforge.net/bridj/api/stable/">stable version</a> / <a  href="http://nativelibs4java.sourceforge.net/bridj/api/development/">development version</a></li>
</ul>
<p>Many thanks to the early users and bug reporters (you can <a  href="http://code.google.com/p/nativelibs4java/issues/list">report bugs here</a>).</p>
<p>Now what ?</p>
<ol>
<li><a  href="http://code.google.com/p/bridj/wiki/Download">Download</a> Bridj&#8217;s binaries : works on Windows (x86/x64), Linux (x86/x64), MacOS X (universal) and Solaris (x86)</li>
<li><a  rel="nofollow" href="http://jnaerator.sourceforge.net/webstart/JNAerator/JNAeratorStudio.jnlp">Generate BridJ wrappers</a> for your library using <a  rel="nofollow" href="http://jnaerator.googlecode.com">JNAerator</a> (just select &#8220;BridJ&#8221; in the &#8220;Runtime&#8221; combobox).</li>
<li>Read some documentation :
<ul>
<li>The <a  href="http://code.google.com/p/bridj/wiki/FAQ">FAQ</a> might save your life</li>
<li>BridJ API Javadoc :
<ul>
<li><a  rel="nofollow" href="http://nativelibs4java.sourceforge.net/bridj/api/development">BridJ Development API (0.5-SNAPSHOT)</a> (direct link : <a  rel="nofollow" href="http://nativelibs4java.sourceforge.net/bridj/api/development/org/bridj/Pointer.html">Pointer class</a>)</li>
<li><a  rel="nofollow" href="http://nativelibs4java.sourceforge.net/bridj/api/stable">BridJ Stable API (0.4)</a> (direct link : <a  rel="nofollow" href="http://nativelibs4java.sourceforge.net/bridj/api/stable/org/bridj/Pointer.html">Pointer class</a>)</li>
</ul>
</li>
</ul>
</li>
<p>FYI Pointer is probably the most important class to look at, the only other classes you need to know about are the ones created by <a  rel="nofollow" href="http://jnaerator.googlecode.com">JNAerator</a>.</p>
<li>Join the <a  href="http://groups.google.com/group/nativelibs4java">NativeLibs4Java Google Group</a> to share your questions and remarks with the community !</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://ochafik.com/blog/?feed=rss2&#038;p=588</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JNAerator 0.9.7 released (r1817, 20110329) : better pointer types, better BridJ generation and C++ parsing</title>
		<link>http://ochafik.com/blog/?p=580</link>
		<comments>http://ochafik.com/blog/?p=580#comments</comments>
		<pubDate>Fri, 01 Apr 2011 12:33:50 +0000</pubDate>
		<dc:creator>zOlive</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ochafik.com/blog/?p=580</guid>
		<description><![CDATA[TweetMore than ever, JNAerator lets Java programmers access native libraries transparently, using a runtime such as BridJ (C / C++), JNA (C only) or Rococoa (Objective-C). As version 0.9.6 was a kind of silent release (not advertised), here are the main &#8230; <a href="http://ochafik.com/blog/?p=580">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="tweetbutton580" class="tw_button" style="float:right;margin-left:10px;"><a  href="http://twitter.com/share?url=http%3A%2F%2Fgoo.gl%2FXZgh1&#038;via=ochafik&#038;text=JNAerator%200.9.7%20released%20%28r1817%2C%2020110329%29%20%3A%20better%20pointer%20types%2C%20better%20BridJ%20generation%20and%20C%2B%2B%20parsing&#038;related=ochafik:Author+of+BridJ%2C+JNAerator%2C+JavaCL%2C+ScalaCL+and+NativeLibs4Java&#038;lang=en&#038;count=vertical&#038;counturl=http%3A%2F%2Fochafik.com%2Fblog%2F%3Fp%3D580" class="twitter-share-button" style="width:55px;height:22px;background:transparent url('http://ochafik.com/blog/wp-content/plugins/wp-tweet-button/tweetn.png') no-repeat  0 0;text-align:left;text-indent:-9999px;display:block;">Tweet</a></div><p>More than ever, <a  href="http://code.google.com/p/jnaerator/">JNAerator</a> lets Java programmers access native libraries transparently, using a runtime such as <a  href="http://code.google.com/p/bridj/">BridJ</a> (C / C++), <a  href="http://jna.java.net/">JNA</a> (C only) or <a  href="http://code.google.com/p/rococoa/">Rococoa</a> (Objective-C).</p>
<p>As version 0.9.6 was a kind of silent release (not advertised), here are the main changes since version 0.9.5 :</p>
<ul>
<li>Fixed generation of typed pointers (+ introduced undefined types for BridJ runtime)</li>
<li>Added generation of globals for BridJ</li>
<li>Added -parseInOneChunk option to control parsing more finely (forces regular, non isolated-mode parsing, which is more correct but also more fragile)</li>
<li>Fixed <a  href="http://code.google.com/p/jnaerator/issues/detail?id=82">issue 82</a> (enum renaming)</li>
<li>Fixed <a  href="http://code.google.com/p/jnaerator/issues/detail?id=79">issue 79</a> (unescaped quotes in string defines)</li>
<li>Fixed <a  href="http://code.google.com/p/jnaerator/issues/detail?id=84">issue 84</a> (some exotic function pointer syntax)</li>
<li>Fixed binding of Windows&#8217; BOOL type for BridJ: it&#8217;s int, not boolean !!!</li>
<li>Added explicit call to setFieldOrder in JNAerated JNA structures (not needed with BridJ, which has its @Field annotations to guarantee proper order)</li>
<li>Enhanced parsing and AST generation of C/C++ expressions</li>
<li>Fixed BridJ inherited struct fields indexes computation</li>
</ul>
<p>As usual, there&#8217;s more than one way to use JNAerator :</p>
<ul>
<li><a  href="http://jnaerator.sourceforge.net/webstart/JNAerator/JNAeratorStudio.jnlp">Launch JNAerator Studio with Java Web Start</a></li>
<li><a  href="http://code.google.com/p/jnaerator/downloads/list">Download the standalone JAR</a></li>
<li><a  href="http://code.google.com/p/jnaerator/wiki/Maven">Use JNAerator with Maven</a> (it even has a Maven plugin !)</li>
</ul>
<p>Many thanks to the bug reporters ! (you can help too : join the <a  href="http://groups.google.com/group/nativelibs4java/">NativeLibs4Java Google Group</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://ochafik.com/blog/?feed=rss2&#038;p=580</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

