Hi all,

I've just added a few workarounds for pocl to PyOpenCL. Things are
looking up--there are now significantly fewer test failures. See the
attached log. This is with trunk, FWIW.

I did encounter one crash, however, which I've fixed using the attached
patch. The problem seems to be that program->source can be NULL, and
that case is not caught in the CL_PROGRAM_SOURCE GetInfo.

This is super-promising. I'd love to use pocl for my day-to-day development.
What's keeping me from doing so is that compilation is slow and (worse)
resists effective caching by clCreateProgramWithBinary. (I had nagged
you about this before.)

To give you an idea of the speed difference--running the PyOpenCL test
suite on pocl takes 13 minutes. AMD CPU (with a warm compiler cache)
takes a little more than a minute. You can guess which one is a more
pleasant experience to develop for. :)

Andreas

=== modified file 'lib/CL/clGetProgramInfo.c'
--- lib/CL/clGetProgramInfo.c	2013-05-27 08:24:17 +0000
+++ lib/CL/clGetProgramInfo.c	2013-06-08 18:34:48 +0000
@@ -44,11 +44,15 @@
 
   case CL_PROGRAM_SOURCE:
     {
-      size_t const value_size = strlen(program->source) + 1;
+      const char *source = program->source;
+      if (!source)
+        source = "";
+
+      size_t const value_size = strlen(source) + 1;
       if (param_value)
       {
         if (param_value_size < value_size) return CL_INVALID_VALUE;
-        memcpy(param_value, program->source, value_size);
+        memcpy(param_value, source, value_size);
       }
       if (param_value_size_ret)
         *param_value_size_ret = value_size;

==============================================================================================================================
 test session starts 
===============================================================================================================================
platform linux2 -- Python 2.7.5 -- pytest-2.3.5
collected 81 items

test_algorithm.py .............F.....FF.F
test_array.py .......................
test_clmath.py ..................FF.
test_wrapper.py .s...sF.......

====================================================================================================================================
 FAILURES 
====================================================================================================================================
____________________________________________________ 
test_struct_reduce[ctx_factory=<context factory for <pyopencl.Device 
'pthread-Intel(R) Core(TM) i7-2620M CPU @ 2.70GHz' on 'Portable Computing 
Language' at 0x31899e0>>] ____________________________________________________
Traceback (most recent call last):
  File "/home/andreas/src/pyopencl/test/test_algorithm.py", line 418, in 
test_struct_reduce
    minmax = red(a_gpu).get()
  File "/home/andreas/src/pyopencl/pyopencl/reduction.py", line 373, in __call__
    **dict(wait_for=wait_for))
  File "/home/andreas/src/pyopencl/pyopencl/__init__.py", line 567, in 
kernel_call
    global_offset, wait_for, g_times_l=g_times_l)
RuntimeError: clEnqueueNDRangeKernel failed: out of resources
--------------------------------------------------------------------------------------------------------------------------------
 Captured stderr 
