Comments (7)
Following up on this, did this get resolved?
And @remia, in case it matters, the reason that OpenEXRCore doesn't get the C++ standard flag is that it's written in C, not C++.
from openexr.
If std::numeric_limits<intptr_t>::max()
works, the equivalent value could be generated via
std::numeric_limits<intptr_t>::max() / 2
Are you able to test that?
Since the /4 makes the number positive it doesn't seem important that kMaxSize needs to be a uintptr_t.
from openexr.
@reumia, that's curious as it's far from the only use of uintptr_t
, it's used in the OpenEXR and OpenEXRCore libraries, so I would expect the failure there first if it's not defined, is that not happening? Are we missing an include?
@peterhillman, could you possibly take a look at this? The code in question declares kMaxSize
as uintptr_t
then only uses it on the following line where it's cast to streampos
. Wouldn't it be better to simply declare it as streampos
in the first place? And I'm not sure what edge case the uintptr_t(-1)
is intended to catch, can that be simplified?
from openexr.
I think @kdt3rd wrote that bit. It certainly looks cleverer than anything I'd write. I would have been tempted to put a constant in there for the maximum file size that will be loaded into memory. I think declaring it as streampos isn't equivalent: a processor could have a 32 bit memory pointer size but still support 64 bit file pointers.
from openexr.
Thanks for the answers all, this got me into looking a bit closer at the issue and while I don't understand everything yet, I believe this might be partly an issue coming from OpenColorIO, here are some more information:
- We use
OPENEXR_INSTALL_TOOLS
instead of the correctOPENEXR_BUILD_TOOLS=OFF
so in theory should not even build the tools and would not have seen any issues, - OpenColorIO platform latest nightly build try to use C++20, this might not even be supported / tested by OpenEXR (goal of this workflow is to find issues early though)
- OpenColorIO still installs an "old" version of OpenEXR for this CI workflow, 3.1.5 by default (Apr. 2022)
- Looking at the compilation log, OpenEXRCore compile flags do not include any
-std=c++20
or-std=gnu++20
, rest of the libraries (Iex, IlmThread) and tools do which probably trigger the error here (as @cary-ilm rightfully pointed out, OpenEXRCore use that type in a few places already). I don't know exactly why OpenEXRCore doesn't get the C++ standard flag but suspect this is related to it's dependency with Imath, will have to dig further to understand.
from openexr.
Sorry for the silence @cary-ilm, I think the issue has more to do with the ubuntu-latest runners from Github than OpenEXR. After disabling OpenEXR's tools building, I got a new error this time in OCIO itself which seem to be more related to the STL than OCIO.
Quick internet search today yielded this issue GHA, I have to admit I didn't read all the comments in here but it appears to be affecting mostly C++20 builds (which this OCIO bleeding edge workflow uses) and is still not fixed.
Feel free to close this ticket!
from openexr.
Thanks for the follow up. Hopefully actions gets its configuration in order soon.
from openexr.
Related Issues (20)
- exrenvmap: observed imprecise conversion of cubemap to lat/lon HOT 11
- Provide an API using numpy arrays in python HOT 11
- An integer overflow in file exrmultipart.cpp HOT 3
- Incorrect Values When Reading DWA Compressed Layer With OpenEXRCore HOT 10
- understanding openEXR's 3D coordinate system HOT 9
- tarball at https://github.com/AcademySoftwareFoundation/openexr/releases/download/v3.2.4/openexr-v3.2.4.tar.gz extracts incorrectly HOT 3
- Python crashes when trying to write an output file HOT 2
- Is there any way to write a bigger image?
- [Need suggestions/recommendations] OpenEXR for high-speed images grabbing application scenario. HOT 7
- update metadata without rewriting the entire file HOT 4
- Bazel install target HOT 10
- fatal clang-format error on macOS can't upgrade/install via Homebrew HOT 13
- Cross-compiler target linking failure HOT 1
- Uninitialized sliceOptimizationData::type HOT 2
- [Usage recommendation request] Decompressing large EXRs in real-time. HOT 4
- OpenEXR.OutputFile Fails to Write to BytesIO Buffer HOT 1
- Install openexr 3.2.4 to macOS Big Sur 11.7.10 HOT 9
- Unit tests fail when building UB2 binaries on Mac. HOT 1
- CMP0107 issue
- OpenEXR static build not creating libIlmImf.a HOT 5
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 openexr.