GithubHelp home page GithubHelp logo

nativelibs4java / nativelibs4java Goto Github PK

View Code? Open in Web Editor NEW
291.0 30.0 83.0 101.08 MB

Repository for all NativeLibs4Java projects : JavaCL, ScalaCL, BridJ, JNAerator...

Home Page: http://code.google.com/p/nativelibs4java/

C 0.08% Java 18.27% Shell 0.21% HTML 81.23% CSS 0.01% Scala 0.08% Python 0.09% Batchfile 0.01%

nativelibs4java's People

Contributors

alagopus avatar ctrimble avatar cwalther avatar enzymepower avatar finson avatar ixkael avatar mkw avatar ochafik avatar rkraneis avatar sarxos avatar topikachu avatar twitwi avatar washley avatar wsiegenthaler avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nativelibs4java's Issues

Putting preprocessor lines in Kernel

What steps will reproduce the problem?

  1. add line like #pragma OPENCL EXTENSION cl_khr_global_int32_base_atomics : enable
    or #DEFINE JUNK 1 to source of a kernel completely working kernel
    2.Call OpenCLLibrary.INSTANCE.clCreateProgramWithSource, the array version
    3.Call OpenCLLibrary.INSTANCE.clBuildProgram

What is the expected output? What do you see instead?
expected CL_SUCCESS got CL_BUILD_PROGRAM_FAILURE
and build log has "No kernels or only kernel prototypes found."

What version of the product are you using? On what operating system?
beta4, SN

If the JVM crashes, please attach the hs_err_pidXXX.log crash report file
written by the JVM.

For JavaCL / OpenCL4Java / ScalaCL issues, if the HardwareReport runs fine
(
http://nativelibs4java.sourceforge.net/webstart/OpenCL/HardwareReport.jnlp)
, please attach its HardwareReport.html output file to this issue.

Please use labels and text to provide additional information.

Google Code Info:
Issue #: 19
Author: [email protected]
Created On: 2010-01-29T21:39:47.000Z
Closed On: 2010-01-30T16:42:13.000Z

[ScalaCLPlugin] ClassCastException when using map with breakOut

What steps will reproduce the problem?

Run the following code:

object Test2 {
def main(args: Array[String]) {
val a: Set[Int] = List(1).map(_ + 1)(collection.breakOut)
println(a)
}
}

What is the expected output? What do you see instead?

Set(2), but instead we get:

Exception in thread "main" java.lang.ClassCastException: scala.collection.immutable.$colon$colon cannot be cast to scala.collection.immutable.Set
at test1.Test2$.main(tests.scala:10)
at test1.Test2.main(tests.scala)

What version of the product are you using? On what operating system?

0.2 SNAPSHOT from today.

Google Code Info:
Issue #: 43
Author: ismaelj
Created On: 2011-01-17T22:53:29.000Z
Closed On: 2011-01-18T13:49:41.000Z

Struct by value

Hi,

I know it is a known limitation that BridJ does not support passing struct by value. I just wanted to leave it here as an issue to be notified in case this feature is ever implemented. Feel free to close the issue if you don't plan on adding it.

Thanks for this great library.

Binary kernel support

A feature I was missing from JavaCL is the support for loading binary kernels. I suppose that the reason is that for most kernels it is a non-issue to compile from source on program startup, thus there was no need for this function. Well, I have a kernel that takes 99 minutes to compile, so I pretty much needed to implement this feature, and now I kindly ask for official inclusion.

Implementation is short and straightforward, but nonetheless, I attach the diff with which I hacked the functionality into OpenCL; it cannot hurt. (The "hacky" part is that, because I couldn't figure out how to use PointerByReference, I added an overload with a String[] parameter to OpenCLLibrary; magically an implementation is generated for it, this one I could use.)

Google Code Info:
Issue #: 30
Author: [email protected]
Created On: 2010-09-07T07:50:25.000Z
Closed On: 2010-12-25T19:48:35.000Z

CLEvent.waitFor bug causes segfault

Calling CLEvent.waitFor with more than one event parameter results in a
segmentation fault.

The bug is in the function CLEvent.to_cl_event_array; this function does
not correctly assemble the event array if there are multiple events. The
iDest value (declared on line 212 in revision 794) which is used to fill
the result array is never incremented and is thus always 0.

int iDest = 0;
for (int i = 0; i < n; i++) {
CLEvent event = events[i];
if (event == null || event.getEntity() == null)
continue;
event_wait_list[iDest] = event.getEntity();
// missing "iDest++;"
}

Google Code Info:
Issue #: 25
Author: [email protected]
Created On: 2010-06-03T12:22:12.000Z
Closed On: 2010-06-05T06:17:51.000Z

CLPlatform#toString() extensions formatting bug

What steps will reproduce the problem?

  1. call CLPlatform#toString() and print result

What is the expected output? What do you see instead?

i see:
Using platform [...] profile: FULL_PROFILE, extensions:
[Ljava.lang.String;@1a1c887}

instead of [Ljava.lang.String;@1a1c887 should be list of extensions

What version of the product are you using? On what operating system?
1.0-beta-2

Please provide any additional information below.
CLPlatform.java line 51:
return getName() + " {vendor: " + getVendor() + ", version: " +
getVersion() + ", profile: " + getProfile() + ", extensions: " +
getExtensions() +"}";

should be changed to:
return getName() + " {vendor: " + getVendor() + ", version: " +
getVersion() + ", profile: " + getProfile() + ", extensions: " +
Arrays.toString(getExtensions()) +"}";

Google Code Info:
Issue #: 5
Author: [email protected]
Created On: 2009-10-11T09:40:58.000Z
Closed On: 2009-10-13T22:43:04.000Z

Java version

The 0.9.6 binaries available at http://nativelibs4java.sourceforge.net/maven/com/ were compiled with Java SE 6 (as per META-INF/MANIFEST.MF):

Manifest-Version: 1.0
Build-Jdk: 1.6.0_22
Built-By: ochafik
Created-By: Apache Maven
Archiver-Version: Plexus Archiver
.
.
.

Is it really necessary to use Java SE 6? Wouldn't it compile under Java 5.0 or, perhaps, Java 1.4?

The pom.xml files doesn't state clearly which version is necessary.

To my reckon, such a low-level project won't need Java 6 (which has only some enterprise grade additions, like XML serialization, custom annotation processors). Java 5.0 is still necessary if using some constructions like annotations, foreach, generics, among others.

Google Code Info:
Issue #: 46
Author: [email protected]
Created On: 2011-02-18T14:24:52.000Z
Closed On: 2011-02-20T11:49:19.000Z

[ScalaCLPlugin] AssertionError at transforming "List[Array[T]].toArray" in 0.2.Beta3

I have encountered an AssertionError at compiling "List(Array(1,2), Array(3,4)).toArray" in ScalaCLPlugin 0.2Beta3.

% env SCALACL_VERBOSE=1 SCALACL_TRACE=1 scala
scala> List(Array(1,2), Array(3,4)).toArray
[ScalaCL] issue with manifest for type Array[T] ?
java.lang.AssertionError: assertion failed: Empty manifest for type : Array[T]
at scalacl.RewritingPluginComponent$CollectionRewriters$ArrayBuilderTargetRewriter$class.newBuilderInstance(CollectionRewriters.scala:389)
at scalacl.RewritingPluginComponent$CollectionRewriters$ArrayRewriter$.newBuilderInstance(CollectionRewriters.scala:423)
at scalacl.RewritingPluginComponent$CollectionRewriters$HasBufferBuilder$class.newBuilder(CollectionRewriters.scala:183)
at scalacl.RewritingPluginComponent$CollectionRewriters$ArrayRewriter$.newBuilder(CollectionRewriters.scala:459)
at scalacl.LoopsTransformComponent$$anon$1$$anonfun$transform$4$$anonfun$apply$19.apply(LoopsTransformComponent.scala:457)
at scalacl.LoopsTransformComponent$$anon$1$$anonfun$transform$4$$anonfun$apply$19.apply(LoopsTransformComponent.scala:456)
at scalacl.RewritingPluginComponent$CollectionRewriters$ListRewriter$.foreach(CollectionRewriters.scala:602)
at scalacl.LoopsTransformComponent$$anon$1$$anonfun$transform$4.apply(LoopsTransformComponent.scala:450)
at scalacl.LoopsTransformComponent$$anon$1$$anonfun$transform$4.apply(LoopsTransformComponent.scala:240)
at scalacl.TreeBuilders$class.msg(TreeBuilders.scala:61)
at scalacl.LoopsTransformComponent.msg(LoopsTransformComponent.scala:60)
at scalacl.LoopsTransformComponent$$anon$1.transform(LoopsTransformComponent.scala:239)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$4.apply(Trees.scala:755)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$4.apply(Trees.scala:754)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:753)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
at scalacl.LoopsTransformComponent$$anon$1.transform(LoopsTransformComponent.scala:754)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:869)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:867)
at scala.collection.immutable.List.loop$1(List.scala:115)
at scala.collection.immutable.List.mapConserve(List.scala:132)
at scala.tools.nsc.ast.Trees$Transformer.transformStats(Trees.scala:867)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:775)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:49)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:49)
at scalacl.LoopsTransformComponent$$anon$1.transform(LoopsTransformComponent.scala:754)
at scala.tools.nsc.ast.Trees$Transformer.transformTemplate(Trees.scala:853)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$3.apply(Trees.scala:750)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$3.apply(Trees.scala:749)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:748)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
at scalacl.LoopsTransformComponent$$anon$1.transform(LoopsTransformComponent.scala:754)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:869)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:867)
at scala.collection.immutable.List.loop$1(List.scala:115)
at scala.collection.immutable.List.mapConserve(List.scala:132)
at scala.tools.nsc.ast.Trees$Transformer.transformStats(Trees.scala:867)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:775)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:49)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:49)
at scalacl.LoopsTransformComponent$$anon$1.transform(LoopsTransformComponent.scala:754)
at scala.tools.nsc.ast.Trees$Transformer.transformTemplate(Trees.scala:853)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$3.apply(Trees.scala:750)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$3.apply(Trees.scala:749)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:748)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
at scalacl.LoopsTransformComponent$$anon$1.transform(LoopsTransformComponent.scala:754)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:869)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:867)
at scala.collection.immutable.List.loop$1(List.scala:115)
at scala.collection.immutable.List.mapConserve(List.scala:132)
at scala.tools.nsc.ast.Trees$Transformer.transformStats(Trees.scala:867)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:775)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:49)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:49)
at scalacl.LoopsTransformComponent$$anon$1.transform(LoopsTransformComponent.scala:754)
at scala.tools.nsc.ast.Trees$Transformer.transformTemplate(Trees.scala:853)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$3.apply(Trees.scala:750)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$3.apply(Trees.scala:749)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:748)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
at scalacl.LoopsTransformComponent$$anon$1.transform(LoopsTransformComponent.scala:754)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:869)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:867)
at scala.collection.immutable.List.loop$1(List.scala:115)
at scala.collection.immutable.List.mapConserve(List.scala:132)
at scala.tools.nsc.ast.Trees$Transformer.transformStats(Trees.scala:867)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$1.apply(Trees.scala:739)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$1.apply(Trees.scala:739)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:738)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:49)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$2.apply(TypingTransformers.scala:51)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$2.apply(TypingTransformers.scala:51)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:51)
at scalacl.LoopsTransformComponent$$anon$1.transform(LoopsTransformComponent.scala:754)
at scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:870)
at scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:30)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply(Global.scala:282)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply(Global.scala:282)
at scala.tools.nsc.reporters.Reporter.withSource(Reporter.scala:48)
at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:282)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:256)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:256)
at scala.collection.Iterator$class.foreach(Iterator.scala:631)
at scala.collection.mutable.ListBuffer$$anon$1.foreach(ListBuffer.scala:304)
at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:256)
at scala.tools.nsc.Global$Run.compileSources(Global.scala:741)
at scala.tools.nsc.Interpreter.compileAndSaveRun(Interpreter.scala:518)
at scala.tools.nsc.Interpreter$Request.objRun(Interpreter.scala:892)
at scala.tools.nsc.Interpreter$Request.compile(Interpreter.scala:915)
at scala.tools.nsc.Interpreter.interpret(Interpreter.scala:598)
at scala.tools.nsc.Interpreter.interpret(Interpreter.scala:577)
at scala.tools.nsc.InterpreterLoop.reallyInterpret$1(InterpreterLoop.scala:472)
at scala.tools.nsc.InterpreterLoop.interpretStartingWith(InterpreterLoop.scala:515)
at scala.tools.nsc.InterpreterLoop.command(InterpreterLoop.scala:362)
at scala.tools.nsc.InterpreterLoop.processLine$1(InterpreterLoop.scala:243)
at scala.tools.nsc.InterpreterLoop.repl(InterpreterLoop.scala:249)
at scala.tools.nsc.InterpreterLoop.main(InterpreterLoop.scala:559)
at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:72)
at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
warning: [scalacl] :6 An unexpected error occurred while attempting an optimization
[scalacl] :6 Attempted optimization : 'transformed List[Array[T]].toArray into equivalent while loop.'
[scalacl] :6 You can skip this line with the following environment variable :
[scalacl] :6 SCALACL_SKIP=:6
[scalacl] :6 Error : java.lang.AssertionError: assertion failed: Empty manifest for type : Array[T]
[scalacl] :6 An unexpected error occurred while attempting an optimization
[scalacl] :6 Attempted optimization : 'transformed List[Array[T]].toArray into equivalent while loop.'
[scalacl] :6 You can skip this line with the following environment variable :
[scalacl] :6 SCALACL_SKIP=:6
[scalacl] :6 Error : java.lang.AssertionError: assertion failed: Empty manifest for type : Array[T]
res0: Array[Array[Int]] = Array(Array(1, 2), Array(3, 4))