---------------------------------------------------------------------------------------------------------------------------------
Call parameter type does not match function signature!
  %62 = bitcast %struct.minmax_collector* %61 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p2i8.i64(i8* %62, i8* %63, i64 
12, i32 4, i1 false) #0, !tbaa.struct !15, !llvm.mem.parallel_loop_access !14
Call parameter type does not match function signature!
  %179 = bitcast %struct.minmax_collector* %178 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p2i8.i64(i8* %179, i8* %180, i64 
12, i32 4, i1 false) #0, !tbaa.struct !15, !llvm.mem.parallel_loop_access !18
Call parameter type does not match function signature!
  %131 = bitcast %struct.minmax_collector* %130 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p2i8.i64(i8* %131, i8* %132, i64 
12, i32 4, i1 false) #0, !tbaa.struct !15, !llvm.mem.parallel_loop_access !19
Call parameter type does not match function signature!
  %383 = bitcast %struct.minmax_collector* %382 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p2i8.i64(i8* %383, i8* %384, i64 
12, i32 4, i1 false) #0, !tbaa.struct !15, !llvm.mem.parallel_loop_access !20
Call parameter type does not match function signature!
  %326 = bitcast %struct.minmax_collector* %325 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p2i8.i64(i8* %326, i8* %327, i64 
12, i32 4, i1 false) #0, !tbaa.struct !15, !llvm.mem.parallel_loop_access !21
Broken module found, compilation aborted!
0  libLLVM-3.3.so.1 0x00007fe3fff50a02 llvm::sys::PrintStackTrace(_IO_FILE*) + 
34
1  libLLVM-3.3.so.1 0x00007fe3fff50859
2  libpthread.so.0  0x00007fe3feec1210
3  libc.so.6        0x00007fe3fdd05295 gsignal + 53
4  libc.so.6        0x00007fe3fdd08438 abort + 328
5  libLLVM-3.3.so.1 0x00007fe3ff975e5e
6  libLLVM-3.3.so.1 0x00007fe3ff97c070
7  libLLVM-3.3.so.1 0x00007fe3ff95deef 
llvm::FPPassManager::runOnFunction(llvm::Function&) + 607
8  libLLVM-3.3.so.1 0x00007fe3ff95df2b 
llvm::FPPassManager::runOnModule(llvm::Module&) + 43
9  libLLVM-3.3.so.1 0x00007fe3ff95dadf 
llvm::MPPassManager::runOnModule(llvm::Module&) + 575
10 libLLVM-3.3.so.1 0x00007fe3ff95dc1c 
llvm::PassManagerImpl::run(llvm::Module&) + 172
11 opt              0x0000000000423343 main + 3043
12 libc.so.6        0x00007fe3fdcf1a55 __libc_start_main + 245
13 opt              0x000000000040f9c9
Stack dump:
0.      Program arguments: /usr/lib/llvm-3.3/bin/opt 
-load=/home/andreas/pack/pocl-build/lib/pocl/llvmopencl.so -domtree 
-workitem-handler-chooser -break-constgeps -generate-header -flatten 
-always-inline -globaldce -simplifycfg -loop-simplify -phistoallocas 
-isolate-regions -uniformity -implicit-loop-barriers -loop-barriers 
-barriertails -barriers -isolate-regions -add-wi-metadata -wi-aa -workitemrepl 
-workitemloops -allocastoentry -workgroup -kernel=reduce_kernel_stage1 
-local-size=64 1 1 -disable-simplify-libcalls -target-address-spaces -O3 
-instcombine 
-header=/tmp/poclhsnqO7/pthread/reduce_kernel_stage1/kernel_header.h -o 
/tmp/poclhsnqO7/pthread/reduce_kernel_stage1/64-1-1.0-0-0/parallel.bc 
/tmp/poclhsnqO7/pthread/reduce_kernel_stage1/kernel_linked.bc
1.      Running pass 'Function Pass Manager' on module 
'/tmp/poclhsnqO7/pthread/reduce_kernel_stage1/kernel_linked.bc'.
2.      Running pass 'Module Verifier' on function '@_reduce_kernel_stage1'
Aborted
Call parameter type does not match function signature!
  %62 = bitcast %struct.minmax_collector* %61 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p2i8.i64(i8* %62, i8* %63, i64 
12, i32 4, i1 false) #0, !tbaa.struct !15, !llvm.mem.parallel_loop_access !14
Call parameter type does not match function signature!
  %179 = bitcast %struct.minmax_collector* %178 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p2i8.i64(i8* %179, i8* %180, i64 
12, i32 4, i1 false) #0, !tbaa.struct !15, !llvm.mem.parallel_loop_access !18
Call parameter type does not match function signature!
  %131 = bitcast %struct.minmax_collector* %130 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p2i8.i64(i8* %131, i8* %132, i64 
12, i32 4, i1 false) #0, !tbaa.struct !15, !llvm.mem.parallel_loop_access !19
Call parameter type does not match function signature!
  %383 = bitcast %struct.minmax_collector* %382 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p2i8.i64(i8* %383, i8* %384, i64 
12, i32 4, i1 false) #0, !tbaa.struct !15, !llvm.mem.parallel_loop_access !20
Call parameter type does not match function signature!
  %326 = bitcast %struct.minmax_collector* %325 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p2i8.i64(i8* %326, i8* %327, i64 
12, i32 4, i1 false) #0, !tbaa.struct !15, !llvm.mem.parallel_loop_access !21
Broken module found, compilation aborted!
0  libLLVM-3.3.so.1 0x00007fe37dab8a02 llvm::sys::PrintStackTrace(_IO_FILE*) + 
34
1  libLLVM-3.3.so.1 0x00007fe37dab8859
2  libpthread.so.0  0x00007fe37ca29210
3  libc.so.6        0x00007fe37b86d295 gsignal + 53
4  libc.so.6        0x00007fe37b870438 abort + 328
5  libLLVM-3.3.so.1 0x00007fe37d4dde5e
6  libLLVM-3.3.so.1 0x00007fe37d4e4070
7  libLLVM-3.3.so.1 0x00007fe37d4c5eef 
llvm::FPPassManager::runOnFunction(llvm::Function&) + 607
8  libLLVM-3.3.so.1 0x00007fe37d4c5f2b 
llvm::FPPassManager::runOnModule(llvm::Module&) + 43
9  libLLVM-3.3.so.1 0x00007fe37d4c5adf 
llvm::MPPassManager::runOnModule(llvm::Module&) + 575
10 libLLVM-3.3.so.1 0x00007fe37d4c5c1c 
llvm::PassManagerImpl::run(llvm::Module&) + 172
11 opt              0x0000000000423343 main + 3043
12 libc.so.6        0x00007fe37b859a55 __libc_start_main + 245
13 opt              0x000000000040f9c9
Stack dump:
0.      Program arguments: /usr/lib/llvm-3.3/bin/opt 
-load=/home/andreas/pack/pocl-build/lib/pocl/llvmopencl.so -domtree 
-workitem-handler-chooser -break-constgeps -generate-header -flatten 
-always-inline -globaldce -simplifycfg -loop-simplify -phistoallocas 
-isolate-regions -uniformity -implicit-loop-barriers -loop-barriers 
-barriertails -barriers -isolate-regions -add-wi-metadata -wi-aa -workitemrepl 
-workitemloops -allocastoentry -workgroup -kernel=reduce_kernel_stage1 
-local-size=64 1 1 -disable-simplify-libcalls -target-address-spaces -O3 
-instcombine 
-header=/tmp/poclhsnqO7/pthread/reduce_kernel_stage1/kernel_header.h -o 
/tmp/poclhsnqO7/pthread/reduce_kernel_stage1/64-1-1.0-0-0/parallel.bc 
/tmp/poclhsnqO7/pthread/reduce_kernel_stage1/kernel_linked.bc
1.      Running pass 'Function Pass Manager' on module 
'/tmp/poclhsnqO7/pthread/reduce_kernel_stage1/kernel_linked.bc'.
2.      Running pass 'Module Verifier' on function '@_reduce_kernel_stage1'
Aborted
___________________________________________________ 
test_segmented_scan[ctx_factory=<context factory for <pyopencl.Device 
'pthread-Intel(R) Core(TM) i7-2620M CPU @ 2.70GHz' on 'Portable Computing 
Language' at 0x31899e0>>] ____________________________________________________
Traceback (most recent call last):
  File "/home/andreas/src/pyopencl/test/test_algorithm.py", line 726, in 
test_segmented_scan
    assert is_correct
AssertionError: assert False
--------------------------------------------------------------------------------------------------------------------------------
 Captured stdout 
---------------------------------------------------------------------------------------------------------------------------------
10 excl:True done
255 excl:True done
256 excl:True done
257 excl:True done
1019 excl:True done
1024 excl:True done
1029 excl:True done
4091 excl:True done
4096 excl:True done
4101 excl:True done
('RES-REF', array([     0,      0,      0, ..., 384150, 384150, 384150], 
dtype=int32))
('ERRWHERE', (array([ 74592,  74593,  74594, ..., 786429, 786430, 786431]),))
(786432, [0, 1028, 11356, 11594, 17345, 32522, 36773, 42584, 44007, 49648, 
61420, 74591, 88780, 95648, 98789, 104783, 141628, 146046, 158053, 159803, 
173407, 176885, 180897, 190414, 206458, 208090, 210053, 211246, 212412, 228910, 
233313, 237048, 241075, 245262, 257151, 260564, 264384, 266329, 280423, 281717, 
292118, 295836, 301199, 308469, 318235, 324332, 332454, 349415, 359289, 376179, 
388409, 396966, 411503, 428108, 440118, 441773, 443687, 444596, 447162, 460045, 
461253, 461657, 464294, 483909, 492666, 495726, 500106, 504635, 520582, 536845, 
537838, 539698, 542272, 550236, 551744, 572616, 579991, 586024, 590264, 609756, 
621543, 630877, 637178, 645228, 646637, 649754, 652492, 667465, 697494, 699058, 
700256, 703805, 723129, 743683, 744179, 753103, 754374, 768903, 772442, 773091, 
776660, 781474])
________________________________________________________ 
test_sort[ctx_factory=<context factory for <pyopencl.Device 'pthread-Intel(R) 
Core(TM) i7-2620M CPU @ 2.70GHz' on 'Portable Computing Language' at 
0x31899e0>>] _________________________________________________________
Traceback (most recent call last):
  File "/home/andreas/src/pyopencl/test/test_algorithm.py", line 762, in 
test_sort
    (a_dev_sorted,), evt = sort(a_dev, key_bits=16)
  File "/home/andreas/src/pyopencl/pyopencl/algorithm.py", line 507, in __call__
    **dict(queue=queue, wait_for=wait_for))
  File "/home/andreas/src/pyopencl/pyopencl/scan.py", line 1355, in __call__
    *scan1_args, **dict(g_times_l=True, wait_for=wait_for))
  File "/home/andreas/src/pyopencl/pyopencl/__init__.py", line 567, in 
kernel_call
    global_offset, wait_for, g_times_l=g_times_l)
RuntimeError: clEnqueueNDRangeKernel failed: out of resources
--------------------------------------------------------------------------------------------------------------------------------
 Captured stdout 
---------------------------------------------------------------------------------------------------------------------------------
10
  rng
  device
--------------------------------------------------------------------------------------------------------------------------------
 Captured stderr 
---------------------------------------------------------------------------------------------------------------------------------
Call parameter type does not match function signature!
  %619 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %613 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p2i8.i64(i8* %619, i8* %620, i64 
16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access !35
Call parameter type does not match function signature!
  %1162 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1156 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p2i8.i64(i8* %1162, i8* %1163, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!63
Call parameter type does not match function signature!
  %1176 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1172 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1176, i8* %1177, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!64
Call parameter type does not match function signature!
  %1176 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1172 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1176, i8* %1177, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36
Call parameter type does not match function signature!
  %1168 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1164 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1168, i8* %1169, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!65
Call parameter type does not match function signature!
  %1655 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1649 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p2i8.i64(i8* %1655, i8* %1656, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!92
Call parameter type does not match function signature!
  %1663 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1659 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1663, i8* %1664, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!93
Call parameter type does not match function signature!
  %1744 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1740 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1744, i8* %1745, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!94
Call parameter type does not match function signature!
  %1744 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1740 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1744, i8* %1745, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36
Broken module found, compilation aborted!
0  libLLVM-3.3.so.1 0x00007fe4b5603a02 llvm::sys::PrintStackTrace(_IO_FILE*) + 
34
1  libLLVM-3.3.so.1 0x00007fe4b5603859
2  libpthread.so.0  0x00007fe4b4574210
3  libc.so.6        0x00007fe4b33b8295 gsignal + 53
4  libc.so.6        0x00007fe4b33bb438 abort + 328
5  libLLVM-3.3.so.1 0x00007fe4b5028e5e
6  libLLVM-3.3.so.1 0x00007fe4b502f070
7  libLLVM-3.3.so.1 0x00007fe4b5010eef 
llvm::FPPassManager::runOnFunction(llvm::Function&) + 607
8  libLLVM-3.3.so.1 0x00007fe4b5010f2b 
llvm::FPPassManager::runOnModule(llvm::Module&) + 43
9  libLLVM-3.3.so.1 0x00007fe4b5010adf 
llvm::MPPassManager::runOnModule(llvm::Module&) + 575
10 libLLVM-3.3.so.1 0x00007fe4b5010c1c 
llvm::PassManagerImpl::run(llvm::Module&) + 172
11 opt              0x0000000000423343 main + 3043
12 libc.so.6        0x00007fe4b33a4a55 __libc_start_main + 245
13 opt              0x000000000040f9c9
Stack dump:
0.      Program arguments: /usr/lib/llvm-3.3/bin/opt 
-load=/home/andreas/pack/pocl-build/lib/pocl/llvmopencl.so -domtree 
-workitem-handler-chooser -break-constgeps -generate-header -flatten 
-always-inline -globaldce -simplifycfg -loop-simplify -phistoallocas 
-isolate-regions -uniformity -implicit-loop-barriers -loop-barriers 
-barriertails -barriers -isolate-regions -add-wi-metadata -wi-aa -workitemrepl 
-workitemloops -allocastoentry -workgroup -kernel=scan_scan_intervals 
-local-size=256 1 1 -disable-simplify-libcalls -target-address-spaces -O3 
-instcombine 
-header=/tmp/poclcLciWO/pthread/scan_scan_intervals/kernel_header.h -o 
/tmp/poclcLciWO/pthread/scan_scan_intervals/256-1-1.0-0-0/parallel.bc 
/tmp/poclcLciWO/pthread/scan_scan_intervals/kernel_linked.bc
1.      Running pass 'Function Pass Manager' on module 
'/tmp/poclcLciWO/pthread/scan_scan_intervals/kernel_linked.bc'.
2.      Running pass 'Module Verifier' on function '@_scan_scan_intervals'
Aborted
Call parameter type does not match function signature!
  %619 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %613 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p2i8.i64(i8* %619, i8* %620, i64 
16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access !35
Call parameter type does not match function signature!
  %1162 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1156 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p2i8.i64(i8* %1162, i8* %1163, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!63
Call parameter type does not match function signature!
  %1176 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1172 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1176, i8* %1177, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!64
Call parameter type does not match function signature!
  %1176 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1172 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1176, i8* %1177, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36
Call parameter type does not match function signature!
  %1168 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1164 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1168, i8* %1169, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!65
Call parameter type does not match function signature!
  %1655 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1649 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p2i8.i64(i8* %1655, i8* %1656, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!92
Call parameter type does not match function signature!
  %1663 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1659 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1663, i8* %1664, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!93
Call parameter type does not match function signature!
  %1744 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1740 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1744, i8* %1745, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!94
Call parameter type does not match function signature!
  %1744 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1740 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1744, i8* %1745, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36
Broken module found, compilation aborted!
0  libLLVM-3.3.so.1 0x00007f186d735a02 llvm::sys::PrintStackTrace(_IO_FILE*) + 
34
1  libLLVM-3.3.so.1 0x00007f186d735859
2  libpthread.so.0  0x00007f186c6a6210
3  libc.so.6        0x00007f186b4ea295 gsignal + 53
4  libc.so.6        0x00007f186b4ed438 abort + 328
5  libLLVM-3.3.so.1 0x00007f186d15ae5e
6  libLLVM-3.3.so.1 0x00007f186d161070
7  libLLVM-3.3.so.1 0x00007f186d142eef 
llvm::FPPassManager::runOnFunction(llvm::Function&) + 607
8  libLLVM-3.3.so.1 0x00007f186d142f2b 
llvm::FPPassManager::runOnModule(llvm::Module&) + 43
9  libLLVM-3.3.so.1 0x00007f186d142adf 
llvm::MPPassManager::runOnModule(llvm::Module&) + 575
10 libLLVM-3.3.so.1 0x00007f186d142c1c 
llvm::PassManagerImpl::run(llvm::Module&) + 172
11 opt              0x0000000000423343 main + 3043
12 libc.so.6        0x00007f186b4d6a55 __libc_start_main + 245
13 opt              0x000000000040f9c9
Stack dump:
0.      Program arguments: /usr/lib/llvm-3.3/bin/opt 
-load=/home/andreas/pack/pocl-build/lib/pocl/llvmopencl.so -domtree 
-workitem-handler-chooser -break-constgeps -generate-header -flatten 
-always-inline -globaldce -simplifycfg -loop-simplify -phistoallocas 
-isolate-regions -uniformity -implicit-loop-barriers -loop-barriers 
-barriertails -barriers -isolate-regions -add-wi-metadata -wi-aa -workitemrepl 
-workitemloops -allocastoentry -workgroup -kernel=scan_scan_intervals 
-local-size=256 1 1 -disable-simplify-libcalls -target-address-spaces -O3 
-instcombine 
-header=/tmp/poclcLciWO/pthread/scan_scan_intervals/kernel_header.h -o 
/tmp/poclcLciWO/pthread/scan_scan_intervals/256-1-1.0-0-0/parallel.bc 
/tmp/poclcLciWO/pthread/scan_scan_intervals/kernel_linked.bc
1.      Running pass 'Function Pass Manager' on module 
'/tmp/poclcLciWO/pthread/scan_scan_intervals/kernel_linked.bc'.
2.      Running pass 'Module Verifier' on function '@_scan_scan_intervals'
Aborted
__________________________________________________ 
test_key_value_sorter[ctx_factory=<context factory for <pyopencl.Device 
'pthread-Intel(R) Core(TM) i7-2620M CPU @ 2.70GHz' on 'Portable Computing 
Language' at 0x31899e0>>] ___________________________________________________
Traceback (most recent call last):
  File "/home/andreas/src/pyopencl/test/test_algorithm.py", line 819, in 
test_key_value_sorter
    starts, lists, evt = kvs(queue, keys, values, nkeys, starts_dtype=np.int32)
  File "/home/andreas/src/pyopencl/pyopencl/algorithm.py", line 1153, in 
__call__
    values, keys, queue=queue, wait_for=wait_for)
  File "/home/andreas/src/pyopencl/pyopencl/algorithm.py", line 507, in __call__
    **dict(queue=queue, wait_for=wait_for))
  File "/home/andreas/src/pyopencl/pyopencl/scan.py", line 1355, in __call__
    *scan1_args, **dict(g_times_l=True, wait_for=wait_for))
  File "/home/andreas/src/pyopencl/pyopencl/__init__.py", line 567, in 
kernel_call
    global_offset, wait_for, g_times_l=g_times_l)
RuntimeError: clEnqueueNDRangeKernel failed: out of resources
--------------------------------------------------------------------------------------------------------------------------------
 Captured stderr 
---------------------------------------------------------------------------------------------------------------------------------
Call parameter type does not match function signature!
  %621 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %615 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p2i8.i64(i8* %621, i8* %622, i64 
16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access !35
Call parameter type does not match function signature!
  %1164 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1158 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p2i8.i64(i8* %1164, i8* %1165, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!63
Call parameter type does not match function signature!
  %1178 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1174 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1178, i8* %1179, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!64
Call parameter type does not match function signature!
  %1178 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1174 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1178, i8* %1179, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36
Call parameter type does not match function signature!
  %1170 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1166 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1170, i8* %1171, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!65
Call parameter type does not match function signature!
  %1657 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1651 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p2i8.i64(i8* %1657, i8* %1658, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!92
Call parameter type does not match function signature!
  %1665 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1661 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1665, i8* %1666, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!93
Call parameter type does not match function signature!
  %1746 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1742 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1746, i8* %1747, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!94
Call parameter type does not match function signature!
  %1746 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1742 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1746, i8* %1747, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36
Broken module found, compilation aborted!
0  libLLVM-3.3.so.1 0x00007f6fdb71aa02 llvm::sys::PrintStackTrace(_IO_FILE*) + 
34
1  libLLVM-3.3.so.1 0x00007f6fdb71a859
2  libpthread.so.0  0x00007f6fda68b210
3  libc.so.6        0x00007f6fd94cf295 gsignal + 53
4  libc.so.6        0x00007f6fd94d2438 abort + 328
5  libLLVM-3.3.so.1 0x00007f6fdb13fe5e
6  libLLVM-3.3.so.1 0x00007f6fdb146070
7  libLLVM-3.3.so.1 0x00007f6fdb127eef 
llvm::FPPassManager::runOnFunction(llvm::Function&) + 607
8  libLLVM-3.3.so.1 0x00007f6fdb127f2b 
llvm::FPPassManager::runOnModule(llvm::Module&) + 43
9  libLLVM-3.3.so.1 0x00007f6fdb127adf 
llvm::MPPassManager::runOnModule(llvm::Module&) + 575
10 libLLVM-3.3.so.1 0x00007f6fdb127c1c 
llvm::PassManagerImpl::run(llvm::Module&) + 172
11 opt              0x0000000000423343 main + 3043
12 libc.so.6        0x00007f6fd94bba55 __libc_start_main + 245
13 opt              0x000000000040f9c9
Stack dump:
0.      Program arguments: /usr/lib/llvm-3.3/bin/opt 
-load=/home/andreas/pack/pocl-build/lib/pocl/llvmopencl.so -domtree 
-workitem-handler-chooser -break-constgeps -generate-header -flatten 
-always-inline -globaldce -simplifycfg -loop-simplify -phistoallocas 
-isolate-regions -uniformity -implicit-loop-barriers -loop-barriers 
-barriertails -barriers -isolate-regions -add-wi-metadata -wi-aa -workitemrepl 
-workitemloops -allocastoentry -workgroup -kernel=scan_scan_intervals 
-local-size=256 1 1 -disable-simplify-libcalls -target-address-spaces -O3 
-instcombine 
-header=/tmp/poclBvFWrw/pthread/scan_scan_intervals/kernel_header.h -o 
/tmp/poclBvFWrw/pthread/scan_scan_intervals/256-1-1.0-0-0/parallel.bc 
/tmp/poclBvFWrw/pthread/scan_scan_intervals/kernel_linked.bc
1.      Running pass 'Function Pass Manager' on module 
'/tmp/poclBvFWrw/pthread/scan_scan_intervals/kernel_linked.bc'.
2.      Running pass 'Module Verifier' on function '@_scan_scan_intervals'
Aborted
Call parameter type does not match function signature!
  %621 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %615 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p2i8.i64(i8* %621, i8* %622, i64 
16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access !35
Call parameter type does not match function signature!
  %1164 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1158 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p2i8.i64(i8* %1164, i8* %1165, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!63
Call parameter type does not match function signature!
  %1178 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1174 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1178, i8* %1179, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!64
Call parameter type does not match function signature!
  %1178 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1174 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1178, i8* %1179, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36
Call parameter type does not match function signature!
  %1170 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1166 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1170, i8* %1171, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!65
Call parameter type does not match function signature!
  %1657 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1651 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p2i8.i64(i8* %1657, i8* %1658, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!92
Call parameter type does not match function signature!
  %1665 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1661 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1665, i8* %1666, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!93
Call parameter type does not match function signature!
  %1746 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1742 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1746, i8* %1747, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36, !llvm.mem.parallel_loop_access 
!94
Call parameter type does not match function signature!
  %1746 = bitcast %struct.pyopencl_sort_scan_int32_2bits_t* %1742 to i8*
 i8 addrspace(1)*  call void @llvm.memcpy.p1i8.p1i8.i64(i8* %1746, i8* %1747, 
i64 16, i32 4, i1 false) #0, !tbaa.struct !36
Broken module found, compilation aborted!
0  libLLVM-3.3.so.1 0x00007f77d2798a02 llvm::sys::PrintStackTrace(_IO_FILE*) + 
34
1  libLLVM-3.3.so.1 0x00007f77d2798859
2  libpthread.so.0  0x00007f77d1709210
3  libc.so.6        0x00007f77d054d295 gsignal + 53
4  libc.so.6        0x00007f77d0550438 abort + 328
5  libLLVM-3.3.so.1 0x00007f77d21bde5e
6  libLLVM-3.3.so.1 0x00007f77d21c4070
7  libLLVM-3.3.so.1 0x00007f77d21a5eef 
llvm::FPPassManager::runOnFunction(llvm::Function&) + 607
8  libLLVM-3.3.so.1 0x00007f77d21a5f2b 
llvm::FPPassManager::runOnModule(llvm::Module&) + 43
9  libLLVM-3.3.so.1 0x00007f77d21a5adf 
llvm::MPPassManager::runOnModule(llvm::Module&) + 575
10 libLLVM-3.3.so.1 0x00007f77d21a5c1c 
llvm::PassManagerImpl::run(llvm::Module&) + 172
11 opt              0x0000000000423343 main + 3043
12 libc.so.6        0x00007f77d0539a55 __libc_start_main + 245
13 opt              0x000000000040f9c9
Stack dump:
0.      Program arguments: /usr/lib/llvm-3.3/bin/opt 
-load=/home/andreas/pack/pocl-build/lib/pocl/llvmopencl.so -domtree 
-workitem-handler-chooser -break-constgeps -generate-header -flatten 
-always-inline -globaldce -simplifycfg -loop-simplify -phistoallocas 
-isolate-regions -uniformity -implicit-loop-barriers -loop-barriers 
-barriertails -barriers -isolate-regions -add-wi-metadata -wi-aa -workitemrepl 
-workitemloops -allocastoentry -workgroup -kernel=scan_scan_intervals 
-local-size=256 1 1 -disable-simplify-libcalls -target-address-spaces -O3 
-instcombine 
-header=/tmp/poclBvFWrw/pthread/scan_scan_intervals/kernel_header.h -o 
/tmp/poclBvFWrw/pthread/scan_scan_intervals/256-1-1.0-0-0/parallel.bc 
/tmp/poclBvFWrw/pthread/scan_scan_intervals/kernel_linked.bc
1.      Running pass 'Function Pass Manager' on module 
'/tmp/poclBvFWrw/pthread/scan_scan_intervals/kernel_linked.bc'.
2.      Running pass 'Module Verifier' on function '@_scan_scan_intervals'
Aborted
________________________________________________________ 
test_modf[ctx_factory=<context factory for <pyopencl.Device 'pthread-Intel(R) 
Core(TM) i7-2620M CPU @ 2.70GHz' on 'Portable Computing Language' at 
0x31899e0>>] _________________________________________________________
Traceback (most recent call last):
  File "/home/andreas/src/pyopencl/test/test_clmath.py", line 173, in test_modf
    fracpart, intpart = clmath.modf(a)
  File "/home/andreas/src/pyopencl/pyopencl/clmath.py", line 193, in modf
    _modf(intpart, fracpart, arg, queue=queue)
  File "/home/andreas/src/pyopencl/pyopencl/array.py", line 186, in 
kernel_runner
    return knl(queue, gs, ls, *actual_args, **dict(wait_for=wait_for))
  File "/home/andreas/src/pyopencl/pyopencl/__init__.py", line 567, in 
kernel_call
    global_offset, wait_for, g_times_l=g_times_l)
RuntimeError: clEnqueueNDRangeKernel failed: out of resources
--------------------------------------------------------------------------------------------------------------------------------
 Captured stderr 
---------------------------------------------------------------------------------------------------------------------------------
Call parameter type does not match function signature!
  %33 = getelementptr inbounds float* %16, i64 %29
 float addrspace(1)*  %34 = tail call i32 (double, float addrspace(1)*, ...)* 
bitcast (i32 (...)* @modf to i32 (double, float addrspace(1)*, ...)*)(double 
%32, float* %33) #4, !llvm.mem.parallel_loop_access !8
Broken module found, compilation aborted!
0  libLLVM-3.3.so.1 0x00007fc63646aa02 llvm::sys::PrintStackTrace(_IO_FILE*) + 
34
1  libLLVM-3.3.so.1 0x00007fc63646a859
2  libpthread.so.0  0x00007fc6353db210
3  libc.so.6        0x00007fc63421f295 gsignal + 53
4  libc.so.6        0x00007fc634222438 abort + 328
5  libLLVM-3.3.so.1 0x00007fc635e8fe5e
6  libLLVM-3.3.so.1 0x00007fc635e96070
7  libLLVM-3.3.so.1 0x00007fc635e77eef 
llvm::FPPassManager::runOnFunction(llvm::Function&) + 607
8  libLLVM-3.3.so.1 0x00007fc635e77f2b 
llvm::FPPassManager::runOnModule(llvm::Module&) + 43
9  libLLVM-3.3.so.1 0x00007fc635e77adf 
llvm::MPPassManager::runOnModule(llvm::Module&) + 575
10 libLLVM-3.3.so.1 0x00007fc635e77c1c 
llvm::PassManagerImpl::run(llvm::Module&) + 172
11 opt              0x0000000000423343 main + 3043
12 libc.so.6        0x00007fc63420ba55 __libc_start_main + 245
13 opt              0x000000000040f9c9
Stack dump:
0.      Program arguments: /usr/lib/llvm-3.3/bin/opt 
-load=/home/andreas/pack/pocl-build/lib/pocl/llvmopencl.so -domtree 
-workitem-handler-chooser -break-constgeps -generate-header -flatten 
-always-inline -globaldce -simplifycfg -loop-simplify -phistoallocas 
-isolate-regions -uniformity -implicit-loop-barriers -loop-barriers 
-barriertails -barriers -isolate-regions -add-wi-metadata -wi-aa -workitemrepl 
-workitemloops -allocastoentry -workgroup -kernel=modf_kernel -local-size=32 1 
1 -disable-simplify-libcalls -target-address-spaces -O3 -instcombine 
-header=/tmp/poclFUG2be/pthread/modf_kernel/kernel_header.h -o 
/tmp/poclFUG2be/pthread/modf_kernel/32-1-1.0-0-0/parallel.bc 
/tmp/poclFUG2be/pthread/modf_kernel/kernel_linked.bc
1.      Running pass 'Function Pass Manager' on module 
'/tmp/poclFUG2be/pthread/modf_kernel/kernel_linked.bc'.
2.      Running pass 'Module Verifier' on function '@_modf_kernel'
Aborted
Call parameter type does not match function signature!
  %33 = getelementptr inbounds float* %16, i64 %29
 float addrspace(1)*  %34 = tail call i32 (double, float addrspace(1)*, ...)* 
bitcast (i32 (...)* @modf to i32 (double, float addrspace(1)*, ...)*)(double 
%32, float* %33) #4, !llvm.mem.parallel_loop_access !8
Broken module found, compilation aborted!
0  libLLVM-3.3.so.1 0x00007ffc6f3f3a02 llvm::sys::PrintStackTrace(_IO_FILE*) + 
34
1  libLLVM-3.3.so.1 0x00007ffc6f3f3859
2  libpthread.so.0  0x00007ffc6e364210
3  libc.so.6        0x00007ffc6d1a8295 gsignal + 53
4  libc.so.6        0x00007ffc6d1ab438 abort + 328
5  libLLVM-3.3.so.1 0x00007ffc6ee18e5e
6  libLLVM-3.3.so.1 0x00007ffc6ee1f070
7  libLLVM-3.3.so.1 0x00007ffc6ee00eef 
llvm::FPPassManager::runOnFunction(llvm::Function&) + 607
8  libLLVM-3.3.so.1 0x00007ffc6ee00f2b 
llvm::FPPassManager::runOnModule(llvm::Module&) + 43
9  libLLVM-3.3.so.1 0x00007ffc6ee00adf 
llvm::MPPassManager::runOnModule(llvm::Module&) + 575
10 libLLVM-3.3.so.1 0x00007ffc6ee00c1c 
llvm::PassManagerImpl::run(llvm::Module&) + 172
11 opt              0x0000000000423343 main + 3043
12 libc.so.6        0x00007ffc6d194a55 __libc_start_main + 245
13 opt              0x000000000040f9c9
Stack dump:
0.      Program arguments: /usr/lib/llvm-3.3/bin/opt 
-load=/home/andreas/pack/pocl-build/lib/pocl/llvmopencl.so -domtree 
-workitem-handler-chooser -break-constgeps -generate-header -flatten 
-always-inline -globaldce -simplifycfg -loop-simplify -phistoallocas 
-isolate-regions -uniformity -implicit-loop-barriers -loop-barriers 
-barriertails -barriers -isolate-regions -add-wi-metadata -wi-aa -workitemrepl 
-workitemloops -allocastoentry -workgroup -kernel=modf_kernel -local-size=32 1 
1 -disable-simplify-libcalls -target-address-spaces -O3 -instcombine 
-header=/tmp/poclFUG2be/pthread/modf_kernel/kernel_header.h -o 
/tmp/poclFUG2be/pthread/modf_kernel/32-1-1.0-0-0/parallel.bc 
/tmp/poclFUG2be/pthread/modf_kernel/kernel_linked.bc
1.      Running pass 'Function Pass Manager' on module 
'/tmp/poclFUG2be/pthread/modf_kernel/kernel_linked.bc'.
2.      Running pass 'Module Verifier' on function '@_modf_kernel'
Aborted
________________________________________________________ 
test_frexp[ctx_factory=<context factory for <pyopencl.Device 'pthread-Intel(R) 
Core(TM) i7-2620M CPU @ 2.70GHz' on 'Portable Computing Language' at 
0x31899e0>>] ________________________________________________________
Traceback (most recent call last):
  File "/home/andreas/src/pyopencl/test/test_clmath.py", line 201, in test_frexp
    assert sig_true == significands[i]
AssertionError: assert 0.800000011920929 == -1.6106127e+09
______________________________________________________ 
test_image_3d[ctx_factory=<context factory for <pyopencl.Device 
'pthread-Intel(R) Core(TM) i7-2620M CPU @ 2.70GHz' on 'Portable Computing 
Language' at 0x31899e0>>] 
_______________________________________________________
Traceback (most recent call last):
  File "/home/andreas/src/pyopencl/test/test_wrapper.py", line 383, in 
test_image_3d
    """).build()
  File "/home/andreas/src/pyopencl/pyopencl/__init__.py", line 172, in build
    options=options, source=self._source)
  File "/home/andreas/src/pyopencl/pyopencl/__init__.py", line 216, in 
_build_and_catch_errors
    raise err
RuntimeError: clBuildProgram failed: build program failure -

Build on <pyopencl.Device 'pthread-Intel(R) Core(TM) i7-2620M CPU @ 2.70GHz' on 
'Portable Computing Language' at 0x31899e0>:


(options: -I /home/andreas/src/pyopencl/pyopencl/cl)
(source saved as /tmp/tmprGWZ70.cl)
--------------------------------------------------------------------------------------------------------------------------------
 Captured stderr 
---------------------------------------------------------------------------------------------------------------------------------
/tmp/poclR1D9B0//program.cl:18:48: error: no matching function for call to 
'read_imagef'
          dest[d0*stride0 + d1*stride1 + d2] = read_imagef(
                                               ^~~~~~~~~~~
/home/andreas/pack/pocl-build/include/pocl/_kernel.h:2057:42: note: candidate 
function not viable: no known conversion from 'image3d_t' to 'image2d_t' for 
1st argument
float4 __attribute__((__overloadable__)) read_imagef( image2d_t image,
                                         ^
/home/andreas/pack/pocl-build/include/pocl/_kernel.h:2061:42: note: candidate 
function not viable: no known conversion from 'image3d_t' to 'image2d_t' for 
1st argument
float4 __attribute__((__overloadable__)) read_imagef( image2d_t image,
                                         ^
1 error generated.
================================================================================================================
 7 failed, 72 passed, 2 skipped in 787.39 seconds 
================================================================================================================

------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
_______________________________________________
pocl-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pocl-devel

Reply via email to