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

Remove Windows workaround for std::endl that is not needed anymore #220

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

guitargeek
Copy link
Contributor

@guitargeek guitargeek commented Mar 12, 2024

I extended my ROOT synchronization PR to now also update the Python part of cppyy, and the only problem was this Windows workaround that caused all tests to fail (both 32 and 64 bit):
root-project/root#14507 (comment)

I guess it's not needed anymore with the current LLVM version used in ROOT and cppyy?

Let's see if the tests in the sync PR are green now on Windows (besides a handful failures related to CPyCppyy that I still need to figure out).

@wlav
Copy link
Owner

wlav commented Mar 12, 2024

This seems to be specific to having this:

  void Print() override {
     TBranchProxy::Print();
     std::cout << "fWhere " << fWhere << std::endl;
     if (fWhere) std::cout << "value? " << *(unsigned char*)GetStart() << std::endl;
  }

parsed by Cling prior, in TBranchProxy.h, to the explicit instantiation. I.e. for non-ROOT installs, there would be no clash and likely still necessary. (It's an odd problem that I've never been able to track down exactly b/c the issue with std::endl was never easily/consistently reproducible. I think it has to do with the flush the output buffer more so than the symbol b/c of the usual problem of Windows having separate allocators per DLL.)

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.

2 participants