What version of the product are you using? On what operating system?

-rw-r--r-- 1 mar 574394 2011-01-16 21:42 /home/maro/opt/scala/scala-2.8.1.final/misc/scala-devel/plugins/scalacl-compiler-plugin-0.2.Beta2.jar
-rw-r--r-- 1 mar 1294787 2011-01-16 21:42 /home/maro/opt/scala/scala-cur/lib/scalacl-0.2.Beta2-shaded.jar

Scala 2.8.1.final, Java 1.6.0_21, Ubuntu 10.04 (kernel 2.6.32 x86_64)

p.s.

Thanks for quick response and fix about issue40.
I'm very impressed with optimization by this compiler plugin,
because I have used ad-hoc approach using m4 preprocessor to same purpose...

Google Code Info:
Issue #: 41
Author: [email protected]
Created On: 2011-01-16T12:56:10.000Z
Closed On: 2011-01-16T23:12:58.000Z

[ScalaCLPlugin] NullPointerException at Array[(T1, T2)].foreach in 0.2.Beta2

ScalaCL Optimizer failed to transform "for ((i, j) <- Array(1 -> 1, 2 -> 2))".
Similar expressions ("Array(1->1, 2->2).foreach", "for ((i, j) <- List..." and "for (ij <- Array...") are OK.

% env SCALACL_TRACE=1 SCALACL_VERBOSE=1 scala

