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

[cling] Use single Parser for LookupHelper #17353

Merged
merged 2 commits into from
Feb 26, 2025

Conversation

hahnjo
Copy link
Member

@hahnjo hahnjo commented Jan 6, 2025

It is the only construction of a temporary parser, and it seems not necessary (anymore).

@hahnjo hahnjo added the in:Cling label Jan 6, 2025
@hahnjo hahnjo requested review from vgvassilev and dpiparo January 6, 2025 10:07
@hahnjo hahnjo self-assigned this Jan 6, 2025
Copy link

github-actions bot commented Jan 6, 2025

Test Results

    18 files      18 suites   4d 2h 40m 23s ⏱️
 2 719 tests  2 719 ✅ 0 💤 0 ❌
47 253 runs  47 253 ✅ 0 💤 0 ❌

Results for commit 3772195.

♻️ This comment has been updated with latest results.

@vgvassilev
Copy link
Member

Probably worth checking with cmssw.

@hahnjo
Copy link
Member Author

hahnjo commented Jan 6, 2025

Probably worth checking with cmssw.

Yes, good idea, first wanted to see if our own CI agrees with my local testing. I'll allow CMS people to come back from vacation first and also update to ROOT master before asking.

@hahnjo hahnjo force-pushed the cling-temporary-parsers branch from 71333a4 to 399c950 Compare January 6, 2025 14:54
@pcanal
Copy link
Member

pcanal commented Jan 8, 2025

The original reason for the separate parser (as seen in its introduction: b1003a1) is to side-steps potential failures/bugs in the parser error recovery.

@hahnjo
Copy link
Member Author

hahnjo commented Jan 9, 2025

Ok, but I'm not sure if a second parser is actually sufficient for that: In case of problems with the parser error recovery, the main parser for Cling is untouched and continues to work, but now the single parser used by the LookupHelper is corrupt and future queries to it will fail for unrelated reasons. If we created a new temporary parser for every lookup, the story would be different, but with the current state what am I missing?

@hahnjo
Copy link
Member Author

hahnjo commented Jan 13, 2025

Hi @smuzaffar, happy new year! I have to start January with another request: When you have time, could you run this PR through CMS testing to make sure it doesn't break things? It will allow us to drop 1.5 patches and make the interpreter more sustainable 😃

@hahnjo hahnjo force-pushed the cling-temporary-parsers branch from 399c950 to 9d1c522 Compare February 17, 2025 08:13
@hahnjo
Copy link
Member Author

hahnjo commented Feb 17, 2025

@smuzaffar could you run this through testing with CMSSW to make sure it doesn't break anything? If I understand correctly, the problems related to ROOT master were resolved and the ROOT6 IB is back.

@smuzaffar
Copy link
Contributor

@hahnjo , cmssw tests are running via cms-sw#217

@smuzaffar
Copy link
Contributor

@hahnjo , cmssw tests look good

@hahnjo
Copy link
Member Author

hahnjo commented Feb 17, 2025

Thanks for testing and confirming, the additional test coverage is much appreciated!

@hahnjo hahnjo requested a review from devajithvs February 18, 2025 07:25
@hahnjo
Copy link
Member Author

hahnjo commented Feb 18, 2025

@vgvassilev is this ok in principle? (still need to prepare a tag, I will synchronize with Dev)

@vgvassilev
Copy link
Member

@vgvassilev is this ok in principle? (still need to prepare a tag, I will synchronize with Dev)

I am surprised this works. In principle the direction looks good as the "feature" was developed to satisfy root's testsuite and experiments. We probably could move forward.

@hahnjo
Copy link
Member Author

hahnjo commented Feb 18, 2025

I am surprised this works. In principle the direction looks good as the "feature" was developed to satisfy root's testsuite and experiments. We probably could move forward.

I think it's a consequence of the RAII object cleaning up in case of errors. That already had to work with a single additional Parser for the LookupHelper because if we screwed up there, all future lookups would have failed...

It is the only construction of a temporary parser, and it seems not
necessary (anymore).
@hahnjo hahnjo force-pushed the cling-temporary-parsers branch from 9d1c522 to 3772195 Compare February 25, 2025 12:48
@hahnjo hahnjo marked this pull request as ready for review February 25, 2025 12:51
@hahnjo
Copy link
Member Author

hahnjo commented Feb 26, 2025

This should be ready now, the CI is green

Copy link
Member

@vgvassilev vgvassilev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Thank you, @hahnjo.

@hahnjo hahnjo merged commit 18d1e19 into root-project:master Feb 26, 2025
21 of 22 checks passed
@hahnjo hahnjo deleted the cling-temporary-parsers branch February 26, 2025 11:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants