I've just finished the largest refactorization of Cloo since its launch. Apparently the biggest challenge in putting together a library is not the implementation itself but the names you choose for the public bits. I've added a new shine-n-sparkly layer of enums and I found it really hard at places.
1) No names that would clash into OpenTK's names like those chevalerie guys holding a death stick in their hands and gone mental.
2) Abbreviations are bad. The code should remind you of J. K. Rowling's last Harry Potter, whichever that one is, and not a Klingon wedding invitation. Still
InvalidImageFormatDescriptorComputeException might not fit inside your 6 bedrooms and a sofa so caution is in place.
3) Stick as close as possible to Khronos so people don't feel like French watching a Japanese movie with Chinese subtitles.
Anyway, when the fog lifted I was left with 12 enums.
Do you know how many enums there are in OpenTK/Compute/CL10/Enums.cs?
This gives a rough idea of how much API sugar does it take to easily swallow OpenCL through a managed throat. In fact, many enums are lost inside properties and helper functions and never make it to public so there's no need for them.
Cloo 0.6.0 is on its way. Bringing image support and breaking all the programs out there and then some. But fear not. This is (hopefully) the last breaking change before 1.0.
Happy New Year!
PS: Yes, I know it is a bit late but I hope no hard feelings.