scala> for ((i, j) <- Array(1 -> 1, 2 -> 2)) println(i, j)
[scalacl] :6 transformed Array[(T1, T2)].filter into equivalent while loop.
[scalacl] :6 transformed Array[(T1, T2)].foreach into equivalent while loop.
java.lang.NullPointerException
at scala.collection.mutable.ArrayBuilder$ofRef.mkArray(ArrayBuilder.scala:51)
at scala.collection.mutable.ArrayBuilder$ofRef.resize(ArrayBuilder.scala:57)
at scala.collection.mutable.ArrayBuilder$ofRef.ensureSize(ArrayBuilder.scala:69)
at scala.collection.mutable.ArrayBuilder$ofRef.$plus$eq(ArrayBuilder.scala:74)
at .(:6)
at .()
at RequestResult$.(:9)
at RequestResult$.()
at RequestResult$scala_repl_result()
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(...

scala> for ((i, j) <- List(1 -> 1, 2 -> 2)) println(i, j)
[scalacl] :6 transformed List[(T1, T2)].filter into equivalent while loop.
(1,1)
(2,2)

scala> Array(1->1, 2->2).foreach { case (i, j) => println(i, j) }
[scalacl] :6 transformed Array[(T1, T2)].foreach into equivalent while loop.
(1,1)
(2,2)

What version of the product are you using? On what operating system?

-rw-r--r-- 1 mar 1294787 2011-01-15 21:41 lib/scalacl-0.2.Beta2-shaded.jar
-rw-r--r-- 1 mar 574394 2011-01-15 21:41 misc/scala-devel/plugins/scalacl-compiler-plugin-0.2.Beta2.jar

Scala 2.8.1.final, Java 1.6.0_21, Ubuntu 10.04 (kernel 2.6.32 x86_64)

Google Code Info:
Issue #: 40
Author: [email protected]
Created On: 2011-01-15T16:32:12.000Z
Closed On: 2011-01-16T01:01:31.000Z

Error on CLDevice.toString()

What steps will reproduce the problem?

  1. try to execute toString() on CLDevice
    -> OpenCL throws an error (see below)

What is the expected output? What do you see instead?
Guess the name would be enough.

What version of the product are you using? On what operating system?
Running OpenCL4Java-1.0-beta-1 on Ubuntu Linux 9.04. Using the latest NVDIA
drivers with OpenCL support but this should be a java intern error.

Please provide any additional information below.

Exception in thread "main" com.nativelibs4java.opencl.CLException: OpenCL
Error : CL_INVALID_VALUE
at com.nativelibs4java.opencl.CLException.error(CLException.java:52)
at com.nativelibs4java.opencl.CLInfoGetter.getNativeLong(CLInfoGetter.java:69)
at
com.nativelibs4java.opencl.CLDevice.getExecutionCapabilities(CLDevice.java:53)
at com.nativelibs4java.opencl.CLDevice.toString(CLDevice.java:167)
at java.lang.String.valueOf(String.java:2826)
at java.lang.StringBuilder.append(StringBuilder.java:115)
at de.fhaust.jmetest.OpenCLTest.main(OpenCLTest.java:29)

Google Code Info:
Issue #: 3
Author: [email protected]
Created On: 2009-09-30T21:14:47.000Z
Closed On: 2011-02-04T23:34:54.000Z

[ScalaCLPlugin] Inline arrays crash the array loop optimizer

{{{
class Crash {
def testOk {
val a = Array(1, 2, 3)
for (n <- a) {
println(n)
}
def testCrash {
for (n <- Array(1, 2, 3)) {
println(n)
}
}
}}}
Error trace :
{{{

source-Crash.scala,line-4,offset=78: transformed array foreach into equivalent while loop.
scala.tools.nsc.FatalError: method apply does not have a member apply
at scala.tools.nsc.symtab.Definitions$definitions$.getMember(Definitions.scala:492)
at scalacl.ArrayLoopsTransformComponent$$anon$1$$anonfun$2.apply(ArrayLoopsTransformComponent.scala:184)
at scalacl.ArrayLoopsTransformComponent$$anon$1$$anonfun$2.apply(ArrayLoopsTransformComponent.scala:179)
}}}

Google Code Info:
Issue #: 32
Author: olivier.chafik
Created On: 2010-10-05T15:23:13.000Z
Closed On: 2010-10-05T19:10:48.000Z

Add CLH_ERROR_NO_BINARY_FOR_GPU to CLException

What steps will reproduce the problem?

  1. See Apple bug #7372367
    2.
    3.

What is the expected output? What do you see instead?

Expected is an exception related to CLH_ERROR_NO_BINARY_FOR_GPU. Instead, we get a
CLException$InvalidValue exception.

What version of the product are you using? On what operating system?

Snapshot from Nov 5, 2009. MacOS 10.6.1.

Please provide any additional information below.

Google Code Info:
Issue #: 13
Author: [email protected]
Created On: 2009-11-06T20:49:15.000Z
Closed On:

createImage2D doesn't support 16bit images (converts them to 8bit)

Within my Java Program I create a CLImage2D from a BufferedImage "current_frame" the following way:

CLImage2D image = context.createImage2D(CLMem.Usage.Input,current_frame, false);

Although my BufferedImage is of the type TYPE_USHORT_GRAY (16bit grayscale), the CLImage2D is converted to an 8bit image.

I think this conversion is caused by the usage of the BufferedImage.getRGB function:
CLContext.createImage2D retrieves the pixel data of the BufferedImage via the function getImageIntPixels which is a member of the nativelibs4java. util.ImageUtils class. This function uses the BufferedImage.getRGB function in line 39

see:
http://code.google.com/p/nativelibs4java/source/browse/branches/OpenCL-BridJ/libraries/OpenCL/Core/src/main/java/com/nativelibs4java/util/ImageUtils.java?r=1195

The BufferedImage.getRGB function converts the data to 8bit.
see:
http://download.oracle.com/javase/1.4.2/docs/api/java/awt/image/BufferedImage.html#getRGB%28int,%20int%29

Maybe this problem can be solved by using the BufferedImage.getData function instead and then using the Raster.getPixels function to get the actual pixel data from the Raster.

Google Code Info:
Issue #: 38
Author: [email protected]
Created On: 2010-12-01T22:02:46.000Z
Closed On: 2010-12-05T21:17:39.000Z

public CLContext createContext(CLDevice... devices) creates context on only one device

Hi

It would seem line 199 in CLPlatform is incorrect,
it always creates a context on only 1 device:

cl_context context = CL.clCreateContext(null, 1, ids, null, null, errRef);

while it probably should read

cl_context context = CL.clCreateContext(null, nDevs, ids, null, null,
errRef);

or?

Google Code Info:
Issue #: 4
Author: [email protected]
Created On: 2009-10-10T13:03:45.000Z
Closed On: 2009-10-10T15:09:07.000Z

Particles Demo / JavaCL Particles Demo Compile Error

What steps will reproduce the problem?

  1. Navigate to http://code.google.com/p/nativelibs4java
  2. Click 'Particles Demo'
  3. Click '1K'
  4. See attached 'Observe.pdf' and 'Hardware Report.pdf'

What is the expected output? What do you see instead?
Spring screen prior to JIT OpenCL compilation / OpenGL buffer display..

What version of the product are you using? On what operating system?
Latest JNLP file, clean cache / Mac OS X, 10.6.2 / Java SE 6 / 3.06 GHz Intel Core 2 Duo / 4 GB
1067 MHz RAM

Please provide any additional information below.

Graphics card appears compliant:

ATI Radeon HD 4670:

Chipset Model: ATI Radeon HD 4670
Type: GPU
Bus: PCIe
PCIe Lane Width: x16
VRAM (Total): 256 MB
Vendor: ATI (0x1002)
Device ID: 0x9488
Revision ID: 0x0000
ROM Revision: 113-B8030F-260
EFI Driver Version: 01.00.383
Displays:
iMac:
Resolution: 2560 x 1440
Pixel Depth: 32-Bit Color (ARGB8888)
Main Display: Yes
Mirror: Off
Online: Yes
Built-In: Yes
Connection Type: DisplayPort
Display Connector:
Status: No Display Connected

Google Code Info:
Issue #: 15
Author: [email protected]
Created On: 2009-12-30T21:03:54.000Z
Closed On:

CLMem class bug, lines 71-72

I think the CLMem class has a bug on lines 71-72
#70: Input(CL_MEM_READ_ONLY, Flags.ReadOnly), /7correct
#71: Output(CL_MEM_READ_WRITE, Flags.WriteOnly), //incorrect
#72: InputOutput(CL_MEM_WRITE_ONLY, Flags.ReadWrite); //incorrect,

I think it probably should say

Input(CL_MEM_READ_ONLY, Flags.ReadOnly),
Output(CL_MEM_WRITE_ONLY, Flags.WriteOnly),
InputOutput(CL_MEM_READ_WRITE, Flags.ReadWrite);

Best Regards,
Johan

Google Code Info:
Issue #: 7
Author: [email protected]
Created On: 2009-10-12T10:24:06.000Z
Closed On: 2009-10-13T20:59:57.000Z

Segmentation fault on Ubuntu 9.04 x86_64 with NVIDIA GPU

What steps will reproduce the problem?

  1. Create a class with the following main method:
    //////////////////////////////////////////////////////////////////////
    public static void main(String[] args){
    try
    {
    CLContext context = JavaCL.createBestContext();
    CLProgram program = context.createProgram("__kernel void
    myKernel(__global const float* input, __global float* output, float
    multFactor) {" +
    " int i = get_global_id(0);" +
    " output[i] = input[i] * multFactor;" +
    "}").build();
    }catch(Exception ex)
    {
    ex.printStackTrace();
    }
    }
    //////////////////////////////////////////////////////////////////////
  2. Execute it.

What is the expected output? What do you see instead?
Expected output is exit with code 0.
Execution it gives me exit code 139, which is triggered by segmentation
fault.

What version of the product are you using? On what operating system?
javacl-1.0-beta-4-shaded.jar
Ubuntu Desktop 9.10 x86_64.
Nvidia toolkit version is 3.0 Beta.
Nvidia driver version is 195.30 Beta.

There is no hs_err_pidXXX.log file generated anywhere...
GDB backtrace doesn't give any additional info...

The code beautifully works with ATI Stream SDK 2.0 on the CPU, but fails,
when the /usr/lib/libOpenCL.so.* are replaced with NVIDIA ones.
NVIDIA samples and demos work beautifully.

$ java -version
java version "1.6.0_15"
Java(TM) SE Runtime Environment (build 1.6.0_15-b03)
Java HotSpot(TM) 64-Bit Server VM (build 14.1-b02, mixed mode)

Google Code Info:
Issue #: 20
Author: [email protected]
Created On: 2010-02-26T13:47:42.000Z
Closed On: 2011-02-04T16:40:10.000Z

Artifact pixels on the screen after OpenCL4JavaBasicTest failure

What steps will reproduce the problem?

  1. change dataSize to 100000 and run the test
  2. you should get exception - CLException$InvalidValue

What is the expected output? What do you see instead?

After test is executed, do scrolling in Eclipse or in Firefox. Artifact
pixels appear on the screen.

What version of the product are you using? On what operating system?

OpenCL4Java-1.0-beta-2
Windows XP SP3
GeForce 8600 GT, driver version 190.89

Please provide any additional information below.

Google Code Info:
Issue #: 12
Author: DMitskevich
Created On: 2009-10-28T12:37:13.000Z
Closed On: 2009-10-28T13:43:03.000Z

BridJ: Can't call char* class_name::method_name(char* a, char* b)

I have a library compiled in VS2010.
The code looks like this:
class __declspec(dllexport) class_name {
public:
class_name ();
char* method_name(char* filename, char* filename1);
}

And I get the following exception while trying to use it:
org.bridj.Demangler$DemanglingException: Parsing error at position 51: Invalid back reference
?method_name@class_name@@QAEPAPADPAD0@Z

Google Code Info:
Issue #: 36
Author: [email protected]
Created On: 2010-11-25T18:51:11.000Z
Closed On: 2010-11-27T22:19:58.000Z

[ScalaCLPlugin] ClassCastException during execution of generated code from 0.2.Beta4

I have installed new ScalaCLPlugin version 0.2.Beta4 (thanks a lot!) and succeeded to compile my scala program.
However, unexpected exception (java.lang.ExceptionInInitializerError) is thrown during execution.

What steps will reproduce the problem?

  1. Compile following file with ScalaCL compiler plugin 0.2Beta4.

% cat AnyArray.scala
object AnyArray extends Application {
def f(a: List[Any]) = a.toArray
println(f(List(1, 2, 3)))
}

% env SCALACL_TRACE=1 SCALACL_VERBOSE=1 scalac AnyArray.scala
[scalacl] AnyArray.scala:2 transformed List[Any].toArray into equivalent while loop.

  1. Execution a generated class file.

% scala AnyArray
java.lang.ExceptionInInitializerError
at AnyArray.main(AnyArray.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at scala.tools.nsc.util.ScalaClassLoader$$anonfun$run$1.apply(ScalaClassLoader.scala:81)
at scala.tools.nsc.util.ScalaClassLoader$class.asContext(ScalaClassLoader.scala:24)
at scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.asContext(ScalaClassLoader.scala:86)
at scala.tools.nsc.util.ScalaClassLoader$class.run(ScalaClassLoader.scala:81)
at scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.run(ScalaClassLoader.scala:86)
at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:83)
at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
Caused by: java.lang.ClassCastException: scala.collection.mutable.ArrayBuffer cannot be cast to [Ljava.lang.Object;
at AnyArray$.f(AnyArray.scala:2)
at AnyArray$.(AnyArray.scala:3)
at AnyArray$.(AnyArray.scala)
... 12 more
zsh: exit 1 scala AnyArray

The line "List(1, 2, 3).toArray[Any]" also throws the same exception during execution.

% env SCALACL_VERBOSE=1 scala
scala> List(1,2,3).toArray[Any]
[scalacl] :6 transformed List[Int].toArray into equivalent while loop.
java.lang.ClassCastException: [I cannot be cast to [Ljava.lang.Object;
at .(:6)
at .()
at RequestResult$.(:9)
at RequestResult$.()
at RequestResult$scala_repl_result()
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at scala.tools.nsc.Interpreter$Request$$anonfun$loadAndRun$1$$anonfun$apply$17.apply(Interpreter.scala:988)
at scala.tools.nsc.Interpreter$Request$$anonfun$loadAndRun$1$$anonfun$apply$17.apply(Interpreter.scala:988)
at scala.util.control.Exception$Catch.apply...

What is the expected output? What do you see instead?

% env DISABLE_SCALACL_PLUGIN=1 scalac AnyArray.scala
% scala AnyArray
[Ljava.lang.Object;@1cb8deef

What version of the product are you using? On what operating system?

ScalaCL plugin: 0.2.Beta4
-rw-r--r-- 1 maro 660742 2011-01-17 11:53 misc/scala-devel/plugins/scalacl-compiler-plugin-0.2.Beta4.jar
-rw-r--r-- 1 maro 1307966 2011-01-17 11:53 lib/scalacl-0.2.Beta4-shaded.jar

scala: version 2.8.1.final
java: java version "1.6.0_21" / Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
OS: Linux 2.6.32-27-generic #49-Ubuntu SMP Thu Dec 2 00:51:09 UTC 2010 x86_64 GNU/Linux

Google Code Info:
Issue #: 42
Author: [email protected]
Created On: 2011-01-17T04:18:04.000Z
Closed On: 2011-01-17T09:06:24.000Z

Particles Demo doesnt work on Win7 / ATI HD 5750

What steps will reproduce the problem?

  1. Start Particles Demo from browser

What is the expected output? What do you see instead?

Main window opened, but it is always black. During opening two console
windows popups for a few miliseconds.

What version of the product are you using? On what operating system?

Windows 7 64 bit
Radeon HD 5750
ati-stream-sdk-v2.0-beta4-vista-win7-64.exe
Catalyst 9.12 Hotfix for Windows 7 / Windows Vista.

Please provide any additional information below.

Is it because of 64 bit Windows?

Google Code Info:
Issue #: 14
Author: DMitskevich
Created On: 2009-12-18T21:10:03.000Z
Closed On:

ReductionUtils.Reductor returns wrong result when input data size is greater than 4096

What steps will reproduce the problem?
1.Create array which size is 4097 (type of array doesn't affect the bug,
for example int[] or float[])

2.Initialize it with 1

3.Make necessary JavaCL Initialization

  1. ReductionUtils.Reductor reductor =
    ReductionUtils.createReductor(context, ReductionUtils.Operation.Add,
    ReductionUtils.Type.Float, 1);
  2. FloatBuffer result = reductor.reduce(queue, clBufferInput, 4097, 64);

What is the expected output? What do you see instead?
->Expected output = 4097.0 || Real output = 8192.0
->Also if input data size is very big, like 82369, than it throws:
"CLException$InvalidValue: InvalidValue"

What version of the product are you using? On what operating system?

->I'm using "javacl-1.0-beta-4-shaded.jar" on Windows 7, Nvidia Quadro FX 580

I attached .java which was used for tests.
Changing MaxReductionSize doesn't affect results.
If input data size is 4096 or lower it works fine.

Google Code Info:
Issue #: 26
Author: [email protected]
Created On: 2010-06-04T01:35:07.000Z
Closed On: 2010-12-01T12:00:02.000Z

[nativelibs4java] Demos use the old JOGL package name

Hi,

When I try to build nativelibs4java from source, I notice that 2 tests (JOGLTest and the Particles demo) import classes from com.sun.opengl.util. However, with the JOGL project having migrated to http://jogamp.org/, this package has been renamed upstream to com.jogamp.opengl.util.

As a result, when I download the latest JOGL from http://jogamp.org/ and run the Particles demo, I get a ClassNotFoundException: com.sun.opengl.util.FPSAnimator.

I tried to modify your source to use com.jogamp.opengl.util instead. But when I rebuild, Maven complains with:
[ERROR] COMPILATION ERROR :
[ERROR] [...]OpenCL/OpenGLDemos/src/main/java/com/nativelibs4java/opencl/demos/particles/ParticlesDemo.java:[49,29] package com.jogamp.opengl.util does not exist

Now, I don't see the jogl jar in your repo, nor the com..opengl.util classes, so I suppose they ship from your Maven repository. My Maven-fu is bad, so I could not find how to fix this locally.

Could you update your Maven repository (and those 2 demos) to use the new com.jogamp.opengl.util?

Google Code Info:
Issue #: 35
Author: yvan.royon
Created On: 2010-10-29T07:34:57.000Z
Closed On: 2011-02-04T16:39:04.000Z

Invalid memory access sometimes occurs when running java application.

What steps will reproduce the problem?

  1. Create a java application which use OpenCL4Java.
  2. Run the java application and allocate memory objects.
  3. When finalizing the objects, JVM may cause Invalid memory access error
    and process may become a zombie process or die.

What is the expected output? What do you see instead?
The application should finish without Invalid memory access error.

What version of the product are you using? On what operating system?
I use MacBook MacOSX
platform: Apple {vendor: Apple, version: OpenCL 1.0 (Jul 15 2009 23:07:32),
profile: FULL_PROFILE, extensions: [Ljava.lang.String;@19c247a0}
device: GeForce 9400M
java version "1.6.0_15"
Java(TM) SE Runtime Environment (build 1.6.0_15-b03-219)
Java HotSpot(TM) 64-Bit Server VM (build 14.1-b02-90, mixed mode)

Please provide any additional information below.
Thank you very much for creating this library. I can have fun using this
library. But, I sometimes faced invalid memory access error. So, I just
report here. But, the exception occurs in C code. So, this problem may not
be the problem in OpenCL4Java. The error occurs in JVM finalize thread, so
it may relate multi-thread access to OpenCL library. But, I'm not sure the
reason of this issue.

When I ran the attached java class, InvalidMemoryAccessTestCase, I
faced error like 'Invalid memory access of location 0x12 rip=0x7fff86cf533c'.

I got stacks from gdb and Activity monitor.(I tested jdk 1.5 and 1.6. I
could reproduce the issue with both JVM.)

I ran the application like this:

gdb> file /usr/bin/java
gdb> run -classpath run -classpath
lib/jna.jar:lib/jnaerator-0.9.1.jar:lib/OpenCL4Java-1.0-SNAPSHOT.jar:classes InvalidMemoryAccessTestCase
... snip ...
device: GeForce 9400M
loop...0
loop...1
Invalid memory access of location 0x12 rip=0x7fff86cf533c

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000012
[Switching to process 760]
0x00007fff86cf533c in objc_msgSend ()
(gdb) where
#0 0x00007fff86cf533c in objc_msgSend ()
#1 0x00007fff801ff285 in isValidMem ()
#2 0x00007fff801f868b in clReleaseMemObject ()
#3 0x000000011460913c in ffi_call_unix64 ()
#4 0x0000000113ae1fc8 in ?? ()


From Activity monitor, I could get the error stack and I found the error

occured in Finalize thread.

Thread_121734: Java: Finalizer
... snip ...
Java_java_lang_ref_Finalizer_invokeFinalizeMethod
JVM_GetLastErrorString
JVM_MonitorWait
... snip ...
Java_com_sun_jna_Function_invokeInt
dispatch
ffi_call
ffi_call_unix64
clReleaseMemObject
isValidMem

objc_msgSend

Thanks!
Hiroki

Google Code Info:
Issue #: 11
Author: [email protected]
Created On: 2009-10-24T06:19:29.000Z
Closed On: 2009-10-25T11:22:16.000Z

nativelibs4java Maven respository contains corrupt POMs

What steps will reproduce the problem?

  1. Create a Maven project using a POM containing
    {{{
com.nativelibs4java javacl 1.0-SNAPSHOT }}} 2. Add source code dependent on the Java OpenCL artifact 3. Build the project, e.g. run "mvn compile"

What is the expected output? What do you see instead?
Artifact dependencies should be resolvable/resolved, but I (and others) get
{{{
Downloading:
http://nativelibs4java.sourceforge.net/maven/com/nativelibs4java/opencl4java/1.0-SNAPSHOT/opencl4java-1.0-SNAPSHOT.pom
Downloading:
http://nativelibs4java.sourceforge.net/maven/com/nativelibs4java/opencl4java/1.0-SNAPSHOT/opencl4java-1.0-SNAPSHOT.pom
Downloading:
http://nativelibs4java.sourceforge.net/maven/com/jnaerator/jnaerator-runtime/${jnaerator.version}/jnaerator-runtime-${jnaerator.version}.pom
[INFO] Unable to find resource
'com.jnaerator:jnaerator-runtime:pom:${jnaerator.version}' in repository
nativelibs4java-repo (http://nativelibs4java.sourceforge.net/maven)
Downloading:
http://jnaerator.sourceforge.net/maven/com/jnaerator/jnaerator-runtime/${jnaerator.version}/jnaerator-runtime-${jnaerator.version}.pom
[INFO] Unable to find resource
'com.jnaerator:jnaerator-runtime:pom:${jnaerator.version}' in repository
jnaerator-repo (http://jnaerator.sourceforge.net/maven)
}}}

What version of the product are you using? On what operating system?
OpenCL, 1.0-SNAPSHOT

If the JVM crashes, please attach the hs_err_pidXXX.log crash report file
written by the JVM.
No crash.

For JavaCL / OpenCL4Java / ScalaCL issues, if the HardwareReport runs fine
(
http://nativelibs4java.sourceforge.net/webstart/OpenCL/HardwareReport.jnlp)
, please attach its HardwareReport.html output file to this issue.

Please provide any additional information below.
The deployed Maven artifacts have invalid POMs due to unresolved the
'jnaerator.version' property. Other version properties are unresolved (and
thus not expanded) as well.
Possibly the problem has been caused by deploying Maven sub-modules,
instead of deploying the parent module (the parent POM defines all the
version properties).

Google Code Info:
Issue #: 22
Author: [email protected]
Created On: 2010-03-04T09:09:56.000Z
Closed On: 2010-07-17T15:46:42.000Z

Build Info displaying Error #, not name for

When trying to build a program and making an error, CLProgram.build will throw an exception with the build info as the description. Unlike other runtime calls though the first line contains the error code. e.g.

com.nativelibs4java.opencl.CLBuildException: Compilation failure ! (code = -11)

The line producing it has it commented out:
throw new CLBuildException(this, "Compilation failure ! (code = " + err + ")"/errorString(err)/, errs);

What steps will reproduce the problem?

  1. make an error
  2. try to build
    3.

What is the expected output? What do you see instead?

What version of the product are you using? On what operating system?
Beta 4. Win-64

Google Code Info:
Issue #: 31
Author: [email protected]
Created On: 2010-09-27T16:20:21.000Z
Closed On: 2010-09-28T22:46:29.000Z

enqueueNDRange does not work for nDim > 1 (bug reported by

(bug reported by sascha meudt)

Call in CLKernel.enqueueNDRange is :

CL.clEnqueueNDRangeKernel(queue.get(), get(), 1, null, globalSizesNL,
localSizesNL, eventsToWaitFor.length,
CLEvent.to_cl_event_array(eventsToWaitFor), eventOut)

When it be :

CL.clEnqueueNDRangeKernel(queue.get(), get(), localSizesNL.length, null,
globalSizesNL,
localSizesNL, eventsToWaitFor.length,
CLEvent.to_cl_event_array(eventsToWaitFor), eventOut)

Google Code Info:
Issue #: 2
Author: olivier.chafik
Created On: 2009-09-30T11:09:06.000Z
Closed On: 2009-09-30T21:27:58.000Z

Implementation of CLImage.write

The current implementation of CLImage.write (1.0-beta-4) calls
CL.clEnqueueReadImage instead og CL.clEnqueueWriteImage :

protected CLEvent write(CLQueue queue, NativeSize[] origin, NativeSize[]
region, long rowPitch, long slicePitch, Buffer in, boolean blocking,
CLEvent... eventsToWaitFor) {
boolean indirect = !in.isDirect();
if (indirect)
in = directCopy(in, getContext().getByteOrder());

    cl_event[] eventOut = blocking ? null :

CLEvent.new_event_out(eventsToWaitFor);
cl_event[] evts = CLEvent.to_cl_event_array(eventsToWaitFor);
error(CL.clEnqueueReadImage(queue.getEntity(), getEntity(),
blocking ? CL_TRUE : CL_FALSE,
origin,
region,
toNS(rowPitch),
toNS(slicePitch),
Native.getDirectBufferPointer(in),
evts == null ? 0 : evts.length, evts,
eventOut
));
CLEvent evt = CLEvent.createEvent(queue, eventOut);

    if (indirect && !blocking) {
        final Buffer toHold = in;
        evt.invokeUponCompletion(new Runnable() {
            public void run() {
                // Make sure the GC held a reference to directData until the write was

completed !
toHold.rewind();
}
});
}

    return evt;
}

Google Code Info:
Issue #: 18
Author: [email protected]
Created On: 2010-01-24T08:29:20.000Z
Closed On: 2010-07-17T15:47:25.000Z

OpenCL4JavaBenchmarkTest: kernel referenced an external function __sind, that could not be found

I am trying to run OpenCL4JavaBenchmarkTest from Eclipse 3.5 on Mac OS X
10.6 (Java 1.6) and keep getting the following error:

com.nativelibs4java.opencl.CLBuildException: CL_BUILD_PROGRAM_FAILURE
kernel referenced an external function __sind, that could not be found.
at com.nativelibs4java.opencl.CLProgram.build(CLProgram.java:123)
at
com.nativelibs4java.opencl.OpenCL4JavaBenchmarkTest.setupASinB(OpenCL4JavaBenchmarkTest.java:168)
at
com.nativelibs4java.opencl.OpenCL4JavaBenchmarkTest.testOpenCL_aSinB(OpenCL4JavaBenchmarkTest.java:91)
at
com.nativelibs4java.opencl.OpenCL4JavaBenchmarkTest.testOpenCL_double_aSinB(OpenCL4JavaBenchmarkTest.java:80)
at
com.nativelibs4java.opencl.OpenCL4JavaBenchmarkTest.testBenchmark(OpenCL4JavaBenchmarkTest.java:256)

Google Code Info:
Issue #: 9
Author: [email protected]
Created On: 2009-10-13T11:27:26.000Z
Closed On:

OpenCL4JavaBenchmarkTest slower on OpenCL than Java on Mac OS X 10.6

Run the beta-2 OpenCL4JavaBenchmarkTest under Mac OS X 10.6. This was
tested on a MacBook Pro with the GeForce 9600M GT enabled.

After some futzing, I found that changing the local size (i.e. the work
group size) to be 16 or 32, instead of 1, made it run ~4 times faster than
Java. This line needs to be changed in the testOpenCL_aSinB function:

  kernel.enqueueNDRange(queue, new int[] {dataSize}, new int[] {32});

For this to work, you also need to make the data size be divisible by 32
(so 1<<20 works better than 1000000) but you can pad the data set if is not
naturally a multiple of 32.

Making this change in the benchmark test might make it less confusing for
first time users who see slow performance.

Google Code Info:
Issue #: 6
Author: [email protected]
Created On: 2009-10-12T02:08:18.000Z
Closed On: 2009-10-13T22:43:18.000Z

64-bit integer values truncated to 32-bit

I've created a sqlite bridj mapping. Everything works correctly except 64-bit integer parameters/return values. These seem to be getting truncated to 32-bit values for some reason.

Steps to reproduce

  1. Run the attached unit test

Expected output
The returned value should equal Long.MAX_VALUE

Actual output
-1 is returned which is the first 32-bits of Long.MAX_VALUE. The same behaviour occurs with any other long value >= 1L << 32.

Bridj version: 0.4-SNAPSHOT 08/02/2011
OS: Windows 7 64-bit
JVM: 1.6.0_23 32-bit
SQLite: latest win32 dll from sqlite.org

Google Code Info:
Issue #: 47
Author: [email protected]
Created On: 2011-02-23T17:33:18.000Z
Closed On: 2011-02-23T19:24:19.000Z

CLFloatBuffer does not report correct values

What steps will reproduce the problem?

  1. Run matrix multiplication algorithm (tried a few, all show the same symptom)
  2. Read the result using FloatBuffer

What is the expected output? What do you see instead?

Multiplying 1024x1024 matrix filled with 1.0 should return 1024.0 for all
elements; I am reading off 4.6012E-41 from both CPU and GPU.

What version of the product are you using? On what operating system?

JavaCL/OpenCL4Java 1.0 Snapshot, dated 2nd of January 2010.
I am running these on Snow Leopard 10.6.2/ Core i7 and ATI
Radeon HD4850.

If the JVM crashes, please attach the hs_err_pidXXX.log crash report file
written by the JVM.

JVM does not crash.

For JavaCL / OpenCL4Java / ScalaCL issues, if the HardwareReport runs fine
(http://nativelibs4java.sourceforge.net/webstart/OpenCL/HardwareReport.jnlp)
, please attach its HardwareReport.html output file to this issue.

Please provide any additional information below.

Google Code Info:
Issue #: 17
Author: [email protected]
Created On: 2010-01-06T11:47:37.000Z
Closed On: 2011-02-04T23:36:31.000Z

Seq of functions in ScalaCL map returns unexpected results

  1. Run (1 to 10).map {i => j: Int => i + j}.map(_(10))

What is the expected output? What do you see instead?
When ScalaCL HAS NOT been installed via sbaz, I see the following, correct result:
scala.collection.immutable.IndexedSeq[Int] = Vector(11, 12, 13, 14, 15, 16, 17, 18, 19, 20)

When ScalaCL HAS been installed via sbaz, I see the following, incorrect result:
scala.collection.immutable.IndexedSeq[Int] = Vector(21, 21, 21, 21, 21, 21, 21, 21, 21, 21)

What version of the product are you using? On what operating system?
scalacl/0.2.Beta8 on OS X 10.6

If the JVM crashes, please attach the hs_err_pidXXX.log crash report file
written by the JVM.

Google Code Info:
Issue #: 44
Author: [email protected]
Created On: 2011-02-01T20:35:32.000Z
Closed On: 2011-02-02T17:39:37.000Z

NIOUtils.put() doesn't accept ByteBuffer

What steps will reproduce the problem?

// (1) ok
FloatBuffer filter = FloatBuffer.wrap(filterData);
CLFloatBuffer clFilter = context.createFloatBuffer(CLMem.Usage.Input,
filter, true);

// (2) fails, due to problem in NIOUtils
ByteBuffer input = ByteBuffer.wrap(inputData);
CLByteBuffer clInput = context.createByteBuffer(CLMem.Usage.Input, input,
true);

What is the expected output? What do you see instead?

Should work, but the result is:

Exception in thread "main" java.lang.UnsupportedOperationException:
Unhandled buffer type : java.nio.HeapByteBuffer
at com.nativelibs4java.util.NIOUtils.put(NIOUtils.java:35)
at com.nativelibs4java.util.NIOUtils.directCopy(NIOUtils.java:85)
at
com.nativelibs4java.opencl.CLContext.createByteBuffer(CLContext.java:482)

What version of the product are you using? On what operating system?

1.0-SNAPSHOT (as of 28.02.2010 16:00 CET)

Please provide any additional information below.

Patch with fix attached.

Google Code Info:
Issue #: 21
Author: [email protected]
Created On: 2010-02-28T16:21:34.000Z
Closed On: 2010-02-28T22:39:57.000Z

Files/classes missing in repository: ParticleDemoProgram.java and Sobel.java

Hello Olivier,

please add the files to the repository otherwise it is not possible to
compile your demo programs.

Regards
Thomas

PS: ParticleDemo does not work in Webstart for me as well (ATI 5770, Linux
32-Bit) perhaps I can track it if I have all the sources.

Google Code Info:
Issue #: 16
Author: [email protected]
Created On: 2010-01-01T16:11:43.000Z
Closed On: 2010-01-02T20:38:58.000Z

ScalaCL compilation with many warnings and test class doesn't run

I tried to compile the ScalaCL files and run the test class but didn't succeed. See the attached hardware report for configuration details.

stefan@stefanmbp15:~/jar$ ls -l scalacl*
-rw-r--r--@ 1 stefan staff 1485489 31 Mär 02:58 scalacl-1.0-SNAPSHOT-shaded.jar
-rw-r--r-- 1 stefan staff 1489 31 Mär 02:57 scalacl-1.0-SNAPSHOT-sources.jar
-rw-r--r-- 1 stefan staff 340364 4 Mai 09:58 scalacl-1.0-SNAPSHOT.jar

stefan@stefanmbp15:~/jar$ echo $CLASSPATH
.:/Users/stefan/jar/scalacl-1.0-SNAPSHOT-shaded.jar:/Users/stefan/jar/scalacl-1.0-SNAPSHOT-sources.jar:/Users/stefan/jar/scalacl-1.0-SNAPSHOT.jar

stefan@stefanmbp15:/jar$ cd ../Scala/ScalaCL
stefan@stefanmbp15:
/Scala/ScalaCL$ ls -l
total 128
-rw-r--r-- 1 stefan staff 28528 1 Dez 2009 Expr.scala
-rw-r--r-- 1 stefan staff 6360 10 Okt 2009 Functions.scala
-rw-r--r-- 1 stefan staff 7103 5 Mai 15:00 Program.scala
-rw-r--r-- 1 stefan staff 1911 5 Mai 01:36 ScalaCL.scala
-rw-r--r--@ 1 stefan staff 2317 29 Jan 03:27 ScalaCLTest.scala
-rw-r--r-- 1 stefan staff 4207 10 Okt 2009 SyntaxUtils.scala
-rw-r--r-- 1 stefan staff 2484 29 Sep 2009 TypeDesc.scala

stefan@stefanmbp15:~/Scala/ScalaCL$ scalac -deprecation *
Expr.scala:300: warning: case class class Fun1' has case class ancestorclass Fun'. This has been deprecated for unduly complicating both usage and implementation. You should instead use extractors for pattern matching on non-leaf nodes.
case class Fun1(nam: String, outTyp: PrimType, arg1: Expr, f: (Double) => Double) extends Fun(nam, outTyp, arg1) {
^
Expr.scala:303: warning: case class class Fun2' has case class ancestorclass Fun'. This has been deprecated for unduly complicating both usage and implementation. You should instead use extractors for pattern matching on non-leaf nodes.
case class Fun2(nam: String, outTyp: PrimType, arg1: Expr, arg2: Expr, f: (Double, Double) => Double) extends Fun(nam, outTyp, arg1, arg2) {
^
Expr.scala:306: warning: case class class Fun3' has case class ancestorclass Fun'. This has been deprecated for unduly complicating both usage and implementation. You should instead use extractors for pattern matching on non-leaf nodes.
case class Fun3(nam: String, outTyp: PrimType, arg1: Expr, arg2: Expr, arg3: Expr, f: (Double, Double, Double) => Double) extends Fun(nam, outTyp, arg1, arg2, arg3) {
^
Expr.scala:310: warning: case class class Int1' has case class ancestorclass PrimScal'. This has been deprecated for unduly complicating both usage and implementation. You should instead use extractors for pattern matching on non-leaf nodes.
case class Int1(value: Int) extends PrimScal(value, IntType) with Val1
^
Expr.scala:324: warning: case class class Double1' has case class ancestorclass PrimScal'. This has been deprecated for unduly complicating both usage and implementation. You should instead use extractors for pattern matching on non-leaf nodes.
case class Double1(value: Double) extends PrimScal(value, DoubleType) with Val1
^
Expr.scala:335: warning: case class class Float1' has case class ancestorclass PrimScal'. This has been deprecated for unduly complicating both usage and implementation. You should instead use extractors for pattern matching on non-leaf nodes.
case class Float1(value: Float) extends PrimScal(value, FloatType) with Val1
^
Expr.scala:347: warning: case class class Short1' has case class ancestorclass PrimScal'. This has been deprecated for unduly complicating both usage and implementation. You should instead use extractors for pattern matching on non-leaf nodes.
case class Short1(value: Short) extends PrimScal(value, ShortType) with Val1
^
Expr.scala:359: warning: case class class Byte1' has case class ancestorclass PrimScal'. This has been deprecated for unduly complicating both usage and implementation. You should instead use extractors for pattern matching on non-leaf nodes.
case class Byte1(value: Byte) extends PrimScal(value, ByteType) with Val1
^
Expr.scala:370: warning: case class class Long1' has case class ancestorclass PrimScal'. This has been deprecated for unduly complicating both usage and implementation. You should instead use extractors for pattern matching on non-leaf nodes.
case class Long1(value: Long) extends PrimScal(value, LongType) with Val1
^
Functions.scala:13: warning: case class class Fun2WithPtrAsSecond' has case class ancestorclass Fun2'. This has been deprecated for unduly complicating both usage and implementation. You should instead use extractors for pattern matching on non-leaf nodes.
case class Fun2WithPtrAsSecond(na: String, outTy: PrimType, ar1: Expr, ar2: Expr, ff: (Double, Double) => Double)
^
Expr.scala:35: warning: method + in trait BufferLike is deprecated: Use += instead if you intend to add by side effect to an existing collection.
Use clone() +=' if you intend to create a new collection. accept { (x, stack) => if (x != null && c.erasure.isInstance(x)) list + x.asInstanceOf[C] } ^ Expr.scala:144: warning: object Math in package scala is deprecated: use scala.math package instead size = (Math.ceil(mm.max) + 1).asInstanceOf[Int]; ^ Expr.scala:228: warning: object Math in package scala is deprecated: use scala.math package instead def union(mm: MinMax) = MinMax(Math.min(min, mm.min), Math.max(max, mm.max)) ^ Expr.scala:228: warning: object Math in package scala is deprecated: use scala.math package instead def union(mm: MinMax) = MinMax(Math.min(min, mm.min), Math.max(max, mm.max)) ^ Functions.scala:32: warning: object Math in package scala is deprecated: use scala.math package instead var sin = f1d("sin", Math.sin) ^ Functions.scala:33: warning: object Math in package scala is deprecated: use scala.math package instead var cos = f1d("cos", Math.cos) ^ Functions.scala:34: warning: object Math in package scala is deprecated: use scala.math package instead var tan = f1d("tan", Math.tan) ^ Functions.scala:36: warning: object Math in package scala is deprecated: use scala.math package instead var asin = f1d("asin", Math.asin) ^ Functions.scala:37: warning: object Math in package scala is deprecated: use scala.math package instead var acos = f1d("acos", Math.acos) ^ Functions.scala:38: warning: object Math in package scala is deprecated: use scala.math package instead var atan = f1d("atan", Math.atan) ^ Functions.scala:39: warning: object Math in package scala is deprecated: use scala.math package instead var atan2 = f2d("atan2", Math.atan2) ^ Functions.scala:41: warning: object Math in package scala is deprecated: use scala.math package instead var sinpi = f1d("sinpi", x => Math.sin(x * Math.Pi)) ^ Functions.scala:41: warning: object Math in package scala is deprecated: use scala.math package instead var sinpi = f1d("sinpi", x => Math.sin(x * Math.Pi)) ^ Functions.scala:42: warning: object Math in package scala is deprecated: use scala.math package instead var cospi = f1d("cospi", x => Math.cos(x * Math.Pi)) ^ Functions.scala:42: warning: object Math in package scala is deprecated: use scala.math package instead var cospi = f1d("cospi", x => Math.cos(x * Math.Pi)) ^ Functions.scala:43: warning: object Math in package scala is deprecated: use scala.math package instead var tanpi = f1d("tanpi", x => Math.tan(x * Math.Pi)) ^ Functions.scala:43: warning: object Math in package scala is deprecated: use scala.math package instead var tanpi = f1d("tanpi", x => Math.tan(x * Math.Pi)) ^ Functions.scala:45: warning: object Math in package scala is deprecated: use scala.math package instead var asinpi = f1d("asinpi", Math.asin(_) / Math.Pi) ^ Functions.scala:45: warning: object Math in package scala is deprecated: use scala.math package instead var asinpi = f1d("asinpi", Math.asin(_) / Math.Pi) ^ Functions.scala:46: warning: object Math in package scala is deprecated: use scala.math package instead var acospi = f1d("acospi", Math.acos(_) / Math.Pi) ^ Functions.scala:46: warning: object Math in package scala is deprecated: use scala.math package instead var acospi = f1d("acospi", Math.acos(_) / Math.Pi) ^ Functions.scala:47: warning: object Math in package scala is deprecated: use scala.math package instead var atanpi = f1d("atanpi", Math.atan(_) / Math.Pi) ^ Functions.scala:47: warning: object Math in package scala is deprecated: use scala.math package instead var atanpi = f1d("atanpi", Math.atan(_) / Math.Pi) ^ Functions.scala:48: warning: object Math in package scala is deprecated: use scala.math package instead var atan2pi = f2d("atan2pi", Math.atan2(_, _) / Math.Pi) ^ Functions.scala:48: warning: object Math in package scala is deprecated: use scala.math package instead var atan2pi = f2d("atan2pi", Math.atan2(_, _) / Math.Pi) ^ Functions.scala:58: warning: object Math in package scala is deprecated: use scala.math package instead var log = f1d("log", Math.log) ^ Functions.scala:60: warning: object Math in package scala is deprecated: use scala.math package instead var log2 = f1d("log2", Math.log(_) / Math.log(2)) ^ Functions.scala:60: warning: object Math in package scala is deprecated: use scala.math package instead var log2 = f1d("log2", Math.log(_) / Math.log(2)) ^ Functions.scala:63: warning: object Math in package scala is deprecated: use scala.math package instead var exp = f1d("exp", Math.exp) ^ Functions.scala:64: warning: object Math in package scala is deprecated: use scala.math package instead var pow = f2d("pow", Math.pow) ^ Functions.scala:65: warning: object Math in package scala is deprecated: use scala.math package instead var pown = f2d("pown", Math.pow) ^ Functions.scala:66: warning: object Math in package scala is deprecated: use scala.math package instead var powr = f2d("powr", Math.pow) ^ Functions.scala:67: warning: object Math in package scala is deprecated: use scala.math package instead var root = f2d("root", (x, y) => Math.exp(x * Math.log(1 / y))) ^ Functions.scala:67: warning: object Math in package scala is deprecated: use scala.math package instead var root = f2d("root", (x, y) => Math.exp(x * Math.log(1 / y))) ^ Functions.scala:72: warning: object Math in package scala is deprecated: use scala.math package instead var sqrt = f1d("sqrt", Math.sqrt) ^ Functions.scala:74: warning: object Math in package scala is deprecated: use scala.math package instead var rsqrt = f1d("rsqrt", 1 / Math.sqrt(_)) ^ Functions.scala:78: warning: object Math in package scala is deprecated: use scala.math package instead var remainder = f2d("remainder", Math.IEEEremainder) ^ Functions.scala:82: warning: object Math in package scala is deprecated: use scala.math package instead var abs = f1d("abs", Math.abs) ^ Functions.scala:85: warning: object Math in package scala is deprecated: use scala.math package instead var abs_diff = f2d("abs_diff", (x, y) => Math.abs(x - y)) ^ Functions.scala:109: warning: object Math in package scala is deprecated: use scala.math package instead var max = f2d("max", Math.max) ^ Functions.scala:112: warning: object Math in package scala is deprecated: use scala.math package instead var min = f2d("min", Math.min) ^ Functions.scala:152: warning: object Math in package scala is deprecated: use scala.math package instead var sign = f1d("sign", Math.signum) ^ Functions.scala:161: warning: object Math in package scala is deprecated: use scala.math package instead var ceil = f1d("ceil", Math.ceil) ^ Functions.scala:164: warning: object Math in package scala is deprecated: use scala.math package instead var copysign = f2d("copysign", (x, y) => Math.abs(x) * Math.signum(y)) ^ Functions.scala:164: warning: object Math in package scala is deprecated: use scala.math package instead var copysign = f2d("copysign", (x, y) => Math.abs(x) * Math.signum(y)) ^ Functions.scala:166: warning: object Math in package scala is deprecated: use scala.math package instead var floor = f1d("floor", Math.floor) ^ Functions.scala:172: warning: object Math in package scala is deprecated: use scala.math package instead var ldexp = f2d("ldexp", (x, n) => x * Math.pow(2, n)) ^ Functions.scala:173: warning: object Math in package scala is deprecated: use scala.math package instead var hypot = f2d("hypot", (x, y) => Math.sqrt(x * x + y * y)) ^ Functions.scala:176: warning: object Math in package scala is deprecated: use scala.math package instead var round = f1d("round", x => Math.round(x)) ^ Program.scala:165: warning: method + in trait BufferLike is deprecated: Use += instead if you intend to add by side effect to an existing collection. Useclone() +=' if you intend to create a new collection.
case e: ArrayElement[,] => e.array.indexUsages + e.index
^
SyntaxUtils.scala:26: warning: method + in trait BufferLike is deprecated: Use += instead if you intend to add by side effect to an existing collection.
Use clone() +=' if you intend to create a new collection. lb + it.next; ^ SyntaxUtils.scala:89: warning: method elements in trait IterableLike is deprecated: useiterator' instead
for (m <- matches.elements)
^
62 warnings found

stefan@stefanmbp15:~/Scala/ScalaCL$ scala scalacl.ScalaCLTestRun

pragma OPENCL EXTENSION cl_khr_byte_addressable_store : require

__kernel void function(__global const float* in1, __global const float* in2, __global float* out) {
int dim1 = get_global_id(0);
out[dim1] = (in2[dim1]) + (in1[dim1]);
}

2.0
4.0
6.0
8.0
1009.0
1011.0
1013.0
1015.0
1017.0
1019.0
1010.0
array + assignment mode = true
array + assignment mode = true

pragma OPENCL EXTENSION cl_khr_byte_addressable_store : require

__kernel void function(__global const float* in, __global float* out) {
int dim1 = get_global_id(0);
out[(dim1) * (2)] = sin(in[dim1]);
out[((dim1) * (2)) + (1)] = cos(in[dim1]);
}

array + assignment mode = true

pragma OPENCL EXTENSION cl_khr_byte_addressable_store : require

__kernel void function(__global const int* in, __global int* out) {
int dim1 = get_global_id(0);
out[dim1] = (((in[((dim1) == (0)) ? (dim1) : ((dim1) - (1))]) + (in[dim1])) + (in[((dim1) == (9)) ? (dim1) : ((dim1) + (1))])) / (3);
}

7
4
2
4
14
15
16
12
9
6
array + assignment mode = true

pragma OPENCL EXTENSION cl_khr_byte_addressable_store : require

__kernel void function(__global const float* in, __global float* inOut) {
int dim1 = get_global_id(0);
inOut[(dim1) * (2)] = sincos(in[dim1], &inOut[((dim1) * (2)) + (1)]);
}

pragma OPENCL EXTENSION cl_khr_byte_addressable_store : require

__kernel void function(read_only image2d_t in, write_only image2d_t out) {
int dim1 = get_global_id(0);
int dim2 = get_global_id(1);
int loc;
loc = (((read_imagei(in, (sampler_t)(CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP | CLK_FILTER_NEAREST), (int2)(dim1, dim2)).x) + (read_imagei(in, (sampler_t)(CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP | CLK_FILTER_NEAREST), (int2)(dim1, dim2)).y)) + (read_imagei(in, (sampler_t)(CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP | CLK_FILTER_NEAREST), (int2)(dim1, dim2)).z)) / (3);
write_imagei(out, (int2)(dim1, dim2), (int4)((loc, loc, loc, read_imagei(in, (sampler_t)(CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP | CLK_FILTER_NEAREST), (int2)(dim1, dim2)).w)));
}

com.nativelibs4java.opencl.CLException$InvalidArgSize: InvalidArgSize
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at com.nativelibs4java.opencl.CLException.error(CLException.java:215)
at com.nativelibs4java.opencl.CLKernel.setArg(CLKernel.java:274)
at com.nativelibs4java.opencl.CLKernel.setObjectArg(CLKernel.java:178)
at scalacl.Var.bind(Expr.scala:499)
at scalacl.Program$$anonfun$exec$1.apply(Program.scala:209)
at scalacl.Program$$anonfun$exec$1.apply(Program.scala:209)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:62)
at scala.collection.immutable.List.foreach(List.scala:46)
at scalacl.Program.exec(Program.scala:209)
at scalacl.Program.$bang(Program.scala:170)
at scalacl.ScalaCLTestRun$.main(ScalaCLTest.scala:93)
at scalacl.ScalaCLTestRun.main(ScalaCLTest.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at scala.tools.nsc.util.ScalaClassLoader$$anonfun$run$1.apply(ScalaClassLoader.scala:81)
at scala.tools.nsc.util.ScalaClassLoader$class.asContext(ScalaClassLoader.scala:24)
at scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.asContext(ScalaClassLoader.scala:86)
at scala.tools.nsc.util.ScalaClassLoader$class.run(ScalaClassLoader.scala:81)
at scala.tools.nsc.util.ScalaClassLoader$URLClassLoader.run(ScalaClassLoader.scala:86)
at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:78)
at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)

Google Code Info:
Issue #: 28
Author: [email protected]
Created On: 2010-07-14T20:37:11.000Z
Closed On: 2011-02-04T16:42:08.000Z

Greyer example gives me the following exception

When I run this example:

object ScalaCLTestRun {

class Greyer(x: Dim, y: Dim) extends Program(x, y) {
val im = new ImageVar[Int4](classOf[Int4], x, y)
val result = new ImageVar[Int4](classOf[Int4], x, y)
val v = IntVar.local;
content = List(
v := (im.x + im.y + im.z) / 3,
result := (v, v, v, im.w)
)
}
def main(args: Array[String]):Unit = {
var prog4 = new Greyer(Dim(100), Dim(100))
prog4!
}
}

I receive the following:

pragma OPENCL EXTENSION cl_khr_byte_addressable_store : require

__kernel void function(read_only image2d_t in, write_only image2d_t out) {
int dim1 = get_global_id(0);
int dim2 = get_global_id(1);
int loc;
loc = (((read_imagei(in, (sampler_t)(CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP | CLK_FILTER_NEAREST), (int2)(dim1, dim2)).x) + (read_imagei(in,
(sampler_t)(CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP | CLK_FILTER_NEAREST), (int2)(dim1, dim2)).y)) + (read_imagei(in, (sampler_t)(CLK_NORMALIZED_COORDS_FALSE |
CLK_ADDRESS_CLAMP | CLK_FILTER_NEAREST), (int2)(dim1, dim2)).z)) / (3);
write_imagei(out, (int2)(dim1, dim2), (int4)((loc, loc, loc, read_imagei(in, (sampler_t)(CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP | CLK_FILTER_NEAREST), (int2)(dim1,
dim2)).w)));
}

Exception in thread "main" com.nativelibs4java.opencl.CLException$InvalidArgSize: InvalidArgSize
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at com.nativelibs4java.opencl.CLException.error(CLException.java:190)
at com.nativelibs4java.opencl.CLKernel.setArg(CLKernel.java:251)
at com.nativelibs4java.opencl.CLKernel.setObjectArg(CLKernel.java:155)
at scalacl.Var.bind(Expr.scala:499)
at scalacl.Program$$anonfun$exec$1.apply(Program.scala:206)
at scalacl.Program$$anonfun$exec$1.apply(Program.scala:206)
at scala.List.foreach(List.scala:841)
at scalacl.Program.exec(Program.scala:206)
at scalacl.Program.$bang(Program.scala:167)
at scalacl.ScalaCLTestRun$.main(ScalaCLTest.scala:95)
at scalacl.ScalaCLTestRun.main(ScalaCLTest.scala)

Process finished with exit code 1

Google Code Info:
Issue #: 23
Author: [email protected]
Created On: 2010-03-22T10:47:52.000Z
Closed On: 2011-02-04T23:38:12.000Z

BridJ: org.bridj.Pointer#iterator for native-allocated pointers is empty

Using BridJ 0.2 for the following function:

public native Pointer<Pointer<java.lang.Byte>> f(Pointer<java.lang.Byte> a1, Pointer<java.lang.Byte> a2);

I always get an empty iterator:

public List f1(String a1, String a2) {
final List result = Lists.newArrayList();
final Pointer<Pointer> pointers =
library.f(pointerToCString(a1), pointerToCString(a2));
for (Pointer str : pointers) {
if (str == Pointer.NULL) {
break;
}
result.add(str.getCString());
}
return result;
}
Returns empty list.
Compared to the following code which gives correct result:
public List f2(String a1, String a2) {
final List result = Lists.newArrayList();
final Pointer<Pointer> pointers =
library.f(pointerToCString(a1), pointerToCString(a2));
for (int i = 0; ; i++) {
Pointer str = pointers.get(i);
if (str == Pointer.NULL) {
break;
}
result.add(str.getCString());
}
return result;
}

Thanks,
Oleg.

Google Code Info:
Issue #: 37
Author: [email protected]
Created On: 2010-11-26T01:26:52.000Z
Closed On: 2010-11-26T10:13:43.000Z

[JavaCL] Access violation when creating binary kernel

Running BinaryKernelTest using 'mvn test' occasionally causes a segfault. The attached log (pid14000) shows that the error occurs when createKernel is called on a binary program. (Sometimes I also get other errors, suggesting memory corruption.)

Revision 1424, Windows, ATI Stream v2.2. I could not reproduce the error on Linux and NVidia.

For testing purposes, I have created a standalone version of this test (maven is slow). When running this version, the binary createProgram variant fails every time with either InvalidBinary or segfault (see pid13980). But insert a System.out.println(device.getName()) and then it hardly fails. Definitely some memory wierdness somewhere.

I have experienced no issues with the BridJ version of JavaCL on the ATI system.

Google Code Info:
Issue #: 39
Author: [email protected]
Created On: 2010-12-06T21:58:29.000Z
Closed On:

CLMem.release causes errors (probably memory corruption)

If memory object release operations are used, various errors surface later in the program.

[What steps will reproduce the problem?]
Run the attached program (Release.java) on an NVIDIA OpenCL platform.

The test program allocates, uses, and releases a memory buffer object in an infinite loop.

[What is the expected output? What do you see instead?]
The program is expected to not terminate, printing the iteration count until it is aborted. Instead, it fails in about a second with various errors. In my tests, 19 out of 20 executions it failed between 1100 and 1600 iterations (the remaining execution failed after 5085). Among these runs, I got an OutOfResources error during CLKernel.enqueueNDRange in 3 cases, an OutOfResources error during CLEvent.waitFor in 10 cases, and a segfault in 7 cases. I used this command line to run the tests:

LD_PRELOAD=/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/libjsig.so /usr/bin/java -client -Xint -cp ~/Letöltések/javacl-1.0-beta-5-shaded.jar:. Release

These various errors indicate memory corruption.

[What version of the product are you using? On what operating system?]
I am using javacl-beta-1.5-shaded.jar, Linux, NVIDIA driver version 256.53. The device I use for OpenCL is a GeForce GTX 285.

[If the JVM crashes, please attach the hs_err_pidXXX.log crash report file
written by the JVM.]
hs_err_pid13356.log shows a crash during clReleaseMemObject, hs_err_pid13674.log during clEnqueueNDRangeKernel.

In a second test case (NoRelease.java), I prevent memory object release operations. I remove the release function call from the loop, and store all allocated memory objects in a list to prevent finalization from triggering a release. This program does not fail. (I let it run for over 2 minutes, 250000 iterations.)

Google Code Info:
Issue #: 29
Author: [email protected]
Created On: 2010-09-03T12:41:43.000Z
Closed On: 2010-09-28T22:50:55.000Z

CLMem.java has an invalid UTF-8 character "objectÕs"

First, have you checked out the FAQ
(http://code.google.com/p/nativelibs4java/wiki/FAQ) and Build instructions
(http://code.google.com/p/javacl/wiki/Build) ?
yes.

What steps will reproduce the problem?

  1. check out trunk
  2. mvn install -Dmaven.test.skip=true

What is the expected output? What do you see instead?
Expected:
[INFO] BUILD SUCCESSFUL

Actual:
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/me/apps/repos/nativelibs4java/OpenCL/Core/src/main/java/com/nativelibs4java/opencl/CLMem.java:[83,72] unmappable character for encoding UTF8

What version of the product are you using? On what operating system?

trunk

ubuntu 10.04

If the JVM crashes, please attach the hs_err_pidXXX.log crash report file
written by the JVM.

For JavaCL / OpenCL4Java / ScalaCL issues, if the HardwareReport runs fine
(
http://nativelibs4java.sourceforge.net/webstart/OpenCL/HardwareReport.jnlp)
, please attach its HardwareReport.html output file to this issue.

Please provide any additional information below.

CLMem.java has a comment with "objectÕs" - patch attached.

Google Code Info:
Issue #: 27
Author: [email protected]
Created On: 2010-07-12T03:09:18.000Z
Closed On: 2010-07-12T20:53:52.000Z

[ScalaCLPlugin] Crash in LambdaLifter for optimizations done in trait

This crashes at LambdaLift.scala:73 :
{{{
trait Bug {
for (i <- 0 to 10) {
val crash = i
}
}
}}}
While this does not crash :
{{{
class Bug {
for (i <- 0 to 10) {
val nocrash = i
}
}
}}}

Same crash with other kinds of optimizations (Array.map, for instance).

Google Code Info:
Issue #: 34
Author: olivier.chafik
Created On: 2010-10-15T12:48:55.000Z
Closed On: 2010-10-18T09:48:35.000Z

ScalaCL maven build and repository is broken

Hi,

ScalaCL is not in official maven repository nor it builds automatically...

steps to reproduce:

  1. checkout from svn
  2. go to libraries/OpenCL
  3. type "mvn install"

It says "successful", but the scalacl-1.0-SNAPSHOT.jar file has no classes
in it.

It's enough to run mvn install from libraries/OpenCL/ScalaCL.

So from libraries/OpenCL it won't build, but from libraries/OpenCL/ScalaCL
it will.

As of now even the official maven repository doesn't contain correct build
of ScalaCL but the one without the classes.

Google Code Info:
Issue #: 24
Author: [email protected]
Created On: 2010-05-03T12:38:00.000Z
Closed On: 2010-06-09T21:35:13.000Z

[ScalaCLPlugin] Types$TypeError: type mismatch when tuple is returned from Array.map

What steps will reproduce the problem?

Compile the following with ScalaCLPlugin:

class Test {
val a = new ArrayInt
for (i <- a) yield (i, i)
}

What is the expected output? What do you see instead?

Expected output is successful compilation, but the following error (compiled from sbt) is shown instead:

[scalacl] tests.scala:5 An unexpected error occurred while attempting an optimization
[scalacl] tests.scala:5 Attempted optimization : 'transformed Array.map into equivalent while loop.'
[scalacl] tests.scala:5 You can skip this line with SCALACL_SKIP=tests.scala:5
[scalacl] tests.scala:5 Error : scala.tools.nsc.symtab.Types$TypeError: type mismatch;
found : (Int, Int)
required: (T1, T2)
scala.tools.nsc.symtab.Types$TypeError: type mismatch;
found : (Int, Int)
required: (T1, T2)
at scala.tools.nsc.typechecker.Contexts$Context.error(Contexts.scala:274)
at scala.tools.nsc.typechecker.Infer$Inferencer.error(Infer.scala:205)
at scala.tools.nsc.typechecker.Infer$Inferencer.typeError(Infer.scala:215)
at scala.tools.nsc.typechecker.Infer$Inferencer.typeErrorTree(Infer.scala:230)
at scala.tools.nsc.typechecker.Typers$Typer.adapt(Typers.scala:1022)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4208)
at scala.tools.nsc.typechecker.Typers$Typer.typedArg(Typers.scala:2202)
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$typedArgs$3.apply(Typers.scala:2212)
at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$typedArgs$3.apply(Typers.scala:2211)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:206)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
at scala.collection.immutable.List.foreach(List.scala:45)
at scala.collection.TraversableLike$class.map(TraversableLike.scala:206)
at scala.collection.immutable.List.map(List.scala:45)
at scala.tools.nsc.typechecker.Typers$Typer.typedArgs(Typers.scala:2211)
at scala.tools.nsc.typechecker.Typers$Typer.doTypedApply(Typers.scala:2425)
at scala.tools.nsc.typechecker.Typers$Typer.typedApply$1(Typers.scala:3380)
at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4049)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4203)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4252)
at scalacl.TreeBuilders$class.newUpdate(TreeBuilders.scala:111)
at scalacl.LoopsTransformComponent.newUpdate(ArrayLoopsTransformComponent.scala:56)
at scalacl.LoopsTransformComponent$$anon$1$$anonfun$transform$2$$anonfun$apply$5.apply(ArrayLoopsTransformComponent.scala:344)
at scalacl.LoopsTransformComponent$$anon$1$$anonfun$transform$2$$anonfun$apply$5.apply(ArrayLoopsTransformComponent.scala:341)
at scalacl.LoopsTransformComponent$$anon$1$ArrayCol$.foreach(ArrayLoopsTransformComponent.scala:177)
at scalacl.LoopsTransformComponent$$anon$1$$anonfun$transform$2.apply(ArrayLoopsTransformComponent.scala:330)
at scalacl.LoopsTransformComponent$$anon$1$$anonfun$transform$2.apply(ArrayLoopsTransformComponent.scala:326)
at scalacl.TreeBuilders$class.msg(TreeBuilders.scala:55)
at scalacl.LoopsTransformComponent.msg(ArrayLoopsTransformComponent.scala:56)
at scalacl.LoopsTransformComponent$$anon$1.transform(ArrayLoopsTransformComponent.scala:326)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1$$anonfun$apply$5.apply(Trees.scala:868)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1$$anonfun$apply$5.apply(Trees.scala:868)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:868)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:867)
at scala.collection.immutable.List.loop$1(List.scala:115)
at scala.collection.immutable.List.mapConserve(List.scala:132)
at scala.tools.nsc.ast.Trees$Transformer.transformStats(Trees.scala:867)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:775)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:49)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:49)
at scalacl.LoopsTransformComponent$$anon$1.transform(ArrayLoopsTransformComponent.scala:496)
at scala.tools.nsc.ast.Trees$Transformer.transformTemplate(Trees.scala:853)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:745)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$2.apply(Trees.scala:744)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:743)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
at scalacl.LoopsTransformComponent$$anon$1.transform(ArrayLoopsTransformComponent.scala:496)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:869)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:867)
at scala.collection.immutable.List.loop$1(List.scala:115)
at scala.collection.immutable.List.mapConserve(List.scala:132)
at scala.tools.nsc.ast.Trees$Transformer.transformStats(Trees.scala:867)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$1.apply(Trees.scala:739)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$1.apply(Trees.scala:739)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:738)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:49)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$2.apply(TypingTransformers.scala:51)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$2.apply(TypingTransformers.scala:51)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:51)
at scalacl.LoopsTransformComponent$$anon$1.transform(ArrayLoopsTransformComponent.scala:496)
at scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:870)
at scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:30)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply(Global.scala:282)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply(Global.scala:282)
at scala.tools.nsc.reporters.Reporter.withSource(Reporter.scala:48)
at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:282)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:256)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:256)
at scala.collection.Iterator$class.foreach(Iterator.scala:631)
at scala.collection.mutable.ListBuffer$$anon$1.foreach(ListBuffer.scala:304)
at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:256)
at scala.tools.nsc.Global$Run.compileSources(Global.scala:741)
at scala.tools.nsc.Global$Run.compile(Global.scala:822)
at xsbt.CompilerInterface.run(CompilerInterface.scala:81)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at xsbt.AnalyzingCompiler.call(AnalyzingCompiler.scala:40)
at xsbt.AnalyzingCompiler.apply(AnalyzingCompiler.scala:18)
at sbt.Compile.processScala(Compile.scala:76)
at sbt.CompilerCore$$anonfun$1.apply(Compile.scala:27)
at sbt.CompilerCore$$anonfun$1.apply(Compile.scala:27)
at sbt.CompilerCore$$anonfun$process$1$1.apply(Compile.scala:22)
at sbt.CompilerCore$$anonfun$process$1$1.apply(Compile.scala:22)
at sbt.CompilerCore$$anonfun$doCompile$3.apply(Compile.scala:45)
at sbt.CompilerCore$$anonfun$doCompile$3.apply(Compile.scala:42)
at scala.Option.orElse(Option.scala:102)
at sbt.CompilerCore.doCompile(Compile.scala:41)
at sbt.CompilerCore.apply(Compile.scala:29)
at sbt.AbstractCompileConditional.run$1(Conditional.scala:341)
at sbt.AbstractCompileConditional$$anonfun$3.apply(Conditional.scala:344)
at sbt.AbstractCompileConditional$$anonfun$3.apply(Conditional.scala:344)
at sbt.classfile.Analyze$.apply(Analyze.scala:110)
at sbt.AbstractCompileConditional.execute(Conditional.scala:344)
at sbt.Conditional$class.run(Conditional.scala:43)
at sbt.AbstractCompileConditional.run(Conditional.scala:231)
at sbt.BasicScalaProject.sbt$BasicScalaProject$$doCompile(DefaultProject.scala:259)
at sbt.BasicScalaProject$$anonfun$compileAction$1.apply(DefaultProject.scala:273)
at sbt.BasicScalaProject$$anonfun$compileAction$1.apply(DefaultProject.scala:273)
at sbt.TaskManager$Task.invoke(TaskManager.scala:62)
at sbt.impl.RunTask.doRun$1(RunTask.scala:77)
at sbt.impl.RunTask.runTask(RunTask.scala:85)
at sbt.impl.RunTask.sbt$impl$RunTask$$runIfNotRoot(RunTask.scala:60)
at sbt.impl.RunTask$$anonfun$runTasksExceptRoot$2.apply(RunTask.scala:48)
at sbt.impl.RunTask$$anonfun$runTasksExceptRoot$2.apply(RunTask.scala:48)
at sbt.Distributor$Run$Worker$$anonfun$2.apply(ParallelRunner.scala:131)
at sbt.Distributor$Run$Worker$$anonfun$2.apply(ParallelRunner.scala:131)
at sbt.Control$.trapUnit(Control.scala:19)
at sbt.Distributor$Run$Worker.run(ParallelRunner.scala:131)

