GithubHelp home page GithubHelp logo

Comments (9)

bluescarni avatar bluescarni commented on May 30, 2024

Indeed we continuously test only MSVC 2019:

https://github.com/bluescarni/heyoka/runs/2963186716?check_suite_focus=true#step:5:337

We also test builds using MSVC 2017's standard library in conjunction with the clang compiler:

https://ci.appveyor.com/project/bluescarni/heyoka/builds/39835569#L325

I think at one point I made an attempt to build with MSVC 2017, but the compiler had too many issues with various C++17 constucts we extensively use in heyoka.

Probably, as you point out, we should be more specific about the tested MSVC versions in the docs.

from heyoka.

jdmairs avatar jdmairs commented on May 30, 2024

Would the following work...
Rebuild llvm v10 to include clang.
Use clang instead of msvc in my CMake toolchain.
Compile/install heyoka via clang.
In my program include/link to heyoka using msvc 2017.

from heyoka.

bluescarni avatar bluescarni commented on May 30, 2024

@jdmairs you don't really need to build clang yourself, you can just install a binary package for Windows. The version of clang you use to compile heyoka can be different from the version of the LLVM libraries you link into heyoka - the two are completely decoupled.

Compiling/installing heyoka with clang and then compiling your code with msvc 2017 may work, but there could be issues related to the fact that some heyoka functions are templates and thus you will have to compile them with MSVC 2017 when you are using heyoka as a dependency in your code. Best would be to just always use clang - it is binary compatible with MSVC, but I understand that might be a bit of an issue in practice.

from heyoka.

jdmairs avatar jdmairs commented on May 30, 2024

from heyoka.

bluescarni avatar bluescarni commented on May 30, 2024

@jdmairs my advice for heyoka would be to just use the conda package. With conda you can install heyoka and clang, and you don't need to worry about dependencies, MSVC incompatibilities, etc.

from heyoka.

jdmairs avatar jdmairs commented on May 30, 2024

from heyoka.

 avatar commented on May 30, 2024

My organization also requires building from source so I'm in the same boat. Is there any plan to fix this?

from heyoka.

bluescarni avatar bluescarni commented on May 30, 2024

@sixteenornumber building from source should not be a problem if you are using either

  • MSVC 2019, or
  • MSVC 2017 + clang-cl.

The default compiler cl.exe from MSVC 2017 does not support adequately certain C++17 constructs used in the heyoka source code, hence the necessity to use clang-cl instead (which will however produce code which is binary compatible with cl.exe).

Does your organization mandate the use of MSVC 2017?

from heyoka.

bluescarni avatar bluescarni commented on May 30, 2024

I will close this report as compilation with MSVC 2019 works and I don't have the bandwidth to make an attempt to workaround MSVC 2017 deficiencies.

from heyoka.

Related Issues (13)

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.