Comments (9)
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.
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.
@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.
from heyoka.
@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.
from heyoka.
My organization also requires building from source so I'm in the same boat. Is there any plan to fix this?
from heyoka.
@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.
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)
- it appears heyoka also has a implicit dependency on zlib but its not on the main page of pre-reqs[BUG] HOT 5
- Partial derivative with respect to time not implemented in .diff utility [BUG] HOT 4
- Partial Derivative with respect to system parameter not implemented in .diff utility [BUG] HOT 3
- Issue on page /index.html HOT 3
- [BUG] The test taylor_adaptive_batch fails on FreeBSD HOT 6
- [BUG] The test taylor_time fails on FreeBSD HOT 5
- [BUG] The test ensemble_propagate fails on FreeBSD HOT 7
- [BUG] 1.0.0: The test step_callback fails HOT 15
- [FEATURE] Consider submitting heyoka package to spack HOT 11
- [BUG] since v4.0.0: mem_cache_mutex' does not have a constant initializer HOT 3
- [BUG] 4.0.2 fails to complile: error: missing 'typename' prior to dependent type name 'i_data::step_f_e_t' HOT 3
- Does heyoka support external dynamic input of the ODE system? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from heyoka.