What version of the product are you using? On what operating system?

Latest scalacl-compiler-plugin-1.0-SNAPSHOT.jar in the maven repository (dated 09-Oct-2010 01:17) on Fedora 13.

As an aside, why isn't there a newer snapshot in the maven repository?

Google Code Info:
Issue #: 33
Author: ismaelj
Created On: 2010-10-11T12:25:44.000Z
Closed On: 2010-10-14T00:31:37.000Z

JVM Crash with JavaCL on Windows

What steps will reproduce the problem?
Call JavaCL.listGPUPoweredPlatforms() and get a crash

What is the expected output? What do you see instead?

What version of the product are you using? On what operating system?
Windows 7 64-bit.
JavaCL 1.0-beta-6
Scala 2.8.0

Google Code Info:
Issue #: 49
Author: [email protected]
Created On: 2011-02-25T22:04:25.000Z
Closed On:

[ScalaCLPlugin] 'cannot find class manifest for element type T' during optimization of Array[Int].map with Manifest

What steps will reproduce the problem?

% SCALACL_VERBOSE=1 SCALACL_TRACE=1 scala
scala> def f[T: Manifest](p: Int => T): Array[T] = Array(1, 2).map(x => p(x + 1)).toArray

What is the expected output?

f: [T](p: %28Int%29 => T)(implicit evidence$1: Manifest[T])Array[T]

