rustc_expand: remember module #[path]s during expansion - #130246

Merged
bors merged 2 commits into
rust-lang:masterfrom
dianne:issue-97589-fix
Sep 22, 2024
Merged

rustc_expand: remember module #[path]s during expansion#130246
bors merged 2 commits into
rust-lang:masterfrom
dianne:issue-97589-fix

Conversation

@dianne

Copy link
Copy Markdown
Member

During invocation collection, if a module item parsed from a #[path] attribute needed a second pass after parsing, its path wouldn't get added to the file path stack, so cycle detection broke. This checks the #[path] in such cases, so that it gets added appropriately. I think it should work identically to the case for external modules that don't need a second pass, but I'm not 100% sure.

Fixes#97589

this fixes cycle detection for modules that need a second invocation collection pass after parsing
@rustbot

Copy link
Copy Markdown
Collaborator

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @fee1-dead (or someone else) some time within the next two weeks.

Please see the contribution instructions for more information. Namely, in order to ensure the minimum review times lag, PR authors and assigned reviewers should ensure that the review label (S-waiting-on-review and S-waiting-on-author) stays updated, invoking these commands when appropriate:

  • @rustbot author: the review is finished, PR author should check the comments and take action accordingly
  • @rustbot review: the author is ready for a review, this PR will be queued again in the reviewer's queue

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Sep 11, 2024
@jieyouxu

Copy link
Copy Markdown
Member

This probably wants @petrochenkov to double check, so
r? @petrochenkov

@petrochenkov

Copy link
Copy Markdown
Contributor

@bors r+

@bors

bors commented Sep 21, 2024

Copy link
Copy Markdown
Collaborator

📌 Commit a187d0a has been approved by petrochenkov

It is now in the queue for this repository.

@borsbors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 21, 2024
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Sep 21, 2024
…nkov
rustc_expand: remember module `#[path]`s during expansion
During invocation collection, if a module item parsed from a `#[path]` attribute needed a second pass after parsing, its path wouldn't get added to the file path stack, so cycle detection broke. This checks the `#[path]` in such cases, so that it gets added appropriately. I think it should work identically to the case for external modules that don't need a second pass, but I'm not 100% sure.
Fixesrust-lang#97589
bors added a commit to rust-lang-ci/rust that referenced this pull request Sep 21, 2024
…iaskrgr
Rollup of 9 pull requests
Successful merges:
- rust-lang#127766 (add `extern "C-cmse-nonsecure-entry" fn` )
- rust-lang#129629 (Implement Return Type Notation (RTN)'s path form in where clauses)
- rust-lang#130246 (rustc_expand: remember module `#[path]`s during expansion)
- rust-lang#130408 (Avoid re-validating UTF-8 in `FromUtf8Error::into_utf8_lossy`)
- rust-lang#130651 (Add --enable-profiler to armhf dist)
- rust-lang#130653 (ABI compatibility: mention Result guarantee)
- rust-lang#130665 (Prevent Deduplication of `LongRunningWarn`)
- rust-lang#130666 (Assert that `explicit_super_predicates_of` and `explicit_item_super_predicates` truly only contains bounds for the type itself)
- rust-lang#130667 (compiler: Accept "improper" ctypes in extern "rust-cold" fn)
r? `@ghost`
`@rustbot` modify labels: rollup
@bors

bors commented Sep 22, 2024

Copy link
Copy Markdown
Collaborator

⌛ Testing commit a187d0a with merge 6ce3767...

@bors

bors commented Sep 22, 2024

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: petrochenkov
Pushing 6ce3767 to master...

