Skip to content

Conversation

rikkimax
Copy link
Contributor

Throwing the experimental fast DFA engine at CI to see what happens, this PR is not going to be merged can be ignored.

@dlang-bot
Copy link
Contributor

Thanks for your pull request and interest in making D better, @rikkimax! We are looking forward to reviewing it, and you should be hearing from a maintainer soon.
Please verify that your PR follows this checklist:

  • My PR is fully covered with tests (you can see the coverage diff by visiting the details link of the codecov check)
  • My PR is as minimal as possible (smaller, focused PRs are easier to review than big ones)
  • I have provided a detailed rationale explaining my changes
  • New or modified functions have Ddoc comments (with Params: and Returns:)

Please see CONTRIBUTING.md for more information.


If you have addressed all reviews or aren't sure how to proceed, don't hesitate to ping us with a simple comment.

Bugzilla references

Your PR doesn't reference any Bugzilla issue.

If your PR contains non-trivial changes, please reference a Bugzilla issue or create a manual changelog.

Testing this PR locally

If you don't have a local development environment setup, you can use Digger to test this PR:

dub run digger -- build "master + dmd#21494"

@rikkimax rikkimax force-pushed the idea-dfa branch 7 times, most recently from c1f7ebf to f85972d Compare June 29, 2025 16:03
@rikkimax
Copy link
Contributor Author

rikkimax commented Jun 29, 2025

Ugh isBinExp doesn't work for EXP.loweredAssignExp flags are not set for it even though the hierarchy matches.

@rikkimax rikkimax force-pushed the idea-dfa branch 21 times, most recently from a4354e5 to b741ece Compare July 1, 2025 03:48
@rikkimax
Copy link
Contributor Author

rikkimax commented Aug 8, 2025

The changes to foreachvar module will need to be considered separately. First, I need to confirm that it helps eliminate all memory leaks.

@thewilsonator
Copy link
Contributor

#21672

@rikkimax
Copy link
Contributor Author

rikkimax commented Aug 8, 2025

Normally the CI runners will build dmd once as debug and then rebuild with release.

Windows_VisualD_LDC x64_Debug is debug only. Causing it to run out of time.

@rainers
Copy link
Member

rainers commented Aug 8, 2025

Windows_VisualD_LDC x64_Debug is debug only. Causing it to run out of time.

These timeouts appear on different Azure pipelines. As part of the test run there is a build of the druntime unittests with version=PRINTF that usually runs for a couple of seconds, but sometimes for 15-20 minutes. You can find it in the logs starting with "Testing printf" and then producing a wall of "_d_arraysetlength..." lines. Enable timestamps to see how slow it runs.

@rikkimax
Copy link
Contributor Author

rikkimax commented Aug 9, 2025

More bugs:

#21695

#21697 EDIT: not actually a bug in test, test is doing what it is supposed to. Will need to have DFA off for it.

@rikkimax
Copy link
Contributor Author

rikkimax commented Aug 9, 2025

More null deref:

Test that is ok, but will need DFA turned off for it:

Four of the other tests that are broken are a me to be fixed, and the timetrace test is once again needing its DFA specific output added.

@rikkimax
Copy link
Contributor Author

rikkimax commented Aug 10, 2025

Another test that can't have the DFA turned on for:

int bug1605()

@rikkimax rikkimax force-pushed the idea-dfa branch 7 times, most recently from 078636e to d33288f Compare August 23, 2025 04:04
@rikkimax
Copy link
Contributor Author

rikkimax commented Aug 23, 2025

I'm attempting to disable the tests:

  • xtest46
  • xtest46_gc
  • testassert

If that fails I'll remove them. They are supposed to fail. But I need the CI to continue and if they exist it won't.

@rikkimax rikkimax force-pushed the idea-dfa branch 4 times, most recently from a5e2aa1 to f8aa4d5 Compare August 26, 2025 20:30
@rikkimax
Copy link
Contributor Author

rikkimax commented Sep 4, 2025

Looks like I'm due for another rebase, BUT: I'm down to one report that I'd like to keep that isn't being emitted.

After that its just rewrite the reporting, hope nothing else comes up and it should be more or less done.

@thewilsonator
Copy link
Contributor

and an update to frontend.h

@rikkimax
Copy link
Contributor Author

rikkimax commented Sep 4, 2025

Yeah that gave it away that I need a rebase.

Comment on lines +4317 to +4321
scope (exit)
{
if (result !is null)
result.rvalue = exp.rvalue;
}
Copy link
Contributor

Choose a reason for hiding this comment

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

presumably these changes can be done now to reduce the diff?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@@ -6367,7 +6371,7 @@ private extern (C++) final class ExpressionSemanticVisitor : Visitor
{
setError();
}
else
else if (result !is null)
Copy link
Contributor

Choose a reason for hiding this comment

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

ditto

Copy link
Contributor Author

Choose a reason for hiding this comment

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

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.

4 participants