Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

drop eos for boost 106900 #178

Closed
wants to merge 1 commit into from

Conversation

bartoszek
Copy link

@bartoszek bartoszek commented Mar 30, 2019

since boost 1.69 drops floating point traits class
use boost binary/polymorphic archive instead.
solves #169

since boost 1.69 drops floating point traits class
use boost binary/polimorphic ioarchive instead
@bartoszek
Copy link
Author

bartoszek commented Mar 30, 2019

Consider, if eos is even necessary anymore. Only really small subset of current sys/os configuration have problem with delivering ieee 745 full feature set. I can't really see the rationale to have this outdated archiver around anymore, since boost drops fpclassify::traits ~4years old unmaintained class.

@Dade916
Copy link
Member

Dade916 commented Apr 1, 2019

Lux uses IEEE745 full feature set and, for instance, compiling with "fast-math" option (i.e. relaxing some of the 745 constrains) introduces many subtle bugs. This may be a problem if switching to binary archives too.

Binary archives are also not portable across different CPU architectures (i.e. little endian Vs big endian). So just switching to normal binary archives, it is not a viable solution.

Latest Boost documentation mentions a "portable binary archives" example: https://www.boost.org/doc/libs/1_69_0/libs/serialization/doc/todo.html#portablebinaryarchives

The examples are available under boost_1_69_0/libs/serialization/example and they may be like the correct way to fix this problem. Looking at the sources, they seems to only address the little Vs. big endian problem but it would be a start point.

@JayFoxRox
Copy link
Contributor

JayFoxRox commented Apr 17, 2019

Has this stagnated? What are the plans for this now?

The issue this is addressing, is preventing to build on my system (and I'm not going to downgrade my boost for LuxCore).

I'd rather have this (possibly with a #warning about loss of accuracy / consequences) than not being able to use LuxCore. For now, I'll apply this patch as a workaround locally.

@Dade916
Copy link
Member

Dade916 commented Apr 19, 2019

Has this stagnated? What are the plans for this now?

This is rejected as explained in my previous post.

The issue this is addressing, is preventing to build on my system (and I'm not going to downgrade my boost for LuxCore).

You shouldn't not build LuxCore with a different Boost version. It is not supported and can (and have in the past) easily introduced many subtle and not subtle bugs.

The only procedure to Build LuxCore we support is described in https://github.com/LuxCoreRender/LinuxCompile and https://github.com/LuxCoreRender/WindowsCompile

They are both static build methods and don't require to downgrade/upgrade anything on your system.

@bartoszek
Copy link
Author

Noticed you've dropped EOS. There's an EOS compatibility patch for boots v1.72 in CERN-CMS project perhaps you could use it here if some problem pops up.

@Dade916
Copy link
Member

Dade916 commented Apr 2, 2020

Yes, we are in the process of upgrading Boost library to v1.72.

I'm simply giving up in supporting binary files interoperability between CPUs with different FP32 formats. I prefer to not add another mostly not maintained EOS-like dependency.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants