Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

Anyone used Cloo in an x64 system yet?

Help
Jeff Adams
2010-04-27
2012-12-21
  • Jeff Adams
    Jeff Adams
    2010-04-27

    I've been working in 32-bit XP, just tried running in 64-bit Win7 and the results are flaky.  It runs sometimes and crashes sometimes.  I have a bunch of tests, most of which fail, but one succeeds 50% of the time give or take.

    For now I think we're going to stick with 32-bit XP, but I was curious if anyone else has had issues.

     
  • nythrix
    nythrix
    2010-04-27

    My main dev machine is 64bit. I have also access to Vista 32bit which is used for occasional tests. Previous development (until 0.7.0) has been done in both XP and Vista 32bit. Apart from a school related raytracer, I don't have any real world apps at hands, so, bitness issues might have gone unnoticed. Can you post code that fails? And if that's not possible (closed source/business stuff) at least give me some hints?

     
  • Jeff Adams
    Jeff Adams
    2010-04-28

    Hmm, well honestly I didn't look into it very long.  It is probably not Cloo's fault, I was using code compiled on a 32-bit XP machine and running on a 64-bit 7 machine, and was getting null references when trying to get the device (I think that's what it was, as I said I didn't investigate very long).

    I just wanted to find out if it was most likely a problem on my end or if I was trying something never before attempted ;-).  Looks like I should start with my end of things.

    Should I compile Cloo binaries on the 64-bit machine, or are they entirely .NETy and will run anywhere?  I am not clear where the divide between "C libraries that should be compiled specific for the hardware" and ".NET API that will run fine anywhere" is within Cloo.

     
  • nythrix
    nythrix
    2010-04-30

    Cloo lies fully within the .NET, thus the "compile once, run everywhere" strategy is honored. Cloo.dll itself is built with the "AnyCpu" target platform, which means it will execute on the same CLR as the process that called it. However, given that Cloo still needs to communicate with native drivers, I don't know what exactly happens in case Cloo32 (because of the caller) talks to Driver64. That's probably what you hit. Recompiling the caller to 64bits or even better to "AnyCpu" should solve most problems.