@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Sep 22, 2024
@bors
bors merged commit 6ce3767 into rust-lang:masterSep 22, 2024
@rustbotrustbot added this to the 1.83.0 milestone Sep 22, 2024
@dianne
dianne deleted the issue-97589-fix branch September 22, 2024 05:43
@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (6ce3767): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (primary 3.0%, secondary 0.1%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
3.0%[3.0%, 3.0%]1
Regressions ❌
(secondary)
3.6%[3.6%, 3.6%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.4%[-3.4%, -3.4%]1
All ❌✅ (primary)3.0%[3.0%, 3.0%]1

Cycles

Results (primary -1.1%, secondary 4.0%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.0%[4.0%, 4.0%]1
Improvements ✅
(primary)
-1.1%[-1.1%, -1.1%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-1.1%[-1.1%, -1.1%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 769.437s -> 769.289s (-0.02%)
Artifact size: 341.48 MiB -> 341.54 MiB (0.02%)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-by-borsThis PR was explicitly merged by bors.S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rustc segmentation fault with circular module

7 participants

@dianne@rustbot@jieyouxu@petrochenkov@bors@rust-timer@fee1-dead
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

rustc_expand: remember module #[path]s during expansion - #130246

Merged
bors merged 2 commits into
rust-lang:masterfrom
dianne:issue-97589-fix
Sep 22, 2024
Merged

rustc_expand: remember module #[path]s during expansion#130246
bors merged 2 commits into
rust-lang:masterfrom
dianne:issue-97589-fix

Conversation

@dianne

Copy link
Copy Markdown
Member

During invocation collection, if a module item parsed from a #[path] attribute needed a second pass after parsing, its path wouldn't get added to the file path stack, so cycle detection broke. This checks the #[path] in such cases, so that it gets added appropriately. I think it should work identically to the case for external modules that don't need a second pass, but I'm not 100% sure.

Fixes#97589

this fixes cycle detection for modules that need a second invocation collection pass after parsing
@rustbot

Copy link
Copy Markdown
Collaborator

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @fee1-dead (or someone else) some time within the next two weeks.

Please see the contribution instructions for more information. Namely, in order to ensure the minimum review times lag, PR authors and assigned reviewers should ensure that the review label (S-waiting-on-review and S-waiting-on-author) stays updated, invoking these commands when appropriate:

  • @rustbot author: the review is finished, PR author should check the comments and take action accordingly
  • @rustbot review: the author is ready for a review, this PR will be queued again in the reviewer's queue

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Sep 11, 2024
@jieyouxu

Copy link
Copy Markdown
Member

This probably wants @petrochenkov to double check, so
r? @petrochenkov

@petrochenkov

Copy link
Copy Markdown
Contributor

@bors r+

@bors

bors commented Sep 21, 2024

Copy link
Copy Markdown
Collaborator

📌 Commit a187d0a has been approved by petrochenkov

It is now in the queue for this repository.

@borsbors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 21, 2024
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Sep 21, 2024
…nkov
rustc_expand: remember module `#[path]`s during expansion
During invocation collection, if a module item parsed from a `#[path]` attribute needed a second pass after parsing, its path wouldn't get added to the file path stack, so cycle detection broke. This checks the `#[path]` in such cases, so that it gets added appropriately. I think it should work identically to the case for external modules that don't need a second pass, but I'm not 100% sure.
Fixesrust-lang#97589
bors added a commit to rust-lang-ci/rust that referenced this pull request Sep 21, 2024
…iaskrgr
Rollup of 9 pull requests
Successful merges:
- rust-lang#127766 (add `extern "C-cmse-nonsecure-entry" fn` )
- rust-lang#129629 (Implement Return Type Notation (RTN)'s path form in where clauses)
- rust-lang#130246 (rustc_expand: remember module `#[path]`s during expansion)
- rust-lang#130408 (Avoid re-validating UTF-8 in `FromUtf8Error::into_utf8_lossy`)
- rust-lang#130651 (Add --enable-profiler to armhf dist)
- rust-lang#130653 (ABI compatibility: mention Result guarantee)
- rust-lang#130665 (Prevent Deduplication of `LongRunningWarn`)
- rust-lang#130666 (Assert that `explicit_super_predicates_of` and `explicit_item_super_predicates` truly only contains bounds for the type itself)
- rust-lang#130667 (compiler: Accept "improper" ctypes in extern "rust-cold" fn)
r? `@ghost`
`@rustbot` modify labels: rollup
@bors

bors commented Sep 22, 2024

Copy link
Copy Markdown
Collaborator

⌛ Testing commit a187d0a with merge 6ce3767...

@bors

bors commented Sep 22, 2024

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: petrochenkov
Pushing 6ce3767 to master...

@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Sep 22, 2024
@bors
bors merged commit 6ce3767 into rust-lang:masterSep 22, 2024
@rustbotrustbot added this to the 1.83.0 milestone Sep 22, 2024
@dianne
dianne deleted the issue-97589-fix branch September 22, 2024 05:43
@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (6ce3767): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (primary 3.0%, secondary 0.1%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
3.0%[3.0%, 3.0%]1
Regressions ❌
(secondary)
3.6%[3.6%, 3.6%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.4%[-3.4%, -3.4%]1
All ❌✅ (primary)3.0%[3.0%, 3.0%]1

Cycles

Results (primary -1.1%, secondary 4.0%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.0%[4.0%, 4.0%]1
Improvements ✅
(primary)
-1.1%[-1.1%, -1.1%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-1.1%[-1.1%, -1.1%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 769.437s -> 769.289s (-0.02%)
Artifact size: 341.48 MiB -> 341.54 MiB (0.02%)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-by-borsThis PR was explicitly merged by bors.S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rustc segmentation fault with circular module

7 participants

@dianne@rustbot@jieyouxu@petrochenkov@bors@rust-timer@fee1-dead
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

rustc_expand: remember module #[path]s during expansion - #130246

Merged
bors merged 2 commits into
rust-lang:masterfrom
dianne:issue-97589-fix
Sep 22, 2024
Merged

rustc_expand: remember module #[path]s during expansion#130246
bors merged 2 commits into
rust-lang:masterfrom
dianne:issue-97589-fix

Conversation

@dianne

Copy link
Copy Markdown
Member

During invocation collection, if a module item parsed from a #[path] attribute needed a second pass after parsing, its path wouldn't get added to the file path stack, so cycle detection broke. This checks the #[path] in such cases, so that it gets added appropriately. I think it should work identically to the case for external modules that don't need a second pass, but I'm not 100% sure.

Fixes#97589

this fixes cycle detection for modules that need a second invocation collection pass after parsing
@rustbot

Copy link
Copy Markdown
Collaborator

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @fee1-dead (or someone else) some time within the next two weeks.

Please see the contribution instructions for more information. Namely, in order to ensure the minimum review times lag, PR authors and assigned reviewers should ensure that the review label (S-waiting-on-review and S-waiting-on-author) stays updated, invoking these commands when appropriate:

  • @rustbot author: the review is finished, PR author should check the comments and take action accordingly
  • @rustbot review: the author is ready for a review, this PR will be queued again in the reviewer's queue

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Sep 11, 2024
@jieyouxu

Copy link
Copy Markdown
Member

This probably wants @petrochenkov to double check, so
r? @petrochenkov

@petrochenkov

Copy link
Copy Markdown
Contributor

@bors r+

@bors

bors commented Sep 21, 2024

Copy link
Copy Markdown
Collaborator

📌 Commit a187d0a has been approved by petrochenkov

It is now in the queue for this repository.

@borsbors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 21, 2024
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Sep 21, 2024
…nkov
rustc_expand: remember module `#[path]`s during expansion
During invocation collection, if a module item parsed from a `#[path]` attribute needed a second pass after parsing, its path wouldn't get added to the file path stack, so cycle detection broke. This checks the `#[path]` in such cases, so that it gets added appropriately. I think it should work identically to the case for external modules that don't need a second pass, but I'm not 100% sure.
Fixesrust-lang#97589
bors added a commit to rust-lang-ci/rust that referenced this pull request Sep 21, 2024
…iaskrgr
Rollup of 9 pull requests
Successful merges:
- rust-lang#127766 (add `extern "C-cmse-nonsecure-entry" fn` )
- rust-lang#129629 (Implement Return Type Notation (RTN)'s path form in where clauses)
- rust-lang#130246 (rustc_expand: remember module `#[path]`s during expansion)
- rust-lang#130408 (Avoid re-validating UTF-8 in `FromUtf8Error::into_utf8_lossy`)
- rust-lang#130651 (Add --enable-profiler to armhf dist)
- rust-lang#130653 (ABI compatibility: mention Result guarantee)
- rust-lang#130665 (Prevent Deduplication of `LongRunningWarn`)
- rust-lang#130666 (Assert that `explicit_super_predicates_of` and `explicit_item_super_predicates` truly only contains bounds for the type itself)
- rust-lang#130667 (compiler: Accept "improper" ctypes in extern "rust-cold" fn)
r? `@ghost`
`@rustbot` modify labels: rollup
@bors

bors commented Sep 22, 2024

Copy link
Copy Markdown
Collaborator

⌛ Testing commit a187d0a with merge 6ce3767...

@bors

bors commented Sep 22, 2024

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: petrochenkov
Pushing 6ce3767 to master...

@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Sep 22, 2024
@bors
bors merged commit 6ce3767 into rust-lang:masterSep 22, 2024
@rustbotrustbot added this to the 1.83.0 milestone Sep 22, 2024
@dianne
dianne deleted the issue-97589-fix branch September 22, 2024 05:43
@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (6ce3767): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (primary 3.0%, secondary 0.1%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
3.0%[3.0%, 3.0%]1
Regressions ❌
(secondary)
3.6%[3.6%, 3.6%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.4%[-3.4%, -3.4%]1
All ❌✅ (primary)3.0%[3.0%, 3.0%]1

Cycles

Results (primary -1.1%, secondary 4.0%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.0%[4.0%, 4.0%]1
Improvements ✅
(primary)
-1.1%[-1.1%, -1.1%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-1.1%[-1.1%, -1.1%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 769.437s -> 769.289s (-0.02%)
Artifact size: 341.48 MiB -> 341.54 MiB (0.02%)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-by-borsThis PR was explicitly merged by bors.S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rustc segmentation fault with circular module

7 participants

@dianne@rustbot@jieyouxu@petrochenkov@bors@rust-timer@fee1-dead
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

rustc_expand: remember module #[path]s during expansion - #130246

Merged
bors merged 2 commits into
rust-lang:masterfrom
dianne:issue-97589-fix
Sep 22, 2024
Merged

rustc_expand: remember module #[path]s during expansion#130246
bors merged 2 commits into
rust-lang:masterfrom
dianne:issue-97589-fix

Conversation

@dianne

Copy link
Copy Markdown
Member

During invocation collection, if a module item parsed from a #[path] attribute needed a second pass after parsing, its path wouldn't get added to the file path stack, so cycle detection broke. This checks the #[path] in such cases, so that it gets added appropriately. I think it should work identically to the case for external modules that don't need a second pass, but I'm not 100% sure.

Fixes#97589

this fixes cycle detection for modules that need a second invocation collection pass after parsing
@rustbot

Copy link
Copy Markdown
Collaborator

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @fee1-dead (or someone else) some time within the next two weeks.

Please see the contribution instructions for more information. Namely, in order to ensure the minimum review times lag, PR authors and assigned reviewers should ensure that the review label (S-waiting-on-review and S-waiting-on-author) stays updated, invoking these commands when appropriate:

  • @rustbot author: the review is finished, PR author should check the comments and take action accordingly
  • @rustbot review: the author is ready for a review, this PR will be queued again in the reviewer's queue

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Sep 11, 2024
@jieyouxu

Copy link
Copy Markdown
Member

This probably wants @petrochenkov to double check, so
r? @petrochenkov

@petrochenkov

Copy link
Copy Markdown
Contributor

@bors r+

@bors

bors commented Sep 21, 2024

Copy link
Copy Markdown
Collaborator

📌 Commit a187d0a has been approved by petrochenkov

It is now in the queue for this repository.

@borsbors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 21, 2024
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Sep 21, 2024
…nkov
rustc_expand: remember module `#[path]`s during expansion
During invocation collection, if a module item parsed from a `#[path]` attribute needed a second pass after parsing, its path wouldn't get added to the file path stack, so cycle detection broke. This checks the `#[path]` in such cases, so that it gets added appropriately. I think it should work identically to the case for external modules that don't need a second pass, but I'm not 100% sure.
Fixesrust-lang#97589
bors added a commit to rust-lang-ci/rust that referenced this pull request Sep 21, 2024
…iaskrgr
Rollup of 9 pull requests
Successful merges:
- rust-lang#127766 (add `extern "C-cmse-nonsecure-entry" fn` )
- rust-lang#129629 (Implement Return Type Notation (RTN)'s path form in where clauses)
- rust-lang#130246 (rustc_expand: remember module `#[path]`s during expansion)
- rust-lang#130408 (Avoid re-validating UTF-8 in `FromUtf8Error::into_utf8_lossy`)
- rust-lang#130651 (Add --enable-profiler to armhf dist)
- rust-lang#130653 (ABI compatibility: mention Result guarantee)
- rust-lang#130665 (Prevent Deduplication of `LongRunningWarn`)
- rust-lang#130666 (Assert that `explicit_super_predicates_of` and `explicit_item_super_predicates` truly only contains bounds for the type itself)
- rust-lang#130667 (compiler: Accept "improper" ctypes in extern "rust-cold" fn)
r? `@ghost`
`@rustbot` modify labels: rollup
@bors

bors commented Sep 22, 2024

Copy link
Copy Markdown
Collaborator

⌛ Testing commit a187d0a with merge 6ce3767...

@bors

bors commented Sep 22, 2024

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: petrochenkov
Pushing 6ce3767 to master...

@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Sep 22, 2024
@bors
bors merged commit 6ce3767 into rust-lang:masterSep 22, 2024
@rustbotrustbot added this to the 1.83.0 milestone Sep 22, 2024
@dianne
dianne deleted the issue-97589-fix branch September 22, 2024 05:43
@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (6ce3767): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (primary 3.0%, secondary 0.1%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
3.0%[3.0%, 3.0%]1
Regressions ❌
(secondary)
3.6%[3.6%, 3.6%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.4%[-3.4%, -3.4%]1
All ❌✅ (primary)3.0%[3.0%, 3.0%]1

Cycles

Results (primary -1.1%, secondary 4.0%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.0%[4.0%, 4.0%]1
Improvements ✅
(primary)
-1.1%[-1.1%, -1.1%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-1.1%[-1.1%, -1.1%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 769.437s -> 769.289s (-0.02%)
Artifact size: 341.48 MiB -> 341.54 MiB (0.02%)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-by-borsThis PR was explicitly merged by bors.S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rustc segmentation fault with circular module

7 participants

@dianne@rustbot@jieyouxu@petrochenkov@bors@rust-timer@fee1-dead
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

rustc_expand: remember module #[path]s during expansion - #130246

Merged
bors merged 2 commits into
rust-lang:masterfrom
dianne:issue-97589-fix
Sep 22, 2024
Merged

rustc_expand: remember module #[path]s during expansion#130246
bors merged 2 commits into
rust-lang:masterfrom
dianne:issue-97589-fix

Conversation

@dianne

Copy link
Copy Markdown
Member

During invocation collection, if a module item parsed from a #[path] attribute needed a second pass after parsing, its path wouldn't get added to the file path stack, so cycle detection broke. This checks the #[path] in such cases, so that it gets added appropriately. I think it should work identically to the case for external modules that don't need a second pass, but I'm not 100% sure.

Fixes#97589

this fixes cycle detection for modules that need a second invocation collection pass after parsing
@rustbot

Copy link
Copy Markdown
Collaborator

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @fee1-dead (or someone else) some time within the next two weeks.

Please see the contribution instructions for more information. Namely, in order to ensure the minimum review times lag, PR authors and assigned reviewers should ensure that the review label (S-waiting-on-review and S-waiting-on-author) stays updated, invoking these commands when appropriate:

  • @rustbot author: the review is finished, PR author should check the comments and take action accordingly
  • @rustbot review: the author is ready for a review, this PR will be queued again in the reviewer's queue

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Sep 11, 2024
@jieyouxu

Copy link
Copy Markdown
Member

This probably wants @petrochenkov to double check, so
r? @petrochenkov

@petrochenkov

Copy link
Copy Markdown
Contributor

@bors r+

@bors

bors commented Sep 21, 2024

Copy link
Copy Markdown
Collaborator

📌 Commit a187d0a has been approved by petrochenkov

It is now in the queue for this repository.

@borsbors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 21, 2024
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Sep 21, 2024
…nkov
rustc_expand: remember module `#[path]`s during expansion
During invocation collection, if a module item parsed from a `#[path]` attribute needed a second pass after parsing, its path wouldn't get added to the file path stack, so cycle detection broke. This checks the `#[path]` in such cases, so that it gets added appropriately. I think it should work identically to the case for external modules that don't need a second pass, but I'm not 100% sure.
Fixesrust-lang#97589
bors added a commit to rust-lang-ci/rust that referenced this pull request Sep 21, 2024
…iaskrgr
Rollup of 9 pull requests
Successful merges:
- rust-lang#127766 (add `extern "C-cmse-nonsecure-entry" fn` )
- rust-lang#129629 (Implement Return Type Notation (RTN)'s path form in where clauses)
- rust-lang#130246 (rustc_expand: remember module `#[path]`s during expansion)
- rust-lang#130408 (Avoid re-validating UTF-8 in `FromUtf8Error::into_utf8_lossy`)
- rust-lang#130651 (Add --enable-profiler to armhf dist)
- rust-lang#130653 (ABI compatibility: mention Result guarantee)
- rust-lang#130665 (Prevent Deduplication of `LongRunningWarn`)
- rust-lang#130666 (Assert that `explicit_super_predicates_of` and `explicit_item_super_predicates` truly only contains bounds for the type itself)
- rust-lang#130667 (compiler: Accept "improper" ctypes in extern "rust-cold" fn)
r? `@ghost`
`@rustbot` modify labels: rollup
@bors

bors commented Sep 22, 2024

Copy link
Copy Markdown
Collaborator

⌛ Testing commit a187d0a with merge 6ce3767...

@bors

bors commented Sep 22, 2024

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: petrochenkov
Pushing 6ce3767 to master...

@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Sep 22, 2024
@bors
bors merged commit 6ce3767 into rust-lang:masterSep 22, 2024
@rustbotrustbot added this to the 1.83.0 milestone Sep 22, 2024
@dianne
dianne deleted the issue-97589-fix branch September 22, 2024 05:43
@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (6ce3767): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (primary 3.0%, secondary 0.1%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
3.0%[3.0%, 3.0%]1
Regressions ❌
(secondary)
3.6%[3.6%, 3.6%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.4%[-3.4%, -3.4%]1
All ❌✅ (primary)3.0%[3.0%, 3.0%]1

Cycles

Results (primary -1.1%, secondary 4.0%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.0%[4.0%, 4.0%]1
Improvements ✅
(primary)
-1.1%[-1.1%, -1.1%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-1.1%[-1.1%, -1.1%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 769.437s -> 769.289s (-0.02%)
Artifact size: 341.48 MiB -> 341.54 MiB (0.02%)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-by-borsThis PR was explicitly merged by bors.S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rustc segmentation fault with circular module

7 participants

@dianne@rustbot@jieyouxu@petrochenkov@bors@rust-timer@fee1-dead
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

rustc_expand: remember module #[path]s during expansion - #130246

Merged
bors merged 2 commits into
rust-lang:masterfrom
dianne:issue-97589-fix
Sep 22, 2024
Merged

rustc_expand: remember module #[path]s during expansion#130246
bors merged 2 commits into
rust-lang:masterfrom
dianne:issue-97589-fix

Conversation

@dianne

Copy link
Copy Markdown
Member

During invocation collection, if a module item parsed from a #[path] attribute needed a second pass after parsing, its path wouldn't get added to the file path stack, so cycle detection broke. This checks the #[path] in such cases, so that it gets added appropriately. I think it should work identically to the case for external modules that don't need a second pass, but I'm not 100% sure.

Fixes#97589

this fixes cycle detection for modules that need a second invocation collection pass after parsing
@rustbot

Copy link
Copy Markdown
Collaborator

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @fee1-dead (or someone else) some time within the next two weeks.

Please see the contribution instructions for more information. Namely, in order to ensure the minimum review times lag, PR authors and assigned reviewers should ensure that the review label (S-waiting-on-review and S-waiting-on-author) stays updated, invoking these commands when appropriate:

  • @rustbot author: the review is finished, PR author should check the comments and take action accordingly
  • @rustbot review: the author is ready for a review, this PR will be queued again in the reviewer's queue

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Sep 11, 2024
@jieyouxu

Copy link
Copy Markdown
Member

This probably wants @petrochenkov to double check, so
r? @petrochenkov

@petrochenkov

Copy link
Copy Markdown
Contributor

@bors r+

@bors

bors commented Sep 21, 2024

Copy link
Copy Markdown
Collaborator

📌 Commit a187d0a has been approved by petrochenkov

It is now in the queue for this repository.

@borsbors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 21, 2024
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Sep 21, 2024
…nkov
rustc_expand: remember module `#[path]`s during expansion
During invocation collection, if a module item parsed from a `#[path]` attribute needed a second pass after parsing, its path wouldn't get added to the file path stack, so cycle detection broke. This checks the `#[path]` in such cases, so that it gets added appropriately. I think it should work identically to the case for external modules that don't need a second pass, but I'm not 100% sure.
Fixesrust-lang#97589
bors added a commit to rust-lang-ci/rust that referenced this pull request Sep 21, 2024
…iaskrgr
Rollup of 9 pull requests
Successful merges:
- rust-lang#127766 (add `extern "C-cmse-nonsecure-entry" fn` )
- rust-lang#129629 (Implement Return Type Notation (RTN)'s path form in where clauses)
- rust-lang#130246 (rustc_expand: remember module `#[path]`s during expansion)
- rust-lang#130408 (Avoid re-validating UTF-8 in `FromUtf8Error::into_utf8_lossy`)
- rust-lang#130651 (Add --enable-profiler to armhf dist)
- rust-lang#130653 (ABI compatibility: mention Result guarantee)
- rust-lang#130665 (Prevent Deduplication of `LongRunningWarn`)
- rust-lang#130666 (Assert that `explicit_super_predicates_of` and `explicit_item_super_predicates` truly only contains bounds for the type itself)
- rust-lang#130667 (compiler: Accept "improper" ctypes in extern "rust-cold" fn)
r? `@ghost`
`@rustbot` modify labels: rollup
@bors

bors commented Sep 22, 2024

Copy link
Copy Markdown
Collaborator

⌛ Testing commit a187d0a with merge 6ce3767...

@bors

bors commented Sep 22, 2024

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: petrochenkov
Pushing 6ce3767 to master...

@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Sep 22, 2024
@bors
bors merged commit 6ce3767 into rust-lang:masterSep 22, 2024
@rustbotrustbot added this to the 1.83.0 milestone Sep 22, 2024
@dianne
dianne deleted the issue-97589-fix branch September 22, 2024 05:43
@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (6ce3767): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (primary 3.0%, secondary 0.1%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
3.0%[3.0%, 3.0%]1
Regressions ❌
(secondary)
3.6%[3.6%, 3.6%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.4%[-3.4%, -3.4%]1
All ❌✅ (primary)3.0%[3.0%, 3.0%]1

Cycles

Results (primary -1.1%, secondary 4.0%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.0%[4.0%, 4.0%]1
Improvements ✅
(primary)
-1.1%[-1.1%, -1.1%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-1.1%[-1.1%, -1.1%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 769.437s -> 769.289s (-0.02%)
Artifact size: 341.48 MiB -> 341.54 MiB (0.02%)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-by-borsThis PR was explicitly merged by bors.S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rustc segmentation fault with circular module

7 participants

@dianne@rustbot@jieyouxu@petrochenkov@bors@rust-timer@fee1-dead
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

rustc_expand: remember module #[path]s during expansion - #130246

Merged
bors merged 2 commits into
rust-lang:masterfrom
dianne:issue-97589-fix
Sep 22, 2024
Merged

rustc_expand: remember module #[path]s during expansion#130246
bors merged 2 commits into
rust-lang:masterfrom
dianne:issue-97589-fix

Conversation

@dianne

Copy link
Copy Markdown
Member

During invocation collection, if a module item parsed from a #[path] attribute needed a second pass after parsing, its path wouldn't get added to the file path stack, so cycle detection broke. This checks the #[path] in such cases, so that it gets added appropriately. I think it should work identically to the case for external modules that don't need a second pass, but I'm not 100% sure.

Fixes#97589

this fixes cycle detection for modules that need a second invocation collection pass after parsing
@rustbot

Copy link
Copy Markdown
Collaborator

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @fee1-dead (or someone else) some time within the next two weeks.

Please see the contribution instructions for more information. Namely, in order to ensure the minimum review times lag, PR authors and assigned reviewers should ensure that the review label (S-waiting-on-review and S-waiting-on-author) stays updated, invoking these commands when appropriate:

  • @rustbot author: the review is finished, PR author should check the comments and take action accordingly
  • @rustbot review: the author is ready for a review, this PR will be queued again in the reviewer's queue

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Sep 11, 2024
@jieyouxu

Copy link
Copy Markdown
Member

This probably wants @petrochenkov to double check, so
r? @petrochenkov

@petrochenkov

Copy link
Copy Markdown
Contributor

@bors r+

@bors

bors commented Sep 21, 2024

Copy link
Copy Markdown
Collaborator

📌 Commit a187d0a has been approved by petrochenkov

It is now in the queue for this repository.

@borsbors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 21, 2024
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Sep 21, 2024
…nkov
rustc_expand: remember module `#[path]`s during expansion
During invocation collection, if a module item parsed from a `#[path]` attribute needed a second pass after parsing, its path wouldn't get added to the file path stack, so cycle detection broke. This checks the `#[path]` in such cases, so that it gets added appropriately. I think it should work identically to the case for external modules that don't need a second pass, but I'm not 100% sure.
Fixesrust-lang#97589
bors added a commit to rust-lang-ci/rust that referenced this pull request Sep 21, 2024
…iaskrgr
Rollup of 9 pull requests
Successful merges:
- rust-lang#127766 (add `extern "C-cmse-nonsecure-entry" fn` )
- rust-lang#129629 (Implement Return Type Notation (RTN)'s path form in where clauses)
- rust-lang#130246 (rustc_expand: remember module `#[path]`s during expansion)
- rust-lang#130408 (Avoid re-validating UTF-8 in `FromUtf8Error::into_utf8_lossy`)
- rust-lang#130651 (Add --enable-profiler to armhf dist)
- rust-lang#130653 (ABI compatibility: mention Result guarantee)
- rust-lang#130665 (Prevent Deduplication of `LongRunningWarn`)
- rust-lang#130666 (Assert that `explicit_super_predicates_of` and `explicit_item_super_predicates` truly only contains bounds for the type itself)
- rust-lang#130667 (compiler: Accept "improper" ctypes in extern "rust-cold" fn)
r? `@ghost`
`@rustbot` modify labels: rollup
@bors

bors commented Sep 22, 2024

Copy link
Copy Markdown
Collaborator

⌛ Testing commit a187d0a with merge 6ce3767...

@bors

bors commented Sep 22, 2024

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: petrochenkov
Pushing 6ce3767 to master...

@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Sep 22, 2024
@bors
bors merged commit 6ce3767 into rust-lang:masterSep 22, 2024
@rustbotrustbot added this to the 1.83.0 milestone Sep 22, 2024
@dianne
dianne deleted the issue-97589-fix branch September 22, 2024 05:43
@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (6ce3767): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (primary 3.0%, secondary 0.1%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
3.0%[3.0%, 3.0%]1
Regressions ❌
(secondary)
3.6%[3.6%, 3.6%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.4%[-3.4%, -3.4%]1
All ❌✅ (primary)3.0%[3.0%, 3.0%]1

Cycles

Results (primary -1.1%, secondary 4.0%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.0%[4.0%, 4.0%]1
Improvements ✅
(primary)
-1.1%[-1.1%, -1.1%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-1.1%[-1.1%, -1.1%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 769.437s -> 769.289s (-0.02%)
Artifact size: 341.48 MiB -> 341.54 MiB (0.02%)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-by-borsThis PR was explicitly merged by bors.S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rustc segmentation fault with circular module

7 participants

@dianne@rustbot@jieyouxu@petrochenkov@bors@rust-timer@fee1-dead
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

rustc_expand: remember module #[path]s during expansion - #130246

Merged
bors merged 2 commits into
rust-lang:masterfrom
dianne:issue-97589-fix
Sep 22, 2024
Merged

rustc_expand: remember module #[path]s during expansion#130246
bors merged 2 commits into
rust-lang:masterfrom
dianne:issue-97589-fix

Conversation

@dianne

Copy link
Copy Markdown
Member

During invocation collection, if a module item parsed from a #[path] attribute needed a second pass after parsing, its path wouldn't get added to the file path stack, so cycle detection broke. This checks the #[path] in such cases, so that it gets added appropriately. I think it should work identically to the case for external modules that don't need a second pass, but I'm not 100% sure.

Fixes#97589

this fixes cycle detection for modules that need a second invocation collection pass after parsing
@rustbot

Copy link
Copy Markdown
Collaborator

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @fee1-dead (or someone else) some time within the next two weeks.

Please see the contribution instructions for more information. Namely, in order to ensure the minimum review times lag, PR authors and assigned reviewers should ensure that the review label (S-waiting-on-review and S-waiting-on-author) stays updated, invoking these commands when appropriate:

  • @rustbot author: the review is finished, PR author should check the comments and take action accordingly
  • @rustbot review: the author is ready for a review, this PR will be queued again in the reviewer's queue

@rustbotrustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Sep 11, 2024
@jieyouxu

Copy link
Copy Markdown
Member

This probably wants @petrochenkov to double check, so
r? @petrochenkov

@petrochenkov

Copy link
Copy Markdown
Contributor

@bors r+

@bors

bors commented Sep 21, 2024

Copy link
Copy Markdown
Collaborator

📌 Commit a187d0a has been approved by petrochenkov

It is now in the queue for this repository.

@borsbors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Sep 21, 2024
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Sep 21, 2024
…nkov
rustc_expand: remember module `#[path]`s during expansion
During invocation collection, if a module item parsed from a `#[path]` attribute needed a second pass after parsing, its path wouldn't get added to the file path stack, so cycle detection broke. This checks the `#[path]` in such cases, so that it gets added appropriately. I think it should work identically to the case for external modules that don't need a second pass, but I'm not 100% sure.
Fixesrust-lang#97589
bors added a commit to rust-lang-ci/rust that referenced this pull request Sep 21, 2024
…iaskrgr
Rollup of 9 pull requests
Successful merges:
- rust-lang#127766 (add `extern "C-cmse-nonsecure-entry" fn` )
- rust-lang#129629 (Implement Return Type Notation (RTN)'s path form in where clauses)
- rust-lang#130246 (rustc_expand: remember module `#[path]`s during expansion)
- rust-lang#130408 (Avoid re-validating UTF-8 in `FromUtf8Error::into_utf8_lossy`)
- rust-lang#130651 (Add --enable-profiler to armhf dist)
- rust-lang#130653 (ABI compatibility: mention Result guarantee)
- rust-lang#130665 (Prevent Deduplication of `LongRunningWarn`)
- rust-lang#130666 (Assert that `explicit_super_predicates_of` and `explicit_item_super_predicates` truly only contains bounds for the type itself)
- rust-lang#130667 (compiler: Accept "improper" ctypes in extern "rust-cold" fn)
r? `@ghost`
`@rustbot` modify labels: rollup
@bors

bors commented Sep 22, 2024

Copy link
Copy Markdown
Collaborator

⌛ Testing commit a187d0a with merge 6ce3767...

@bors

bors commented Sep 22, 2024

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions
Approved by: petrochenkov
Pushing 6ce3767 to master...

@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Sep 22, 2024
@bors
bors merged commit 6ce3767 into rust-lang:masterSep 22, 2024
@rustbotrustbot added this to the 1.83.0 milestone Sep 22, 2024
@dianne
dianne deleted the issue-97589-fix branch September 22, 2024 05:43
@rust-timer

Copy link
Copy Markdown
Collaborator

Finished benchmarking commit (6ce3767): comparison URL.

Overall result: no relevant changes - no action needed

@rustbot label: -perf-regression

Instruction count

This benchmark run did not return any relevant results for this metric.

Max RSS (memory usage)

Results (primary 3.0%, secondary 0.1%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
3.0%[3.0%, 3.0%]1
Regressions ❌
(secondary)
3.6%[3.6%, 3.6%]1
Improvements ✅
(primary)
--0
Improvements ✅
(secondary)
-3.4%[-3.4%, -3.4%]1
All ❌✅ (primary)3.0%[3.0%, 3.0%]1

Cycles

Results (primary -1.1%, secondary 4.0%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

meanrangecount
Regressions ❌
(primary)
--0
Regressions ❌
(secondary)
4.0%[4.0%, 4.0%]1
Improvements ✅
(primary)
-1.1%[-1.1%, -1.1%]1
Improvements ✅
(secondary)
--0
All ❌✅ (primary)-1.1%[-1.1%, -1.1%]1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 769.437s -> 769.289s (-0.02%)
Artifact size: 341.48 MiB -> 341.54 MiB (0.02%)

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-by-borsThis PR was explicitly merged by bors.S-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

rustc segmentation fault with circular module

7 participants

@dianne@rustbot@jieyouxu@petrochenkov@bors@rust-timer@fee1-dead