What do you see instead?

scala.tools.nsc.symtab.Types$TypeError: cannot find class manifest for element type T
at scala.tools.nsc.typechecker.Contexts$Context.error(Contexts.scala:274)
at scala.tools.nsc.typechecker.Infer$Inferencer.error(Infer.scala:205)
at scala.tools.nsc.typechecker.Typers$Typer.getManifestTree(Typers.scala:4361)
at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4061)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4203)
at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4252)
at scalacl.TreeBuilders$class.newArrayWithArrayType(TreeBuilders.scala:200)
at scalacl.LoopsTransformComponent.newArrayWithArrayType(LoopsTransformComponent.scala:60)
at scalacl.TreeBuilders$class.newArray(TreeBuilders.scala:197)
at scalacl.LoopsTransformComponent.newArray(LoopsTransformComponent.scala:60)
at scalacl.RewritingPluginComponent$CollectionRewriters$ArrayRewriter$.newBuilder(CollectionRewriters.scala:540)
at scalacl.LoopsTransformComponent$$anon$1$$anonfun$transform$4$$anonfun$apply$30.apply(LoopsTransformComponent.scala:715)
at scalacl.LoopsTransformComponent$$anon$1$$anonfun$transform$4$$anonfun$apply$30.apply(LoopsTransformComponent.scala:714)
at scalacl.RewritingPluginComponent$CollectionRewriters$ArrayRewriter$.foreach(CollectionRewriters.scala:586)
at scalacl.LoopsTransformComponent$$anon$1$$anonfun$transform$4.apply(LoopsTransformComponent.scala:708)
at scalacl.LoopsTransformComponent$$anon$1$$anonfun$transform$4.apply(LoopsTransformComponent.scala:249)
at scalacl.TreeBuilders$class.msg(TreeBuilders.scala:61)
at scalacl.LoopsTransformComponent.msg(LoopsTransformComponent.scala:60)
at scalacl.LoopsTransformComponent$$anon$1.transform(LoopsTransformComponent.scala:248)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:851)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:851)
at scala.collection.immutable.List.loop$1(List.scala:115)
at scala.collection.immutable.List.mapConserve(List.scala:132)
at scala.tools.nsc.ast.Trees$Transformer.transformTrees(Trees.scala:851)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:815)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
at scalacl.LoopsTransformComponent$$anon$1.transform(LoopsTransformComponent.scala:763)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:823)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
at scalacl.LoopsTransformComponent$$anon$1.transform(LoopsTransformComponent.scala:763)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:813)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
at scalacl.LoopsTransformComponent$$anon$1.transform(LoopsTransformComponent.scala:763)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:815)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
at scalacl.LoopsTransformComponent$$anon$1.transform(LoopsTransformComponent.scala:758)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$5.apply(Trees.scala:761)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$5.apply(Trees.scala:759)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:758)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
at scalacl.LoopsTransformComponent$$anon$1.transform(LoopsTransformComponent.scala:763)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:869)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:867)
at scala.collection.immutable.List.loop$1(List.scala:115)
at scala.collection.immutable.List.mapConserve(List.scala:132)
at scala.tools.nsc.ast.Trees$Transformer.transformStats(Trees.scala:867)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:775)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:49)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:49)
at scalacl.LoopsTransformComponent$$anon$1.transform(LoopsTransformComponent.scala:763)
at scala.tools.nsc.ast.Trees$Transformer.transformTemplate(Trees.scala:853)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$3.apply(Trees.scala:750)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$3.apply(Trees.scala:749)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:748)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
at scalacl.LoopsTransformComponent$$anon$1.transform(LoopsTransformComponent.scala:763)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:869)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:867)
at scala.collection.immutable.List.loop$1(List.scala:115)
at scala.collection.immutable.List.mapConserve(List.scala:132)
at scala.tools.nsc.ast.Trees$Transformer.transformStats(Trees.scala:867)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:775)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:49)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:49)
at scalacl.LoopsTransformComponent$$anon$1.transform(LoopsTransformComponent.scala:763)
at scala.tools.nsc.ast.Trees$Transformer.transformTemplate(Trees.scala:853)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$3.apply(Trees.scala:750)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$3.apply(Trees.scala:749)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:748)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
at scalacl.LoopsTransformComponent$$anon$1.transform(LoopsTransformComponent.scala:763)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:869)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:867)
at scala.collection.immutable.List.loop$1(List.scala:115)
at scala.collection.immutable.List.mapConserve(List.scala:132)
at scala.tools.nsc.ast.Trees$Transformer.transformStats(Trees.scala:867)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:775)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:49)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:49)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:49)
at scalacl.LoopsTransformComponent$$anon$1.transform(LoopsTransformComponent.scala:763)
at scala.tools.nsc.ast.Trees$Transformer.transformTemplate(Trees.scala:853)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$3.apply(Trees.scala:750)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$3.apply(Trees.scala:749)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:748)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:53)
at scalacl.LoopsTransformComponent$$anon$1.transform(LoopsTransformComponent.scala:763)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:869)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:867)
at scala.collection.immutable.List.loop$1(List.scala:115)
at scala.collection.immutable.List.mapConserve(List.scala:132)
at scala.tools.nsc.ast.Trees$Transformer.transformStats(Trees.scala:867)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$1.apply(Trees.scala:739)
at scala.tools.nsc.ast.Trees$Transformer$$anonfun$transform$1.apply(Trees.scala:739)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.ast.Trees$Transformer.transform(Trees.scala:738)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:49)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$2.apply(TypingTransformers.scala:51)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$2.apply(TypingTransformers.scala:51)
at scala.tools.nsc.ast.Trees$Transformer.atOwner(Trees.scala:877)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:38)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:31)
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:51)
at scalacl.LoopsTransformComponent$$anon$1.transform(LoopsTransformComponent.scala:763)
at scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:870)
at scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:30)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply(Global.scala:282)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$applyPhase$1.apply(Global.scala:282)
at scala.tools.nsc.reporters.Reporter.withSource(Reporter.scala:48)
at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:282)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:256)
at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:256)
at scala.collection.Iterator$class.foreach(Iterator.scala:631)
at scala.collection.mutable.ListBuffer$$anon$1.foreach(ListBuffer.scala:304)
at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:256)
at scala.tools.nsc.Global$Run.compileSources(Global.scala:741)
at scala.tools.nsc.Interpreter.compileAndSaveRun(Interpreter.scala:518)
at scala.tools.nsc.Interpreter$Request.objRun(Interpreter.scala:892)
at scala.tools.nsc.Interpreter$Request.compile(Interpreter.scala:915)
at scala.tools.nsc.Interpreter.interpret(Interpreter.scala:598)
at scala.tools.nsc.Interpreter.interpret(Interpreter.scala:577)
at scala.tools.nsc.InterpreterLoop.reallyInterpret$1(InterpreterLoop.scala:472)
at scala.tools.nsc.InterpreterLoop.interpretStartingWith(InterpreterLoop.scala:515)
at scala.tools.nsc.InterpreterLoop.command(InterpreterLoop.scala:362)
at scala.tools.nsc.InterpreterLoop.processLine$1(InterpreterLoop.scala:243)
at scala.tools.nsc.InterpreterLoop.repl(InterpreterLoop.scala:249)
at scala.tools.nsc.InterpreterLoop.main(InterpreterLoop.scala:559)
at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:72)
at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala)
warning: [scalacl] :5 An unexpected error occurred while attempting an optimization
[scalacl] :5 Attempted optimization : 'transformed Array[Int].map into equivalent while loop.'
[scalacl] :5 You can skip this line with the following environment variable :
[scalacl] :5 SCALACL_SKIP=:5
[scalacl] :5 Error : scala.tools.nsc.symtab.Types$TypeError: cannot find class manifest for element type T
[scalacl] :5 An unexpected error occurred while attempting an optimization
[scalacl] :5 Attempted optimization : 'transformed Array[Int].map into equivalent while loop.'
[scalacl] :5 You can skip this line with the following environment variable :
[scalacl] :5 SCALACL_SKIP=:5
[scalacl] :5 Error : scala.tools.nsc.symtab.Types$TypeError: cannot find class manifest for element type T
f: [T](p: %28Int%29 => T)(implicit evidence$1: Manifest[T])Array[T]

