build.d: Add auto-tester-build#10612
Conversation
|
This failure seems to be caused by small configuration change when creating all targets from |
I guess this happens because Bitarray is broken: with size_t = uint, (300+31)/32 = 10*4 bytes are allocated for a length of 300 bits, but (300+31)/8 = 41 bytes are compared. |
Could not reliably reprodure the unittest failure using the Makefiles so i will fix it in this PR. |
691a674 to
d8172de
Compare
Thanks. I changed Old: New; @WalterBright Fixed that error in the third commit using dedicated functions to calculate the amount of |
e0a1a9c to
c6783c6
Compare
|
I can't say much about build.d, but the changes to bitarray.d are good (you could use |
Can do, I wanted to keep them in this PR until they are approved because they wont be tested on windows otherwise. |
c6783c6 to
81de606
Compare
81de606 to
9a342b9
Compare
9a342b9 to
781a5b1
Compare
|
Thanks for your pull request and interest in making D better, @MoonlightSentinel! We are looking forward to reviewing it, and you should be hearing from a maintainer soon.
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 referencesYour 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 locallyIf you don't have a local development environment setup, you can use Digger to test this PR: dub fetch digger
dub run digger -- build "master + dmd#10612" |
|
|
781a5b1 to
f99a1d9
Compare
| auto-tester-build: $G dmd checkwhitespace | ||
| auto-tester-build: $(GEN)\build.exe | ||
| $(RUN_BUILD) "DDEBUG=" "ENABLE_RELEASE=1" $@ | ||
| copy $(TARGETEXE) . |
There was a problem hiding this comment.
Why is copying the final exe necessary? And also why is it necessary to explicitly pass those flags in the previous step?
There was a problem hiding this comment.
Why is copying the final exe necessary?
I don't like this either but the test suite uses dmd/src/dmd.exe
And also why is it necessary to explicitly pass those flags in the previous step?
The executable was previously built by reldmd which invokes make recursively and overrides these flags. Otherwise dmd.exe would be built with -unittest -cov enabled.
There was a problem hiding this comment.
Thanks for the explanations!
I don't like this either but the test suite uses dmd/src/dmd.exe
Just like the posix.mak files don't expect dmd to be available at this path for the test suite, we should fix the Win32.mak files as well. This obviously outside of the scope of this PR, so I suggest leaving a FIXME comment explaining the situation.
The executable was previously built by reldmd which invokes make recursively and overrides these flags. Otherwise dmd.exe would be built with -unittest -cov enabled.
I think this should be fixed as well (perhaps in a future PR).
Like other targets that build dmd, whether it's build in release mode or debug + unittest, should be configurable based to env variables like ENABLE_RELEASE. We should run the test suite with both asserts enabled and disabled.
There was a problem hiding this comment.
You're welcome. I've added FIXMEs for both issues and removed the ENABLE_RELEASE override (DDEBUG is depreacted anyway).
This implies a slight change as the test suite is now run with bound-checks and asserts instead of optimizations but we can add it as an additional run 'from the outside' .
There was a problem hiding this comment.
Yes, what I meant that whether optimizations are enabled or disabled should be disabled from outside.
There was a problem hiding this comment.
Ahh, then I'll would suggest keeping the current behaviour and changing it in another PR
d62ff77 to
659ce73
Compare
659ce73 to
36d660b
Compare
Draft PR because this should not be merged before #10611 (or another implementation of parallel building) is merged.Multiple invocations of
build.dare mutually exclusive anyway (using a lockfile)