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

Upgrade frontend & libs to v2.109 #4660

Merged
merged 145 commits into from
Jun 3, 2024
Merged

Conversation

kinke
Copy link
Member

@kinke kinke commented May 18, 2024

No description provided.

WalterBright and others added 30 commits March 1, 2024 18:18
…nclude path set (dlang/dmd!16248)

* Fix Bugzilla issue 24111 - [ImportC] fatal error C1034: stdio.h: no include path set
As that's built-in, not needing any headers.
These require `import dscope` that we want to remove from func.d in pursuit of https://github.com/orgs/dlang/projects/41.

Other functions that still need to be moved include `overloadApply()`, `isUnique()` and `equals()`, the latter needing a visitor akin dlang/dmd!15782.
driver/cl_options.cpp Outdated Show resolved Hide resolved
JohanEngelen and others added 14 commits May 19, 2024 18:09
…db) when gdb is available. (dlang/dmd!16513)
…of int and uint literal values cause errors, when targeting Windows, when debug info generation is enabled. (dlang/dmd!16385)
When running these tests on non-Windows, the compiler would need to
cross-preprocess the .c sources before cross-compiling. DMD doesn't
handle that properly (on Linux, just uses the native preprocessor,
and failing badly with Apple clang on macOS). And for LDC, that would
require an installed C cross-toolchain. That'd be a ridiculous effort
for these 2 tests, so just preprocess and compile them like all other
tests, even if the original problems were on Windows only. No harm in
running these tests on Posix too while targeting Posix.
….109

Conflicts:
	dmd/expression.h
	tests/dmd/compilable/test24504.c
	tests/dmd/compilable/test24511.d
@kinke
Copy link
Member Author

kinke commented Jun 1, 2024

Still just a single regression for lit-test PGO/functions.d, weirdly on some platforms only (Windows x64 and macOS arm64).

@kinke
Copy link
Member Author

kinke commented Jun 3, 2024

AFAICT, the PGO/functions.d regression is that not all objects are destructed anymore during the profiled run. E.g., in my Win VM, the Klass dtor is run 9 times, while it should be 10. (The test apparently depends on the GC finalizing everything, the class objects aren't destructed explicitly).

The test has also failed on Linux x64 once at least, for a CircleCI job: https://app.circleci.com/pipelines/github/ldc-developers/ldc/4250/workflows/23b08985-2521-4562-ae10-0659fce872cf/jobs/26557

The -fprofile-instr-generate IR is identical, so this diverging behavior must be caused by druntime.

@kinke
Copy link
Member Author

kinke commented Jun 3, 2024

Ah, expected in v2.109: https://dlang.org/changelog/2.109.0.html#druntime.removenostackcollect

As always, the GC is not guaranteed to clean up any block at the end of runtime. Any change in behavior with code that had blocks clean up before, but no longer are cleaned up is still within specification. And if you want the behavior that absolutely cleans all blocks, you can use the --DRT-gcopt=cleanup:finalize druntime configuration option, which will clean up all blocks without even scanning.

…nation

See https://dlang.org/changelog/2.109.0.html#druntime.removenostackcollect.
The test depends on all class objects being finalized, and has regressed
on some platforms (one object not being finalized because apparently still
referenced in the stack).
@kinke kinke marked this pull request as ready for review June 3, 2024 14:12
@kinke kinke enabled auto-merge June 3, 2024 15:00
@kinke kinke merged commit 49e5732 into ldc-developers:master Jun 3, 2024
19 checks passed
@kinke kinke deleted the merge-2.109 branch June 3, 2024 15:04
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.