In addition, following code don't cause error during transforming by ScalaCLPlugin.

scala> def f[T: Manifest](p: Int => T): Array[T] = List(1, 2).map(x => p(x + 1)).toArray
[scalacl] :5 transformed List[Int].map into equivalent while loop.
f: [T](p: %28Int%29 => T)(implicit evidence$1: Manifest[T])Array[T]

What version of the product are you using? On what operating system?

ScalaCL plugin: 0.2.Beta10
-rw-r--r-- 1 1297094 2011-02-03 17:01 scala-2.8.1.final/lib/scalacl-0.2.Beta10-shaded.jar
-rw-r--r-- 1 763351 2011-02-03 17:01 scala-2.8.1.final/misc/scala-devel/plugins/scalacl-compiler-plugin-0.2.Beta10.jar

scala: version 2.8.1.final
java: java version "1.6.0_21" / Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
OS: Linux 2.6.35-25-generic #44-Ubuntu SMP Fri Jan 21 17:40:44 UTC 2011 x86_64 GNU/Linux

Google Code Info:
Issue #: 45
Author: [email protected]
Created On: 2011-02-09T03:44:21.000Z
Closed On:

getMaxWorkItemSizes() fails on win7 64 GTX260?

This could be driver related.

At work I use .getMaxWorkItemSizes() perfectly on linux 64 on
both quadro and tesla cards. However at home I'm on windows7 64
GTX260 and it does not work.

getMaxWorkGroupSize() however and all other information calls I
can find work absolutely normal, and I can run kernels just fine :P.

The error I get is

com.nativelibs4java.opencl.CLException$InvalidValue: InvalidValue
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown
Source)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at
com.nativelibs4java.opencl.CLException.error(CLException.java:176)
at
com.nativelibs4java.opencl.CLInfoGetter.getNativeLongs(CLInfoGetter.java:66
)
at
com.nativelibs4java.opencl.CLDevice.getMaxWorkItemSizes(CLDevice.java:132)
at ocl_raytracer.Compute_thread.(Compute_thread.java:66)
at ocl_raytracer.Tracer.main(Tracer.java:86)

(Compute thread and Tracer are my own classes)

Google Code Info:
Issue #: 10
Author: [email protected]
Created On: 2009-10-19T18:43:48.000Z
Closed On: 2009-11-04T09:15:30.000Z

NativeLong's can not represent size_t on windows x64 system

In OpenCL spec, the length of size_t would be 8 bytes on 64bits system.

But the NativeLong would be 4 bytes on Windows x64 system.

So the NativeLong could not be used to represent the size_t.

The new dataTypes was needed for accessing native functions, like size_t
and size_tByReference in java code.

For example:

public class size_t extends IntegerType {

    /** Size of a size_t, in bytes. */
    public static final int SIZE = Pointer.SIZE;// = Native.LONG_SIZE;

    /** Create a zero-valued size_t. */
    public size_t() {
        this(0);
    }

    /** Create a size_t with the given value. */
    public size_t(long value) {
        super(SIZE, value);
    }
}

public class size_tByReference extends ByReference {

    public size_tByReference() {
        this(new size_t(0));
    }

    public size_tByReference(size_t value) {
        super(size_t.SIZE);
        setValue(value);
    }

    public void setValue(size_t value) {
        switch (size_t.SIZE) {
            case 8:
                getPointer().setLong(0, value.longValue());
                break;
            case 4:
                getPointer().setInt(0, value.intValue());
                break;
            default:
                throw new RuntimeException("Unexpected word length: " +

size_t.SIZE);
}
}

    public size_t getValue() {
        size_t v;
        switch (size_t.SIZE) {
            case 8:
                v = new size_t(getPointer().getInt(0));
                break;
            case 4:
                v = new size_t(getPointer().getLong(0));
                break;
            default:
                throw new RuntimeException("Unexpected word length: " +

size_t.SIZE);
}

        return v;
    }
}

Google Code Info:
Issue #: 8
Author: [email protected]
Created On: 2009-10-12T11:24:25.000Z
Closed On: 2009-10-28T03:39:13.000Z

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.